第1回目:3rd Person Controller+Fly Mode|Tech Book Zone Manatee

マナティ

UnityおすすめAsset集

第1回目:3rd Person Controller+Fly Mode

UnityのAsset Storeで公開されている、面白いAssetの紹介をしていきます。また、そのAssetを自分のコンテンツの中でどのように使用したらいいかの方法も解説していきましょう。
今回の連載は、Unityの操作方法をある程度熟知されている方を対象にしています。もしUnityが初めての方は、連載「入門Unity 5」を読まれた後、本連載をお読みいただくと理解が早いと思います。

使用するUnityのバージョンは、最新版の「Unity5.6.0f3」です。下記のURLよりダウンロード可能なので、インストールしておいてください。
https://store.unity.com/ja/download?ref=personal

今回紹介するAssetは「3rd Person Controller+Fly Mode」です。これは3Dモデルをスーパーマンのように空に飛ばす機能を備えています。無料です。

3rd Person Controller+Fly Modeのインポート

Asset Stoteの検索欄に「3rd Person Controller+Fly Mode」と入力すると、このAssetが表示されます。初めての場合は「ダウンロード」→「インポート」という流れになります。筆者は何度も使用していますので、「インポート」と表示されています(図1)。

 

図1 3rd Person Controller+Fly Modeのインポート画面

図1から「インポート」をクリックすると、UnityのScene画面のProject内に図2のようなフォルダが作成され、必要なファイルが取り込まれます。

図2 必要なファイルが取り込まれた

Unity Mask Manのインポート

先の方法と同じ手順で、もう一つAsset Storeから「Unity Mask Man」というAssetを「インポート」しておいてください。すると、図2の中に「Unity Mask Man」のファイルが取り込まれます(図3)。

図3 Unity Mask Manのファイルが取り込まれた

では、舞台を作っていきましょう。

舞台を作る

HierarchyのCreateから「3D Object」→「Plane」と選択してください。するとScene画面内に図4のようにPlaneが配置されます。これは「床」のようなものです。今回のUnityのレイアウトは「2 by 3」というレイアウトを用いています。上にScene画面、下にGame画面が表示されます。Scene画面に配置したAssetの状態を、カメラ目線で確認できますので便利です。

図4 Planeが配置された

Unity Mask Manを配置する

Plane(床)の上に、Project内の「Assets」→「UnityMaskMan」→「Prefabs」フォルダ内にある、「UnityMan.prefab」をPlane上に配置します。Main Cameraの位置を調節して図5のように表示されるようにしてください。

Game画面で見ると、UnityManがカメラに背を向けていますので、HierarchyからUnityManを選択して、InspectorのTransformのRotationの「Y」に「180」と指定してください。UnityManがカメラの方を向きます。UnityManが180度回転するわけです。

図5 UnityManをPlane上に配置した

UnityManにInspectorを設定する

HierarchyからUnityManを選択します。表示されるInspectorから、AnimatorのControllerに「CharacterController」を指定します。右端の「」(〇に・)のアイコンをクリックすると「Select RuntimeAnimatorController」が表示されますので、その中から「CharacterController」を選択してください(図6)。

図6 ControllerにCharacterControllerを選択した

次に「Add Component」から「Physics」→「Rigidbody」を選択します。Rigidbodyは「重力」を表します。Rigidbodyを指定しないと、UnityManに重力が働かず、宙に浮いたままの状態になりますので注意してください。RigidbodyのConstraintsを展開して、Freeze Rotationの「X」、「Y」にチェックを入れてください。ここのチェックを入れ忘れるとUnityManが動く度に、ひっくり返ってしまいます(図7)。

図7 ConstraintsのFreeze Rotationの「X、Y」にチェックを入れる

同じく「Add Component」から「Physics」→「Capsule Collider」を選択します。Centerの「Y」に「0.8」、Heightに「1.6」を指定します。これを設定すると、図8のようにUnityManが緑色の細い線でカプセル状に囲まれているのがわかります。先に指定した値は、この緑色の線のサイズになります。ここは各自がScene画面を見ながら、UnityManがうまく囲まれるように設定してください。Colliderとは、物理的な衝突を目的としたオブジェクトの形が定義されるコンポーネントのことを指します。

図8 UnityManがCapsule Colliderで囲まれている

後は同じく「Add Component」から「Fly Behavior」、「Anim Behavior」、「Move Behavior」、「Basic Bhehavior」のScriptを追加していきます。追加するには「Add Component」の検索欄に上記の文言の一部を入力すると表示されますので、そこから選択するといいでしょう。

上記で追加したScriptでBasic Behaviorの「Player Camera」には、右端の「」(〇に・)のアイコンをクリックして「Main Camera」を指定してください(図9)。

図9 Main Cameraを指定した

全て設定すると図10のようになります。

図10 UnityManのInspectorのScriptを全て指定した

最後にMain Cameraの設定を行います。

Main Cameraの設定

HierarchyからMain Cameraを選択し、InspectorのAdd Componentから、検索欄に「Third Person」と入力します。すると、「Third Person Orbit Cam」が表示されますので、これを選択してください。Playerの欄には「UnityMan」を指定します(図11)。「Third Person Orbit Cam」を指定すると、Playした際に、マウスを移動して画面をいろいろな角度から眺めることが可能になります。

図11 PlayerにUnityManを指定した

操作方法

操作方法については、ProjectのAsset内にある「Readme.rtf」または「Readme.txt」の中に書いてありますので、読めばわかると思います。但し英文です。

「上下左右矢印キー」でUnityManが自由に動き回ります。UnityManを浮かす場合は「E」キーを押します。「S」キーを押したまにすると、飛んでいきます。飛んでいる最中の方向を変えるには、「上下矢印キー」またはキーボードの「W、A、S、D」キーで変更できます。着地する場合は再度「E」キーを押します。

実際に飛ばすと、図12のようになります。

図12 UnityManが飛んでいる

実際に動かした動画が、この動画1です。

空飛ぶUnityMan

動画1 空飛ぶUnityMan

今回はここまでです。Plane(床)からUnity Manを飛ばしましたが、Asset Storeから「地球」のAssetをインポートして、「地球」のAssetを拡大して配置し、その上にUnityManを配置して飛ばすと、「地球」がだんだんと小さくなって表示され、あたかも宇宙を飛んでいるかのようになります。ぜひ、みなさんで試してみてください。

次回は、3Dモデルの視線が動くものを追いかける「Head Look Controller(無料)」について紹介します。お楽しみに。

著者プロフィール

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