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_anim]タグは
コンディションを切り替える処理を担当します
[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"]
この場合、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のアニメーションは完了です。
これらを組み合わせるとキャラクターに多彩なアニメーションをさせることが可能かと思います