Unity製ノベルゲーム制作キット。iphone・Android アプリ化対応。

MMDモデルにアニメーションをさせよう

MMDモデルに好きなタイミングでアニメーションさせてみよう

MMDにアニメーションしてもらう

前回の作業で、ミクさんがゲームに登場するところまで作成しました。
ただ、これだと単純に立っているだけで、人形が立っているように見えてしまいます
まずは、ミクさんに普通に立っているだけのアニメーションを付けて、より自然な振る舞いをしてもらいましょう

fbxフォルダで右クリック- create - Animation Controller をクリックします



新しく出来たファイルに「miku_anime_controller」とでも名前をつけておいてください

このファイルをダブルクリックして、アニメーターを開きます

続いて右クリックから Create State - Empty をクリックして、新しい状態を作成します



新しく作成されたステートをクリックして、前回ダウンロードしておいた 「stand」アニメーション(vmd)を割り当てます。 ステートの名前も standに変更しておいてください



続いて、fbxフォルダの「miku」fbxファイルをクリックしてヒエラルキーを確認します

ここで、Animation の Controller へ「miku_anime_controller」を選択します。



保存して、ゲームを開始してください
ミクさんが立ち絵のポーズをしてくれていれば成功です。簡単ですね



好きなタイミングでアニメーションを適応する

それでは、続いて好きなタイミングでキャラクターをアニメーションさせる方法を見て行きましょう

新しくアニメーションさせるデータを取得します。
以下のURLに移動してダンスデータとして「あずにゃんにゃん」をこちら からダウンロードしてください

ダウンロードしたら解凍して「azunyan207」と「azunyan214」をドラッグ&ドロップでプロジェクトに追加します。 場所は、lat式ミクのデータと同じ場所で良いでしょう。

そうしたら、fbxファイルを作り直す必要があります
前回と同様の手順でfbxファイルを作ってください。ただし、前回「stand」というアニメーションファイルを設定した 所で
「azunyan207」
を登録するのを忘れないでください



作成されたら、前回と同様に mikuという名前に変更→ヒエラルキーに追加→fbxに移動→ヒエラルキーを削除 という手順をおこなって、fbxファイルを入れ替えてください。

miku に 「miku_anime_controller」を設定するのも、もう一度行う必要があります。

次に「miku_anime_controller」をダブルクリックしてアニメーターを開きます

Create State - empty から あたらしい 状態を追加します。
さらに名前をazunyanとして、Motionに「azunyan207.vmd」を設定してください



stand から azunyan に状態を変更したいので、standを右クリックして「Make Transition」をクリックします。 するとstandから線が伸びるのでazunyanをクリックして線を作ります。



続いて、アニメーター画面左端の「Parameters」部分で「+」をクリックして「bool」を追加します
名前は「azunyan」としておきましょう。





先ほど作成したstandからazunyanに伸びている矢印を選択してインスペクターを確認します。
Conditions の欄に azunyan と true を選択してください。
これは、azunyanというコンディションがtrue になったら stand から azunyan にアニメーションを切り替えるという意味です。



これで、準備は完了です。以下のようにシナリオファイルを記述してください

; -- キャラクター定義 --

[sd_new name=miku storage=miku x=5.37 y=-5.23 z=-4]
;3Dモデルを表示
[sd_show name=miku]

次にダンスを踊ります[p]
[sd_anim name=miku state="azunyan"]

[sd_anim]タグは コンディションを切り替える処理を担当します

この場合、mikuのazunyanというコンディションを true に変更します。

なので、stand から azunyan へ アニメーションが切り替わったということですね

さっそく、ゲームを再生してみてください。指定の場所でミクさんがダンスを踊れば成功です。



どうですか? うまくいきましたね

ただ、このままだとダンスが終わったままのポーズで固まってしまいますね

つぎに、ダンスから通常の立ちポーズへ戻す方法を確認しましょう。

基本的な考え方は今までの手法と同じです

アニメータを開いて、azunyanを右クリック MakeTransition を行います。 今度は azunyan から stand へ戻る線を作ります。


作成して、線を選択します。そして、インスペクターを見てください。

先程は Conditionに azunyan true を設定しましたが、azunyan false を指定します。



そして、シナリオファイルに 立ち絵に戻るコードを追加します

; -- キャラクター定義 --

[sd_new name=miku storage=miku x=5.37 y=-5.23 z=-4]
;3Dモデルを表示
[sd_show name=miku]

次にダンスを踊ります[p]
[sd_anim name=miku state="azunyan"]


次にダンスを停止します[p]
[sd_anim name=miku state="azunyan" condition=false]



いかがでしょう。アニメーション途中でスムーズに立ち絵に戻りましたね。

今度はsd_anim タグで azunyan を false にしたので、azunyanからstandへの矢印が発火しました。 以上でMMDのアニメーションは完了です。

これらを組み合わせるとキャラクターに多彩なアニメーションをさせることが可能かと思います