Unity2018.1.5f1
Windows10
□
3ヶ月ほど前にこのような記事を書きました。
【UnityC#講座】ユニティちゃんをスカイリム風に操作する
そして最近スカイリムをチェックしてみたのですが、この記事で再現したのは屋内やダンジョンの操作方法になっていました。
このゲームはフィールドではスクロールでカメラの遠近を操作できるのですが屋内ではできません。
三人称と一人称の切り替えはフィールドではカメラが滑らかに動くのですが屋内では瞬間移動します。
なので今回はスカイリムのフィールドでのカメラの操作と移動方向の切り替えを再現してみました。
■ユニティちゃんとMain Cameraに親オブジェクトを与える
オブジェクトを出す
まずはいつも通りユニティちゃんをHierarchyかSceneに出してください。
UnityChan > Models > unitychan
そして空のオブジェクトを2つ出します。
名前は「Player」と「Axis」です。
Hierarchy > Create > Create Empty
Playerはユニティちゃんの親オブジェクトになります。
スカイリムでは一人称の時、人型オブジェクトを消しているようなので今回はユニティちゃんも消すことにします。
AxisはMain Cameraの親オブジェクトになります。
Axisを中心軸としてMainCameraはPlayerの周りを回ります。
ユニティちゃんとMain Cameraをそれぞれ子オブジェクトにします。
HierarchyでPlayerとAxisにそれぞれドラッグ&ドロップしてください。
ユニティちゃんはXYZ軸をすべて0にし、Main Cameraは放っておいて良いです。
おっと、ユニティちゃんのAnimatorは今回は必要ありません。
チェックボックスを外すか歯車マークをクリックしてRemove Componentで消してください。
あと床なのですが私は今回Terrainを入れましたが別にPlaneでも構いません。
Hierarchy > Create > 3D Object > Terrain
Hierarchy > Create > 3D Object > Plane
コンポーネントを追加する
PlayerにRigidbody、Capsule Collider、Animatorを入れます。
InspectorのAdd Componentで検索して入れてください。
RigidbodyはConstraintsのFreeze RotationのXYZにチェックを入れます。
そうすると勝手に回りだすことはありません。
Capsule Colliderは上手くユニティちゃんの頭から足を覆うようにセットします。
そしてAnimatorですが、Avatarの空欄の右の〇をクリックし、unitychanAvatarを入れます。
今回はそれだけでOK、Controllerは後で入れます。
地面についているか判定するオブジェクトを出す
次はもうひとつ空のオブジェクトを出してください。
名前は「GroundDesicion」でPlayerの子オブジェクトにしてください。
そしてSphere Colliderを入れます。
このようにPlayerのCapsule Colliderの下にちょこんと出るようにしてください。
あとIs Triggerにチェックボックスを入れると他のColliderやオブジェクトにぶつからなくなります。
GroundDesicionには後でスクリプトを入れます。
■カメラを操作できるようにする
今回、MainCameraは親オブジェクトのAxisの回転によりPlayerの周囲を回ります。
しかしカメラが真上や真下を通って反対側に行くとカメラの向きが反対になるので上下から反対側に行けなくします。
そしてFキーにより三人称視点と一人称視点を切り替えることができ、一人称視点だとカメラと一緒にPlayerが向きを変えます。
あとユニティちゃんは一人称の時消えるようにします。
なぜ三人称では移動する時向きを変えるのに一人称では常に向きを変えるのか・・・それはスカイリムでそうなっていたからです(笑)
そしてマウススクロールでカメラとPlayerの距離を変えられるようにしました。
スポンサーリンク
スクリプトを書く
それではC#スクリプトを書きましょう。
名前は「Axis」です。
Project > Create > C# Script
Inspectorの設定をする
さてこのAxisスクリプトを同名のAxisオブジェクトにドラッグ&ドロップするかAdd Componentで入れてください。
それからInspectorで設定をします。
この画像の通りにPlayer、Main Camera、ユニティちゃんをセットします。
あとAxis PosはY軸を1.5、Third PosはZ軸を-3にしました。
さてカメラは上手く動くようになったでしょうか?
□
この記事は後編に続きます。
【UnityC#講座】ユニティちゃんでもっとスカイリム風に操作したい 後編【Animator Controller】
この作品はユニティちゃんライセンス条項の元に提供されています
■関連記事
【UnityC#講座】3D人型モデルの動かし方をユニティちゃんで学ぶ【Animator】
【UnityC#講座】ユニティちゃんにキソラちゃんがついてくるようにする【NavMeshAgent、Blend Tree】
【UnityC#講座】ユニティちゃんをスカイリム風に操作する
【UnityC#講座】ユニティちゃんでもっとAnimator Controllerを上手く使いたい
【UnityC#講座】AnimatorControllerを使いまわす【AnimatorOverrideController】
【UnityC#講座】AnimatorControllerの使い方
スポンサーリンク