連載
» 2017年02月20日 05時00分 公開

ゲーム開発初心者のためのUnity入門(13):Unity実用Tips――衝突判定とCollider、複数Tagの使い方 (2/4)

[薬師寺国安,PROJECT KySS]

Unityマンの配置とタグなどの設定

 まず、Unityマンを配置する。「Project」内の「UnityMaskMan」フォルダの「Prefabs」内にある「UnityMask」をScene画面内にドラッグ&ドロップする。

 先ほど設定した「Border」の内側に配置する。Scene画面では「Border」は消えて見えないが、Hierarchyで「Border」を選択すると枠線が表示される。

 Unityマンは、足元をきっちりとPlaneに接触するように配置しよう。表示される3方向の「黄色い矢印」で調節するといい。

 次に「UnityMask」のInspectorの「Animator」にある、「Controller」に「Locomotion」を設定する。

 続いて、「Add Component」ボタンで「Physics」→「Character Controller」と選択し、「Center」の「Y」を「1」に設定する。同じく「Add Component」から「Scripts」→「Locomotion Player」を指定する。

 この辺りの詳細な説明は前回解説しているので、参照してほしい。

 Scene画面は図7のようになる。

図7 Unityマンと「Border」(非表示で見えない)が配置されている

タグの設定

 次に、「UnityMask」を選択し、Inspectorの「Tag」の「Untagged」の横にある「上下▲」をクリックする。すると、「Add Tag」の項目があるのでこれをクリックする(図8)。

図8 「Add Tag」を選択する

 表示される「Tags & Layers」の、「Tags」にある「List is Empty」の右隅下の「+」アイコンをクリックする(図9)。

図9 「+」アイコンをクリック

 すると、「Tag 0」の入力欄が表示されるので、「Player」と入力する(図10)。

図10 「Player」と入力

 再度Hierarchyから「UnityMask」を選択し、Inspector内の「Tag」の「Untagged」の横の「上下▲」をクリックして、「Player」を選択する。「UnityMask」のタグが「Player」となる(図11)。

図11 「UnityMask」の「Tag」に「Player」を指定する

Animatorの設定

 Unityマンがモンスターたちに接触したときに、キックを開始するアニメーションも設定しよう。Animatorの設定については、前回記事の「3Dキャラクターが「蹴る」動作をAnimatorで設定する」を参照してほしい。

モンスターたちの配置とタグなどの設定

 次に、モンスターたちをScene上に配置する。

 各モンスターは、「Project」の「Assets」→「ENTIGI」→「FantasyMonsterPack」→「Prefabs」内にある、「Orc.prefab」「Orc2.prefab」「Orc3.prefab」をScene画面上にドラッグ&ドロップする。配置すると、このモンスターがかなり巨大であることが分かるので、InspectorからTransformのScaleの値を全て「0.3」に指定しておく。またUnityMaskと向かい合うように、Rotationの「Y」に「180」と指定する。全てのモンスターに、この設定を行う。

 「Main Camera」の位置も、Game画面を見ながらUnityMaskとモンスターが表示されるように配置する(図12)。

図12 3匹のモンスターを配置した

 見えない境界線を挟んで、Unityマンとモンスターが向き合っていることになる。

複雑な形状のオブジェクトにも「Box Collider」が使える

 次に、「Hierarchy」から「Ctrl」キーを押しながら、全ての妖怪を選択し、「Inspector」内の「Add Component」ボタンから「Physics」→「Rigidbody」→「Box Collider」を追加する。この「Rigidbody」「Box Collider」を追加していないと、Unityマンが妖怪をキックしても、妖怪は跳ね飛ばされないので、必ず全ての妖怪に追加しておく必要がある。

 また「Box Collider」を追加して、「Inspector」内の「Box Collider」の「Size」の「X」「Y」「Z」の位置にマウスを持っていき、マウスカーソルが「←→」に変わった状態で、左右にドラッグして、妖怪がうまく囲まれる程度の大きさにしておく。

 「Size」の「Y」が高く取ってあるので、マウスでドラッグして短くし、最後に「Center」の「Y」をマウスで操作して、妖怪が中央にうまく収まるように設定する。

 全ての妖怪の「Box Collider」を設定したのが図13だ。

図13 3匹のモンスターたちが緑色の立方体(Box Collider)で囲まれている

Ork.Controllerを編集する

 Projectの「Assets」→「ENTIGI」→「FantasyMonsterPack」→「Animator」内にある、「Ork.Controller」をダブルクリックしてStateやTransitionが表示されている画面を表示する。

 真ん中のオレンジのIdleを選択して、Inspectorから名前を「Fighting」とし、「Motion」にも「Fighting」を選択する(図14)。最初に表示されたときに、モンスターはファイティングポーズをとることになる。

図14 「Ork.Controller」を編集した

タグの設定

 次に、各モンスターのタグを設定する。図11のようにUnityマンに「Player」と設定したのと同じ手順で、図10の続きに各モンスターの名前を登録していく(図15)。

図15 各モンスターのTagタグ設定している

 ここでHierarchyにある各モンスターを選択してInspectorを表示し、設定した「Tag」に登録した名前を指定する(図16)。図16では一例として「Orc」のタグを設定している。

図16 「Orc」のタグを設定している

 この他の、「Orc2」、「Orc3」についても同様に「Tag」を選択して指定しておく。これで、各3Dキャラクターの設定は完了だ。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。