UnityでMMDモデルを動かすための手順などを紹介します。
①:プログラムなんて書きたくない・ユニティちゃんのを流用してとにかく早く動かしたいという方
ユニティちゃんのスプリクトなどを利用してプログラム・アニメーション設定を作成せずに動かしていきます。
まずは、ユニティちゃんのアニメーションをモデルオブジェクトにセットします。
下記画像のようにHierarchyビューのモデルを選択してください。
InspectorビューにあるAnimatorのControllerみ右にある○ポチをクリックします。
すると、Select RuntimeAnimatorControllerウィンドウが表示されますのでAssetsタブのUnityChanLocomotionsを選択します。
次に、同じくユニティちゃんを動かすスプリクトをモデルオブジェクトにセットします。
Hierarchyビューのモデルを選択して、下記画像のようにInspectorビューの一番下にあるAdd Componentをクリックします。
Script > UnityChan の中にあるUnity Chan Control Script With Rgit Bodyを選択します。
コンポーネントが3つほど追加されたと思います。
Rigidbodyで物体として扱う、Colliderで当たり判定の範囲等を設定できます。
ここでは下記画像の赤枠のように設定して、当たり判定がモデルを囲むようにします。
設定した内容を簡単に説明すると、Rigidbody > ConstraintsのFreeze Rotationにチェックを入れることでモデルが勝手に回転しないように設定しています。
Freeze Positionにチェックを入れてしまうと位置を固定することになりますので、モデルが移動しなくなります。
Capsule ColliderのCenterは当たり判定の中心点を表します。Radiusは幅、Heightは高さを表します。
はい、これで設定が完了しました。実際に動かしてみましょう。
画面上部中央にあるスタートボタンをクリックすることでスタートします。
操作方法は画面にも表示されていますが、一応説明しておきます。
上下キーまたはW,Sキーでキャラクターが前後に移動します。
左右キーまたはA,Dキーでキャラクターが左右に回転します(カメラも追従するのでまわりが回っているように見えます)。
静止時にスペースキーを押すとポージング、前進時にスペースキーを押すとジャンプを行います。
いかがでしたか?これでMMDのモデルをUnityで動かす事ができるようになりました。
自分の好きなキャラクターが自分の手で動くようになって感激ですね。
MMDにはキャラクターのモデルがたくさんあるのに、Unityはモデルがなかなかないので、
これで自分の好きなキャラクターでゲームを作れます。
ただし、今回の紹介で使用したモデル(艦隊これくしょんの大鳳)ですが、モデルの製作者様が商用利用を禁止しており、
そもそも艦隊これくしょんの運営はゲーム性のあるものの二次創作・商用利用は認めていません。
外部にゲームとして利用できる状態で公開する際や商用利用したい際は著作権などを侵害しないようにしましょう。