ジャンプして障害物の上に乗せたいので、障害物「Obstacle」(Cube)オブジェクトの高さを少し低くしておこう。それと障害物の長さも少し長くしておく。勢い余って落ちる可能性があるからだ。前回使用したトランスフォームツールの「スケール」ツールで行うといい。
これで、プレー画面で実行すると、動画1のようになる。
ここで、Unityのメニューから「File」→「Save Scene as」で「キャラクターのジャンプ」という名前で保存しておこう。
次に、新しいプロジェクトを作成しよう。「NEW」から「UnitychanWalk」というプロジェクトを作成する。
今回は、ユニティちゃんを歩かせてみよう。「“Unity-chan!” Model」は連載第3回でインポートしているので、インポート済みを前提として解説する。
Hierarchyの「Create」→「3D Object」→「Plane」を選択して「床」を作る。次に、「Project」→「UnityChan」→「Models」→「unitychan.fbx」をScene画面内にドラッグ&ドロップする。
ユニティちゃん(unitychan)のInspectorから、「Transform」→「Rotation」の「Y」に「180」を指定して、ユニティちゃんがカメラの方を向くようにしておく。また、Hierarchy内の「Main Camera」を移動キーで操作して、Game画面を見ながら図9のような配置にする。
本稿の前半でジャンプのアニメーションを追加したときは、既に用意されていた「Animator Controller」に新しいStateやTransitionなどを加えたが、今度は「Animator Controller」自体も新規で作成してみよう。
Unityメニューの「Assets」→「Create」→「Animator Controller」と選択する。「Project」内の「Prefabs」フォルダに「New Animator Controller」が作成されるので、名前を「myUnitychanController」と変更しておく(図10)。
図10の状態で、「myUnitychanController」をダブルクリックすると、「Animator Controller」画面が表示される。「Any State」と「Entry」という長方形が表示されているだけだ。この画面の、何もないところを右クリックして、「Create State」→「Empty」と選択する。すると、「New State」という長方形が表示される。
この「New State」を選択すると、Inspectorが表示されるので、「名前」を「Walk」と変更しておく。次に、「Motion」項目の右端にある「○に・」ボタンをクリックして表示される「Select Motion」の、表示されるリストから「walk」を選択する(図11)。
次に、Inspectorから「unitychan」を選択し、Inspector内の「Animator」の「Controller」の右端に表示されている「○に・」ボタンをクリックして、「Select RuntimeAnimatorController」を表示し、先ほど作成した「myUnitychanController」を選択する。
「Apply Root Motion」にチェックを付けておく。チェックを付けていないと、カメラが追従してくれないので、注意が必要だ(図12)。
「Main Camera」を選択して、「Add Component」から「Camera-Control」を選択し、表示される「Smooth Follow」を選択する。すると、「Main Camera」に「Smooth Follow(Script)」の項目が追加されるので、「Target」に右端に表示されている「○に・」ボタンをクリックして、「Select Transform」画面から、「unitychan」を選択する(図13)。
歩いて進んでいるのが分かるようにしよう。「UnityChan」フォルダの「Stage」→「Material」内にある、「unitychan tile3.mat」を「Plane」(床)に、上にドラッグ&ドロップする(図14)。
次に、「Plane」の大きさを変更しよう。Hierarchy内の「Plane」を選択し、Inspector内の「Transform」の「Scale」の値を「X」を「70」に、「Y」を「0」に、「Z」を「70」にする(図15)。
プレー画面で実行すると、動画2のようにユニティちゃんが黙々と歩き続ける。
ここで、Unityメニューの「File」→「Save Scene as」と選択して「歩くユニティちゃん」という名前で保存しておこう。
今回は、これで終わりだ。3Dキャラクターにジャンプの機能を追加する手順を例にAnimator Controllerの使い方を解説し、「Mecanim Locomotion Starter Kit」をユニティちゃんに適用させてみたが、いかがだっただろうか。このように、「Mecanim」は他の3Dキャラクターにも応用できる便利な機能だ。後の回も読んで使い方を覚えて、いろいろ試してほしいが、次回はいったん「パーティクルシステム」について解説する。
【2016/12/22】Windows 10、Unity 5.4に対応しました。C#のスクリプトを追加しました。
このコンテンツは、『ユニティちゃんライセンス』で提供されています
薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所
薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。
1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。
2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。
Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。
Copyright © ITmedia, Inc. All Rights Reserved.