Hierarchyから「UnityMan」を選択し、Inspectorの「Add Component」ボタンをクリックし、「Physics」→「Character Controller」と選択する。Inspector内に「Character Controller」が追加される。「Center」の「Y」の値を「1」に指定する。これは当たり判定をする箇所で、ここが「0」のままだと、3DキャラクターがCubeなどの障害物をすり抜けてしまう。必ず「1」に設定しておこう。
設定するとScene画面上の3Dキャラクターが薄緑色の円柱形で囲まれる(図15)。
次に、再度「Add Component」ボタンをクリックして、「Scripts」→「Locomotion Player」と選択する。Inspector内に「Locomotion Player」のスクリプトが追加される(図16)。
最後に、「Add Component」ボタンから「Physics」→「Rigidbody」を選択しておこう。全て設定したUnityManのInspectorは図17のようになる。
これだけの設定で、もう3Dキャラクターは動き回ることができる。実行した動画が動画2だ。
動画2を見ると分かるが、3Dキャラクターが画面から外れてしまうことがある。これはカメラが3Dキャラクターを追従していないために発生する現象だ。インポートした「Mecanim Locomotion Starter Kit」で3Dキャラクターを追従させよう。
Hierarchyから「Main Camera」を選択し、「Add Component」をクリックして「Camera-Control」→「Smooth Follow」と選択する。すると、Inspector内に「Smooth Follow」のScriptが追加される。「Target」の右隅にある「○に・」アイコンをクリックして、表示される「Select Transform」の画面から、「Scene」タブ内の「UnityMan」を指定する。
項目が多くて探しにくい場合は、一番上にある検索欄に「Unity」と入力するとUnityManが表示される(図18)。
「Smooth Follow」の中の「Distance」と「Height」には、カメラの「距離」や「高さ」を指定できる。今回は「Distance」に「4」、「Height」に「3」と指定してみた。各自がいろいろ値を変更してどのように表示されるか確認してほしい。
「Smooth Follow」を設定して実行したのが動画3になる。
ちゃんとカメラが3Dキャラクターを追い掛けている。
今回のサンプルでは、「スペース」キーを押すと上空からCubeが落下してくることになっている。UnityManを配置した状態で、実際に「スペース」キーを押すとCubeが落ちてくるかを確認してみる。
動画4のようになる。
まだCubeが降ってくるだけで、Cubeと3Dキャラクターが接触しても何も発生しない。接触した場合に、3Dキャラクターが「Cube」を蹴散らす処理を作っていく。
Copyright © ITmedia, Inc. All Rights Reserved.