第8回目:3Dキャラクターをノンプログラミングで動かす(後編)|Tech Book Zone Manatee

マナティ

入門Unity 5

第8回目:3Dキャラクターをノンプログラミングで動かす(後編)

今回は前回からの引き続きで、ユニティちゃんをキーボードの「前後左右」矢印キーで動かす方法を解説していきましょう

はじめに

では、今回は前回からの引き続きで、ユニティちゃんをキーボードの「前後左右」矢印キーで動かす方法を解説していきましょう。 前回は図1の状態で終わっていたと思います。

図1 Unitucyan.fbxをScene上に配置して、「Main Camera」のほうを向けた

Animatorの設定

Hierarchyからunitychanを選択し、表示されるInspectorのAnimatorの「Controller」に右端隅に表示されている「○に・」のアイコンをクリックして、「Select RuntimeAnimatorControllerから「Locomotion」を選択します(図2)。

図2 AnimatorのControllerに「Locomotion」を指定する

デフォルトで「Apply Root Motion」にはチェックが付いていると思いますが、もしチェックが付いていなかった場合は、必ずチェックを付けてください(図3)。

図3 「Apply Root Motion」のチェックを確認する

Add Componentの項目を選択する

次に、unitychanのInspector内にある「Add Component」をクリックして、「Physics→Character Controller」と選択します(図4)。

図4 「Character Controller」を選択する

すると、Inspector内に「Character Controller」が追加されます。Centerの「Y」に「1」と指定します。「1」を指定しておくと、物に当たった時の「当たり判定」が体の中心で判定されるようになります。ここは必ず「1」を指定しておいてください(図5)。

図5 Inspector内にCharacter Controllerが追加された

これは追加されるだけで、今回はこれらの項目が何を意味してるのかを知る必要はありません。「Character Controller」を追加する必要があるということを知るだけで十分です。

次に、同じく「Add Component」から「Scripts→Locomotion Player」と選択します(図6)。

図6 「Locomotion Player」を選択した

すると、Inspector内に、「Locomotion Player(Script)」が追加されます(図7)。

図7 Locomotion Playerが追加された

このファイルはスクリプトファイルでC#で書かれています。現時点では、このスクリプトの内容を知る必要は一切ありません。

では、一度これで実行してみましょう。「Play」ボタンをクリックして、キーボードの「左右矢印」キーを操作してみてください。キー操作に応じてユニティちゃんが動くと思います。ただし、床からはみ出ると下に落下してしまいますので、注意してください。また、落下以前に、ユニティちゃんが移動すると、隠れて見えなくなってしまいます(図8)。これは、ユニティちゃんの動きに、カメラが追従していないのが原因です。 もちろん、ユニティちゃんの動きにカメラを追従させる処理も簡単に追加できます。

図8 ユニティちゃんの動きにカメラが追従していない

ユニティちゃんの動きにカメラを追従させる

Hierarchyから「Main Camera」を選択します。Inspectorの「Add Component」から「Camera-Control→Smooth Follow」と選択します。Inspector内に「Smooth Follow(Script)」が追加されます(図9)。

図9 「Main Camera」のInspectorに「Smooth Follow(Script)」が追加された

図9のTargetの横にある“○に・”のアイコンをクリックして、Select Transformの「Scene」タブからunitychanを選択してください(図10)。

図10 Select Transformからunitychanを選択した

またDistanceに「5」、Heightに「4」を指定します。Distanceは「Main Camera」からユニティちゃんまでの距離、Heightは高さを表します。このあたりの値は、実際に動かしてみて、自分のちょうどいい距離や高さの値を指定してください。図11のようになります。

図11 DistanceとHeightの値を指定した

以上でユニティちゃんの設定は完了です。次にPlane(床)が真っ白では味気ないので、Textureを適用してみます。

Plane(床)にTextureを適用する

「Project」から「Asstes→UnityChan→Stage→Textures」と選択します。3枚のTextureが表示されますので、自分の気に入ったTextureをPlane上にドラッグ&ドロップしてください。筆者は、「unitychan_tile6.png」を適用してみました(図12)。

図12 Planeに「unitychan_tile6.png」を適用した

Playで実行すると図13のようになります。

図13 ユニティちゃんがPlane上を自由に走りまわっている。カメラも動きに追従している

作品をUnity 5メニューの「File Save Scene as」から「ユニティちゃんを動かす」という名前で保存しておきましょう。

実際に動かしたのが下記の動画です。

ユニティちゃんをキーボードで操作する
https://youtu.be/ffKs3_BA0wo

今回は、これで終わりです。コードを一切記述することなく、Inspector内の設定だけで、ユニティちゃんをキーボードで自由に操れるようになります。すごいとは思いませんか。

次回は、今回作成した作品にジャンプ機能を追加してみます。

著者プロフィール

薬師寺国安事務所 薬師寺国安(著者)
薬師寺国安事務所代表。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。現在はUnity5、UE4、ExcelVBAについて執筆活動中。
Microsoft MVP for Development Platforms‒Windows Platform Development (Oct 2014‒Sep 2015)。