本記事では、Mecanimで「ユニティちゃん」にアニメーションをつけて、STYLYにアップロードするまでの一連の流れをご紹介します。
Mecanimを使ってみよう
Mecanimの使い方を見ていきましょう。はじめに、Unity Asset Storeから「Raw Mocap Data for Mecanim」と「ユニティちゃん」をダウンロードしてください。
Unity 5を利用している方はユニティちゃんのインポート時にAcceptボタンをクリックします。
Assets > UnityChan > Prefabsの中にあるunitychanをドラッグしてヒエラルキーの中に入れます。
後程自分で設定をするため、unitychanを選択しAnimatorコンポーネントを取り除きます。
Animatorコンポーネントを取り除いた後、Scriptも同様に取り除きます。
次に、「myAssets」フォルダを作り、その中に「myAnimators」と「myPrefabs」フォルダを作ります。
Mecanimでアニメーションをつける
作成したmyAnimatorsフォルダ内に新しくAnimator Controllerを作ります。
Add Componentをクリックし、unitychanを追加するためにInspectorタブでAnimatorを探します。
myAnimatorsフォルダからAnimatorControllerをControllerフィールド内にドラッグします。
Avatarには、Avatarフィールドのすぐ右横の丸いボタンをクリックし、選択メニューを出して「unitychanAvatar」を選択します。
UnityChan > Animationsからいくつかアニメーションを選択しmyAnimationsフォルダの中にドラッグします。ここでは「unitychan_RUN00_F Import Settings」、「unitychan_WALK00_F Import Settings」「unitychan_WIN00 Import Settings」を選択します。
次に、Window > Animatorと進むか、Animatorをクリックし、Animatorウィンドウを開きます。ここではAnimator Controllerアセットを作成、修正できます。
Animatorウィンドウ内のフローチャートのようなステートマシンを変更していくことでアニメーションの状態や遷移を変更できます。
Runアニメーションである「unitychan_RUN00_F Import Settings」をAnimatorウィンドウのレイアウトエリアにドラッグします。デフォルトでは初めに追加したアニメーションがLayer Default Stateになります。DefaultとなったノードにはEntryノードが自動的につながります。結果として、Runアニメーターはこのステートマシンがの開始時の状態として設定されました。Layer Default Stateは後程変更します。
次に、残りのアニメーションである「unitychan_WALK00_F Import Settings」と「unitychan_WIN00 Import Settings」をこのウィンドウにドラッグします。
WalkアニメーションをLayer Default Stateにするために“WALK00_F” ステートを右クリックしSet as Layer Default Stateを選択します。オレンジ色はWalkアニメーションがLayer Default Stateに設定されたことを意味しています。これはEntryノードに自動的に接続されます。
次にWALK00_F右クリック、「Maker Transition」選択し、「RUN00_F」との間に新しいアニメーション遷移を作ります。そのアニメーション遷移をRunアニメーションにドラッグします。
「WALK00_F」と「RUN00_F」の間のアニメーション遷移が作られるとき、Parametersビュー上の+アイコンをクリックし、ポップアップメニューからTriggerを選択して新しいTriggerパラメータを加えます。このパラメータビューによりState Machineにインプットとなる行動を定義するAnimation Controller Parametersを修正できるようになります。
新しいパラメータに「run」と名前を付けます。
「WALK00_F」と「RUN00_F」の間にあるアニメーション遷移を選択すると青く変わります。+アイコンをクリックしInspector上で選択しているアニメーション遷移に新たにConditionを追加します。「run」が唯一のパラメータなのでデフォルトで選択されているはずです。
同時にRUN00_FからWALK00_Fにアニメーション遷移を加えます。これによりアクションが走行から歩行に遷移します。
Parametersビュー上に新しいTriggerパラメータを作り、「walk」と名前を付けます。
先ほど作成したアニメーション遷移(RUN00_F → WALK00_F)を選択し、ドロップダウンメニュー内の「walk」を選択します。
WIN00には、Any Stateへの新しい遷移を作成します。Any Stateは特別なステートで、現状のステートにおいて欲しいと思うステートへと変更できます。
新しくTriggerパラメータを作り、今回は「win」と付けて勝利ステートとしてみます。
アニメーション遷移の作成後、それを選択し、新しくConditionsを加えてドロップダウンメニュー上の「win」を選びます。
State Machineが設定されました。ユニティちゃんが異なるアニメーションを実行する準備をしていきましょう。初めに、Animatorタブを押しながらAnimator Windowをドラッグしスクリーンの異なる部分にドラッグします。これでGameシーンとAnimatorヴューを同時にみることができます。
Playボタンを押して歩行アニメーションを開始します。WALK00_Fが Animatorウィンドウ内で読み込まれているのがわかります。これはWALK00_Fがゲーム開始と同時に作動するLayer Default Stateであるためです。
ゲームがプレイされている間、trigger欄の横の丸いボタンをクリックすることでtriggerを手動で有効化できます。この場合、runが実行され、ユニティちゃんが歩行から走行状態へと移行します。RUN00_Fの読み込みバーは走行状態が実行されていることを示しています。
同様の手順で勝利アニメーションも試してみましょう。
Unity内でAnimator Triggerを設定するにはC#のスクリプトを利用しても、PlayMakerを利用してもよいですが、もしSTYLY上でアニメーションの変更をしたい場合は、本サイト内にあるPlayMakerのチュートリアルをご参考ください(STYLYはC#のスクリプトをサポートしていないため注意が必要です。)
Mecanimを用いたモデルをSTYLYにアップロードする
最終的に、アニメーションの付いたユニティちゃんをSTYLYにアップロードできます。まずプレハブとしてユニティちゃんを保存します。
次に、unitychanを右クリックし、STYLY > Build And Upload Prefab Assetと進み、STYLYにアップロードをします。詳しくSTYLYにプレハブをアップロードする方法を知りたい場合は本サイト内のUnity Uploaderに関する内容をご参照ください。
最後に、ウェブのSTYLYエディタ内に新しくアップロードされたアセットを読み込ませればアニメーションが自動的に再生されます。アセットは3D Model > My Modelと順に辿ると見つかります。