スポンサーリンク

Unity実習18、敵キャラにアニメーションをつけてみよう

前回のでキャラが動くようになったので
試しに動かしているところをYouTubeに上げてみました


SnapCrab_NoName_2016-6-1_17-36-15_No-00.jpg

前回、プレヤーにだけつけて終わったので、今回は敵キャラ残り2体にアニメーションを追加します

最初は狼から

ProjectビューでAssets/3D Assets/Enemy/Wargの中にある、狼のモデルデータ Warg を選択
SnapCrab_NoName_2016-6-1_14-47-34_No-00.jpg

Inspectorビューで
Rigを選択、AnimationTypeが Generic になっているか確認します
SnapCrab_NoName_2016-6-1_14-57-4_No-00.jpg

同じProjectのフォルダにあるアニメーション3つも、同様にチェック
Generic かどうか、確認して下さい
ドラゴンと狼はHPが0になると消えるので、倒れる Down のアニメーションはありません
SnapCrab_NoName_2016-6-1_14-57-57_No-00.jpg

敵のアニメーションクリップを設定
アニメーションを選択した状態で、隣の Animations を選択
それで、本ではLoopTime以下8項目ほどチェックを入れたりしているのですが
Genericだと後半の項目がない!
SnapCrab_NoName_2016-6-1_15-15-4_No-00.jpg

AnimationTypeがHumanoidだと、項目が出るのですが、人間じゃないのでそういうわけにもいかず...
なので調べてきました

Rigにある Root node という項目
ここを、Root にしてください、Applyを押して適用するのも忘れずに
狼の3つのアニメーション全部に同様の設定をします
ついでに、モデルデータ自体にもしておきましょう
SnapCrab_NoName_2016-6-1_15-19-21_No-00.jpg

すると、無事項目が増えた!
この設定が何だったのかは謎だったり、プレビューが変だったりしますが、これで先に進める
SnapCrab_NoName_2016-6-1_15-24-41_No-00.jpg

Run と Stay のクリップ設定
SnapCrab_NoName_2016-6-1_15-27-18_No-00.jpg

Attack のクリップ設定
SnapCrab_NoName_2016-6-1_15-28-8_No-00.jpg

アニメーションイベントの設定
Projectで Attack のアニメーションを選択
InspectorでAnimationsを選択し、下にある Events を選択
プレビューの赤線を移動させて
時間が 26.0% 前後の場所にきたら、Add Event(画像の矢印) Function名を StartAttackHit にします
同じように後二箇所
43.0% 前後 EndAttackHit
95.0% 前後 EndAttack
SnapCrab_NoName_2016-6-1_15-37-57_No-00.jpg

AnimatorControllerの作成
ProjectのAnimationsフォルダ内に 右クリック→Create→AnimatorController で作成
名前を WargAnimatorController にします
SnapCrab_NoName_2016-6-1_15-46-18_No-00.jpg

ダブルクリックしてAnimatorビューを開きます
そこへ、ProjectビューにあるWargのアニメーション
その、アニメーションの 子階層にある アニメーションクリップをドラッグ&ドロップ
昨日の記事で、アニメーション丸ごとぶち込んでましたが、違ったみたいです
出来なくはなかったので大丈夫だとは思いますが...あとで訂正しときます
Stayがデフォルトステートになるように配置して下さい
SnapCrab_NoName_2016-6-1_15-56-49_No-00.jpg

SnapCrab_NoName_2016-6-1_15-58-41_No-00.jpg

Parametersの設定
+を押して追加します
Float で作成し、名前を Speed
Bool で作成し、名前を Attacking
Trigger で作成し、名前を Down
SnapCrab_NoName_2016-6-1_16-4-19_No-00.jpg

アニメーションステート間の遷移と遷移条件の設定
Transitionを伸ばしていきます、同時に設定も
Stay → Run Speed: Greather: 0.1
SnapCrab_NoName_2016-6-1_16-9-34_No-00.jpg

Run → Stay Speed: Less: 0.1
SnapCrab_NoName_2016-6-1_16-10-18_No-00.jpg

Stay → Attack Attacking: true
SnapCrab_NoName_2016-6-1_16-11-55_No-00.jpg

Run → Attack Attacking: ture
SnapCrab_NoName_2016-6-1_16-11-55_No-00.jpg

Attack → Stay ExitTime (デフォルトのまま、というか何もしなくていい)
SnapCrab_NoName_2016-6-1_16-13-6_No-00.jpg

アニメーションの遷移の確認
ProjectビューでAssets/Prefabの中にある Warg を選択
SnapCrab_NoName_2016-6-1_16-21-15_No-00.jpg

AnimetorのControllerのところに WargAnimatorController を追加
ApplyRootMotion のチェックを 外します
SnapCrab_NoName_2016-6-1_16-21-40_No-00.jpg

