スマホを揺らした分だけMMDを再生する健全なWebアプリを作ってみた
少し前、VRchatのアバターカスタマイズについて学ぶため、ニコニコ立体で配布されているアリシア・ソリッドちゃんの3Dデータをダウンロードして使わせて頂きました。
アリシアちゃんの規約読んでるんだけど、これはゆれゆれボイスに組み込んでもOKってこと…? WebやAndroidで3Dレンダリングなんて面倒くさそうだから動画変換して、揺れ感度ごとに動画再生するみたいなローテクになると思うけどw pic.twitter.com/sWdSihSUMq
— ジジの落書き(仮) (@zizithedoll) April 28, 2020
VRchatで使っても問題がないことを確認するために規約を熟読していたのですが、非営利・営利に関わらず個人なら自由に使えるし、改変物を再配布しても良いという、あまりに太っ腹な規約にひっくり返りそうになりました。
でも、それだけじゃないの。
* ニコニ立体ちゃんを用いた、年齢制限のある二次創作物の公開は可能なのか?
利用規約にある禁止事項に抵触しない限りにおいて可能です。
これはreadmeからの抜粋ですが、まさかのR18 OKとな?!
これそういう意味だよね?! もしぼくの解釈が間違っていたら誰か教えてくださいw
…ということで、
揺らした分だけMMDを再生する健全なWebアプリを作ってみた
ご存じない方のために軽く説明しておくと、MMDとはMikuMikuDanceの略で、樋口M氏が個人で開発し無償公開されている3Dムービー製作ツールのことです。このツールを使って作成された(主にえっちな)ダンスにぼくは毎日お世話になっております(*´Д`)ハァハァ
https://www.youtube.com/results?search_query=紳士MMD
先述したアリシア・ソリッドちゃんのモデルデータにもMMD用のデータが含まれており、今回ありがたくこれをWebアプリに組み込ませて頂きました。
【音量注意】またつまらぬものを作ってしまった。詳細は後ほどブログにて。 pic.twitter.com/oR9wrVCNKt
— ジジの落書き(仮) (@zizithedoll) May 23, 2020
尚、モーションデータはこちらで配布されている「レィヂィオ体操モーション」です。どこがラジオ体操やねん!www配布ありがとうございますwww
https://bowlroll.net/file/21899
最初はラブドールの顔の前に置いて、フェイスボードとして使う予定だったのですが、妖精さんプレイがお好みのドーラーさまがいらっしゃるようなので、急遽こちらのモーションへ変更しましたw
ゆれゆれ3Dが出来ること 出来ないこと
出来ること
- 3Dをリアルタイムレンダリングしているため、その場でグリグリ動かすことが出来ます。拡大縮小も思いのまま。
- スマホを揺らすと3秒分モーションが再生されます。
- 再生時間が半分を超えて、かつ強い揺れだと6秒分再生されます。
出来ないこと
- ゆれゆれボイスのように興奮度のロックは出来ません。
- フィニッシュボタンもありません。
- ゲージがMAXになるとフィニッシュ音声の再生に入りますが、動画のモーションとビミョーにズレるかも知れません。
- 理由は後述しますが、たぶんアップデートもしないかもw
注意事項
- 3Dレンダリングしているのでそれなりにスマホのスペックが必要です。いわゆるミドルクラス以上なら問題ないと思う。
技術的なお話
ここをこっそり見ていたり検索エンジンから迷い込んだ技術者向けのお話です。一般の人はスルー推奨。
3Dデータのレンダリングにはオープンソースの three.js というJavaScriptライブラリを使用しています。
これに付随するMMDLoaderというローダーがあり、どちらも頻繁にアップデートしているため、最新の実装方法を調べるのがなかなか骨です。MMDParserの文字コード変換に不具合があったりするので日本語が含まれたvmdを読む場合はソースの修正も必要。修正部分はコンソールエラーを見ればすぐわかるはず。
また、loadWithAnimationという関数で、モデルデータ(pmx)とモーションデータ(vmd)を読み込むのですが、開始フレームや終了フレームの指定がありません。しかもデフォルトだとループモード。
小細工でループを停止させることには成功しましたが、モーション終了のイベントも発生しないため、動画の終了を検知するのが困難です。
今回はモーションデータがひとつだけで決め打ちなため、フィニッシュまでの再生秒数を96000ミリ秒と仮定して動作させています。
なので、技術的には大変興味深く、コードを書くのは楽しかったけれど、実用面では…正直動画にエンコードしたほうが良くね?と思います。
ここを見て、よっしこんなアダルトグッズ作ってやろう、と思った方は無理にリアルタイムレンダリングにこだわらず動画にしたほうが良いかもよ、とアドバイスさせて頂きますw
まとめ
- アリシア・ソリッドちゃんがアダルト使用可っぽいので、ゆれゆれボイスに組み込もうと画策。
- JavaScriptでも3Dレンダリングできるようなので、興味本位で実装してみた。
(3Dは完全に専門外だけど12時間くらいで作れた) - しかし、技術的な問題によりかゆいところに手が届かないので、アップデートは期待薄。
ということで、ゆれゆれ3Dはこの実験版だけで終わる可能性大ですが、枯れた技術でも組み合わせによっては面白いことが出来そうだぞ、というのを少しでも感じて頂けたなら幸いです。
なにしろMMD用のモデルとモーションなら、配布してくださっている方がたーくさんおられるので、個人で楽しむ分にはえろえろいろいろな組み合わせを楽しむことが出来ます。
ただ、それらのカスタマイズ機能を組み込むのは…Webアプリだとちょっとむずかしいかなぁ…
あ、そうそう、ラブドールと全然関係ねーじゃん!と思われる方がいるかもですが、3DとVRとラブドールは将来的には今以上に密接につながるとぼくは考えています。例えば、ラブドールにZOZOスーツ着せてモーションキャプチャーしたり、3Dのガワを貼り付けたりすることは今現在の技術でも可能ですよね。アダルトだからあまり手を出す人がいないだけでw
どうせエンジニアなんて中身変態だらけなんだから、あとは自分に素直になるかどうかのみ。時間の問題でしょう。
さて、そんなことはともかく、下記ページでWeb上で動く3Dがどんなものかお試し頂けるので、ちょっとでも遊んで頂ければ幸いです。
ゆれゆれ3D(実験版)
https://edolls.net/hobby/yure3d/










