Unity5.6.0f3
Windows10
□
この作品はユニティちゃんライセンス条項の元に提供されています
【Unity講座】3D人型モデルの動かし方をユニティちゃんで学ぶ【Animator】
今回はこの記事の続きです。
前回設定したユニティちゃんの後ろに仲間が付いて来るようにします。
主に使う機能はNavMeshAgentとBlend Treeです。
さて、前回の「Person Control」プロジェクトを開いてキソラちゃん(Amane Kisora-chan(FREE ver))をダウンロードしましょう。
もちろん全てImportします。
まずは土台を作りましょう。
NaveMeshAgentでキソラちゃんを移動させますが、その移動する地面の設定が必要です。
それでは障害物となるCubeを出してください。
Hierarchy > Create > 3D Object > Cube
私はこのような位置にしましたが、別にPlanの上でキャラクターが当たるような高さならどこでも良いです。
次はCubeのInspectorの右上にStaticがあるので▼の印をクリックしてNavigation Staticを選んでください。
NaveMeshに対応させるのに必要です。
次はメニューのWindowからNavigationを選びます。
そしてHierarchyのPlaneを選んでから、出たNavigationのObjectタブのNavigation Staticのチェックを入れると先ほど設定したCubeが障害物として設定されます。
最後にBakeタブのBakeをクリックしてください。
Sceneで見るとこうなりました。
水色の部分がNaveMeshAgentが移動できるところでCubeを避けているのが分かると思います。
次はキソラちゃんを出します。
Assets > SapphiArt > SapphiArtchan > OBJ > SapphyArtchan
SapphyArtchanをSceneからHierarchyにドラッグ&ドロップしてください。
Inspector > AddComponent > NaveMeshAgent
キソラちゃんにNaveMeshAgentコンポーネントを入れてください。
スポンサーリンク
■Blend TreeでAnimationの遷移を設定する
Blend Treeは前回使ったAnimation Controllerの機能のひとつでAnimationを細かく遷移させることができます。
例えば静止状態→歩行→走行、といったような形で滑らかに移り変わらせることができるのですが、今回は静止状態→走行だけです。
Project > Create > Animator Controller
さて前回と同じくAnimator Controllerを出しましょう。
名前は「KisoraChanAction」にしました。
まずは左上のParametersの+をクリック。
Floatを選び、名前をSpeed、そして0.1と入れます。
次に罫線の部分を右クリック。
今回はFrom New Blend Treeを選びます。
そうするとBlend Treeと書かれたアイコンが出てくるのでそれをダブルクリックしてください。
InspectorにBlend Treeの設定画面が出るので画像のように設定します。
まずはParameterを右端の▼から先ほど作ったSpeedを選択。
Motionの+をクリックし、Add Motion Fieldを選択。
出て来たNone(Motion)にキソラちゃんアセットに入っていたアニメーションをセットします。
Project > Assets > SapphiArt > SapphiArtchan > Animation
そこにあるidleとrunningをドラッグ&ドロップします。
そしてAutomate Thresholdsのチェックを外すとThresholdが操作できるようになるのでrunningを0.1にしてください。
入力してからその欄の外側をクリックすれば確定されます。
Thresholdの値をスクリプトでキソラちゃんが動くスピードと照らし合わせてアニメーションを遷移させるのですが、今回は走らせるだけでなので少しでも動いたら遷移されるように数値をごくわずかにしました。
そしてできたKisoraChanActionをキソラちゃんのAnimatorのControllerにドラッグ&ドロップします。
あと初めから入っていたSapphi Art Chan_Anim Managerスクリプトはいらないので消しましょう。
右端の歯車アイコンをクリック、Remove Componentをクリックで消せます。
おっと、一番大事なNavMeshAgentを忘れていました。
これもAdd Componentで追加しておいてください。
■スクリプトをセットする
キソラちゃんにセットするスクリプトを書きます。
名前を「Following」にしました。
キソラちゃんにスクリプトをドラッグ&ドロップしたら、そのInspectorにユニティちゃんをドラッグ&ドロップしてください。
これでキソラちゃんがユニティちゃんについてきてくれます。
元々のスピードだとキソラちゃんが早くて滑らかに走ってくれないのでInspectorのNavMeshAgentのSpeedを2にすると良くなります。
なぜかNavMeshの青い地面が途切れているけども問題ありません。
ちゃんと障害物のCubeを避けて移動しているのが分かると思います。
さてあなたのキソラちゃんはちゃんと走って移動したでしょうか?
これで今回は終わりです。
■関連記事
【UnityC#講座】AnimatorControllerを使いまわす【AnimatorOverrideController】
【UnityC#講座】AnimatorControllerの使い方
【UnityC#講座】ユニティちゃんをモブキャラのごとくランダム移動させる【NavMeshAgent】
スポンサーリンク