InspectorにCharaAnimationスクリプトを追加
SnapCrab_NoName_2016-6-1_16-22-27_No-00.jpg

SnapCrab_NoName_2016-6-1_16-22-58_No-00.jpg

SceneビューにWArgのプレハブデータをドラッグ&ドロップ
遷移の方も見れるようにしてから動作を確認してみましょう
CharaMoveスクリプトのDestinationの座標を変更した後に、Arrivedのチェックを外すと移動します
攻撃は Attacking のチェックボックスから
Sceneビューで見たほうがカメラを動かせて良いかもしれません
SnapCrab_NoName_2016-6-1_16-24-58_No-00.jpg

SnapCrab_NoName_2016-6-1_16-26-29_No-00.jpg

動作がぎこちない、という場合は
前回同様にTransitionの Has Exit Time のチェックボックスを外してみると良いかもしれません
SnapCrab_NoName_2016-6-1_16-40-0_No-00.jpg

満足したら、次はドラゴンです
Projectビューでドラゴンのモデルデータを選択
SnapCrab_NoName_2016-6-1_16-41-35_No-00.jpg

InspectorでRigを選び
AnimationTypeを Generic
Root nodeは CENTER_C
Applyで適用
SnapCrab_NoName_2016-6-1_16-42-8_No-00.jpg

アニメーションデータのRigも同じように設定
SnapCrab_NoName_2016-6-1_16-48-54_No-00.jpg

アニメーションクリップの設定
設定内容は狼と同じ(画像使い回してるのでアニメーションの時間が狼のになってます)
Run と Stay のクリップ設定
SnapCrab_NoName_2016-6-1_15-27-18_No-00.jpg

Attack のクリップ設定
SnapCrab_NoName_2016-6-1_15-28-8_No-00.jpg

アニメーションイベントの設定
AttackのAnimationsで
35.0%前後 StartAttackHit
55.0%前後 EndAttackHit
95.0%前後 EndAttack
SnapCrab_NoName_2016-6-1_16-55-53_No-00.jpg

AnimatorControllerの作成
AnimationsフォルダにAnimatorControllerを作成して、名前を DragonAnimatorController に変更
SnapCrab_NoName_2016-6-1_16-59-13_No-00.jpg

ステートの登録
ProjectのアニメーションデータをAnimatorにドラッグ&ドロップ
Stayがデフォルトになるようにします
SnapCrab_NoName_2016-6-1_17-4-10_No-00.jpg

SnapCrab_NoName_2016-6-1_15-58-41_No-00.jpg

Parametersの設定
+を押して追加します
Float で作成し、名前を Speed
Bool で作成し、名前を Attacking
Trigger で作成し、名前を Down
SnapCrab_NoName_2016-6-1_16-4-19_No-00.jpg

遷移と遷移条件の作成
Transitionを伸ばしていきます、同時に設定も
Stay → Run Speed: Greather: 0.1
SnapCrab_NoName_2016-6-1_16-9-34_No-00.jpg

Run → Stay Speed: Less: 0.1
SnapCrab_NoName_2016-6-1_16-10-18_No-00.jpg

Stay → Attack Attacking: true
SnapCrab_NoName_2016-6-1_16-11-55_No-00.jpg

Run → Attack Attacking: ture
SnapCrab_NoName_2016-6-1_16-11-55_No-00.jpg

Attack → Stay ExitTime (デフォルトのまま)
SnapCrab_NoName_2016-6-1_17-10-33_No-00.jpg

アニメーション遷移の確認
ProjectビューからAssets/Prefab内の Dragon を選択
SnapCrab_NoName_2016-6-1_17-13-34_No-00.jpg

InspectorのAnimatorに DragonAnimatorController をドラッグ&ドロップ
ApplyRootMotionのチェックを外します
SnapCrab_NoName_2016-6-1_17-14-12_No-00.jpg

CharaAnimationスクリプトを追加
SnapCrab_NoName_2016-6-1_16-22-58_No-00.jpg

Sceneビューにドラゴンのプレハブを追加して、動作の確認
Has Exit Time は各自の好みで外したりしておきましょう

それで、確認していて
攻撃や待機は普通にしているのですが、なぜかドラゴンが移動しない
狼は動かせたのに...

具体的に言うと、Arrivedのチェックが外せない、押してもチェックが入ったままで
座標変えても動かないっていうね
まぁ、動けるだろうから?AIを実装したらトコトコ歩くでしょう

とりあえず今回はこれで終わり!
ちょうどアニメーションの項目が全部終わりました
次回は攻撃を作ってみようです
関連記事

Leave a Reply


管理者にだけ表示を許可する

Comment

Leave a Reply


管理者にだけ表示を許可する