【UnityC#講座】3D人型モデルを三人称視点で動かす【ユニティちゃん】


Unity2018.1.5f1
Windows10

■■追記■■

この記事のスクリプトの改良版を以下のリンク先で紹介しました。

【UnityC#講座】3D人型モデルを三人称視点で動かす操作を改良

■■追記ここまで■■

三人称操作/トップ

今回はアクションRPGみたいなカメラが、操作する人型オブジェクトの周りをマウス操作でぐるぐる回るようにします。
こんな感じですね

三人称操作/完成図

人型オブジェクトはユニティちゃんを使うのでダウンロードしておいてください。

■カメラを設定する

オブジェクトを用意する

まずカメラの設定から始めます。
Main Cameraを空のオブジェクトの子にし、空のオブジェクトが回転することでカメラが人型オブジェクトを向きながら回転するようにします。
なのでまず空のオブジェクトを出して「Axis」と名付けてください。

Hierarchy > Create > Create Empty

あとユニティちゃんと彼女が乗るPlanを出しておきましょう。

Project > UnityChan > Models > unitychan

Hierarchy > Create > 3D Object > Plan

Planは真っ白ですが見づらかったらユニティちゃんアセットの中にあるMaterialを当てたら良いでしょう。

Project > UnityChan > Stage > Materials

HieralchyのPlanの文字かSceneのPlanのオブジェクトにアタッチすると模様が変わります。

三人称操作/Plan/Material変更

次にHieralchyでMain CameraをAxisにアタッチするとMainCameraはAxisの子オブジェクトになります。
スクリプトで子オブジェクトにすることもできますが今回は分かりやすくこうしました。

三人称操作/Main Cameraを子オブジェクトに

カメラを動かすスクリプトを書く

そうしたらスクリプトを書きましょう。
名前はオブジェクトと同じ「Axis」にします。

Project > Create > C# Script

Inspectorの設定をする

これをAxisにアタッチしたら次はそのInspectorを設定します。

三人称操作/AxisのInspectorの設定

Playerにユニティちゃんを入れてください。
CamにMain Cameraを入れてください。
Axis Posに何も入れないとカメラの軸がユニティちゃんの中心になります。
私はY軸を1にするとちょうどよく感じます。

さて、無事カメラは動いたでしょうか。

三人称操作/カメラぐるぐる

マウスホイールで距離を変えられます。

三人称操作/マウスホイールで遠近

さて次はAnimator Controllerの設定に入りましょう。

スポンサーリンク

■Animator Controllerの設定をする

Animator Controllerを出す

Animator Controllerはアニメーションの遷移を管理するシステムです。

Project > Create > Animator Controller

名前は「UnityChanAnime」にしました。
Animator Controllerのアイコンをダブルクリックすると罫線の画面が出てきます。

三人称操作/AnimatorController

罫線上にある四角いものをStateと言います。
罫線のウィンドウはマウスホイールで拡大縮小ができ、マウスホイールでドラッグすると移動することができます。

Parametersを設定する

三人称操作/AnimatorController/Parameters/Float

Animator Controllerのウィンドウの左上のParametersをクリックしてください。
次に+ボタンを押し、出てきたメニューの中からFloatを選びます。
それでXとYという名前をつけてください。

Blend Treeの設定をする

三人称操作/AnimatorController/Blend Tree/メニュー

次は罫線上で右クリックをして次のように選んでください。

Create State > From New Blend Tree

三人称操作/AnimatorController/Blend Tree/State

出てきたBlend TreeというStateをダブルクリックすると画面が変わります。

三人称操作/AnimatorController/Blend Tree/State2

その出てきたBlend TreeのStateをクリックするとInspectorが変わります。

Inspectorの設定をする

三人称操作/AnimatorController/Blend Tree/Blend Typeを2D Simple Directional

まずBlend Typeを2D Simple Directionalにします。
次にParametersをXとYになるようにしてください。

三人称操作/AnimatorController/Blend Tree/Motion設定

次はその下のMotionを設定します。
+ボタンをクリック、Add Motion Fieldをクリックするとアニメーションを入れる空欄ができます。
それを5つ作ってユニティちゃんアセット付属のアニメーションを入れます。
Pos XとPos Yの数値もついでに設定しましょう。

WAIT00 ・・・ 0 0
RUN00_F ・・・ 0 1
WALK00_B ・・・ 0 -1
RUN00_R ・・・ 1 0
RUN_L ・・・ -1 0

これでAnimatorControllerのウィンドウはこのようになっています。

三人称操作/AnimatorController/Blend Tree設定後

最後にUnityChanAnimeをユニティちゃんのAnimatorにセットします。
ついでにApply Root Motionのチェックを外してください。
これはアニメーションの動きで移動するかどうかを決めるものです。

三人称操作/Animator

■ユニティちゃんをスクリプトで動かす

スクリプトを書く

またC#スクリプトを出して今度は名前を「Player」にします。

Inspectorの設定

できたスクリプトをユニティちゃんにアタッチしてください。
そしたらCamの部分にMain Cameraを入れます。

三人称操作/Player/Inspectorの設定

さあ動かしてみましょう。
WASD、↑←↓→で前後左右に動きます。
カメラはマウスで動き、その方向に前進します。

今回は前進する時だけ方向が変わるようにしましたが気に入らなかったら自分で改造してみてください。

[RequireComponent(typeof(CapsuleCollider))]
[RequireComponent(typeof(Rigidbody))]

これをスクリプトに入れたことにより自動的にコンポーネントにCapsule ColliderとRigidbodyが追加され、再生した時に設定もされるようにしました。
もしされないようなことがあったら以下のように設定してください。

三人称操作/Rigidbody/Inspectorの設定

三人称操作/Capsule Collider/Inspectorの設定

今回はこれで終わります。
お疲れさまでした。

ユニティちゃんライセンス

この作品はユニティちゃんライセンス条項の元に提供されています

■関連記事

【UnityC#講座】3D人型モデルの動かし方をユニティちゃんで学ぶ【Animator】

【UnityC#講座】ユニティちゃんにキソラちゃんがついてくるようにする【NavMeshAgent、Blend Tree】

【UnityC#講座】ユニティちゃんの表情を替える【SetLayerWeight】

【UnityC#講座】AnimatorControllerを使いまわす【AnimatorOverrideController】

【UnityC#講座】AnimatorControllerの使い方

【UnityC#講座】ユニティちゃんたちをドラクエっぽく一列に移動や順番変更させる【List、for文、NavMeshAgent】

【UnityC#講座】ユニティちゃんをマウスカーソルの方向に移動させる

【UnityC#講座】上下キーで前進後退、左右キーで方向替える移動法【ユニティちゃん】

【UnityC#講座】無料アセットでユニティちゃんに剣を振らせる

スポンサーリンク

目次に戻る