2017.04.05
第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から「インポート」をクリックすると、UnityのScene画面のProject内に図2のようなフォルダが作成され、必要なファイルが取り込まれます。
Unity Mask Manのインポート
先の方法と同じ手順で、もう一つAsset Storeから「Unity Mask Man」というAssetを「インポート」しておいてください。すると、図2の中に「Unity Mask Man」のファイルが取り込まれます(図3)。
では、舞台を作っていきましょう。
舞台を作る
HierarchyのCreateから「3D Object」→「Plane」と選択してください。するとScene画面内に図4のようにPlaneが配置されます。これは「床」のようなものです。今回のUnityのレイアウトは「2 by 3」というレイアウトを用いています。上にScene画面、下にGame画面が表示されます。Scene画面に配置したAssetの状態を、カメラ目線で確認できますので便利です。
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度回転するわけです。
UnityManにInspectorを設定する
HierarchyからUnityManを選択します。表示されるInspectorから、AnimatorのControllerに「CharacterController」を指定します。右端の「」(〇に・)のアイコンをクリックすると「Select RuntimeAnimatorController」が表示されますので、その中から「CharacterController」を選択してください(図6)。
次に「Add Component」から「Physics」→「Rigidbody」を選択します。Rigidbodyは「重力」を表します。Rigidbodyを指定しないと、UnityManに重力が働かず、宙に浮いたままの状態になりますので注意してください。RigidbodyのConstraintsを展開して、Freeze Rotationの「X」、「Y」にチェックを入れてください。ここのチェックを入れ忘れるとUnityManが動く度に、ひっくり返ってしまいます(図7)。
同じく「Add Component」から「Physics」→「Capsule Collider」を選択します。Centerの「Y」に「0.8」、Heightに「1.6」を指定します。これを設定すると、図8のようにUnityManが緑色の細い線でカプセル状に囲まれているのがわかります。先に指定した値は、この緑色の線のサイズになります。ここは各自がScene画面を見ながら、UnityManがうまく囲まれるように設定してください。Colliderとは、物理的な衝突を目的としたオブジェクトの形が定義されるコンポーネントのことを指します。
後は同じく「Add Component」から「Fly Behavior」、「Anim Behavior」、「Move Behavior」、「Basic Bhehavior」のScriptを追加していきます。追加するには「Add Component」の検索欄に上記の文言の一部を入力すると表示されますので、そこから選択するといいでしょう。
上記で追加したScriptでBasic Behaviorの「Player Camera」には、右端の「」(〇に・)のアイコンをクリックして「Main Camera」を指定してください(図9)。
全て設定すると図10のようになります。
最後にMain Cameraの設定を行います。
Main Cameraの設定
HierarchyからMain Cameraを選択し、InspectorのAdd Componentから、検索欄に「Third Person」と入力します。すると、「Third Person Orbit Cam」が表示されますので、これを選択してください。Playerの欄には「UnityMan」を指定します(図11)。「Third Person Orbit Cam」を指定すると、Playした際に、マウスを移動して画面をいろいろな角度から眺めることが可能になります。
操作方法
操作方法については、ProjectのAsset内にある「Readme.rtf」または「Readme.txt」の中に書いてありますので、読めばわかると思います。但し英文です。
「上下左右矢印キー」でUnityManが自由に動き回ります。UnityManを浮かす場合は「E」キーを押します。「S」キーを押したまにすると、飛んでいきます。飛んでいる最中の方向を変えるには、「上下矢印キー」またはキーボードの「W、A、S、D」キーで変更できます。着地する場合は再度「E」キーを押します。
実際に飛ばすと、図12のようになります。
実際に動かした動画が、この動画1です。
今回はここまでです。Plane(床)からUnity Manを飛ばしましたが、Asset Storeから「地球」のAssetをインポートして、「地球」のAssetを拡大して配置し、その上にUnityManを配置して飛ばすと、「地球」がだんだんと小さくなって表示され、あたかも宇宙を飛んでいるかのようになります。ぜひ、みなさんで試してみてください。
次回は、3Dモデルの視線が動くものを追いかける「Head Look Controller(無料)」について紹介します。お楽しみに。