▲前のページへ
次のページへ▼

衝突判定の組み込み


【目次】
衝突判定用コリジョンデータの複製
コリジョンデータの調整
コリジョン用コンポーネントの適用
コリジョンデータを出力する


衝突判定用コリジョンデータの複製

 次に衝突判定の組み込みを行ないます。

■ コリジョンデータの複製を行なう
  本来であれば Maya や 3dsMax などで作成したシーン情報を元に、キャラクタの減り込みを禁止する
  区域に対して Unity の Plane, Quad, Cube などを配置していく作業になるのですが、
  今回はシーンそのものが Unity の 3D オブジェクトで構成されていますので、
  そちらを活用してコリジョンデータを作成します。

  先のステージ設定同様、SimpleStage.unity のシーンを使いますので、
  Assets/moenginesample/Scenes にある SimpleStage.unity をダブルクリックで開いてください。
  

  以下のようなポップアップウィンドウが表示されたら「Don't Save」をクリックしてください。
  

  現在のステージに配置しているUnityの3Dオブジェクトは、Hierarchy タブ内の StageRoot/StageObject 内に
  収められています。その中身を全選択して、右クリックメニューから Duplicate を選択します。
  

  Duplicate で複製されたオブジェクトを、Collision 直下にドラッグして移動します。
  

  Duplicate の際に、順番がバラバラになってしまいますので、Collision 内のデータについて
     ・ Plane1
     ・ Quad4 ~ Quad7
     ・ Cube4 ~ Cube7
  になるように、手動で並べ替えてください。
  


コリジョンデータの調整

 複製した3Dオブジェクトに対して、コリジョンデータとして適用させるための調整を行ないます。

■ ワイヤーフレーム表示に切り替える
  雰囲気を掴んでもらうために、コリジョンオブジェクトを非表示(ワイヤーフレーム)に切り替えます。
  まず、Hierarchy タブ内の Collision 内の全ての3Dオブジェクトを全選択してください。
  

  全選択した状態で、Inspector タブ内の Mesh Renderer のチェックボックスを外してください。
  

  Sceneビューでワイヤーフレームで表示された箇所がコリジョンになります。
  

■ Quad(外郭の壁)のコリジョンの横幅を広げる
  Quadオブジェクト(外郭にある4枚の壁)の部分の四隅の当たり抜けを防止するため、コリジョンの横幅を広げます。
  まず、Hierarchy タブ内の Collision 内のうち、Quad4~Quad7 を選択状態にします。
  

  この状態で、Inspector タブ内の Trasform 枠内の Scale-X の値を 20 から 25 に変更します。
  

  この状態にすることで、四隅の当たり抜けを防ぎます。
  

■ Cube(障害物)のコリジョンの高さを高くする
  Cubeオブジェクト(ステージ上に散在している障害ボックス)部分の壁当たり抜けを防止するため、
  コリジョンの縦幅を広げます。
  まず、Hierarchy タブ内の Collision 内のうち、Cube 4~Cube 7 を選択状態にします。
  

  この状態で、Inspector タブ内の Trasform 枠内の Scale-Y の値を 1 から 10 に変更します。
  

  この状態にすることで、高さのあるユニットの当たり抜けを防ぎます。
  


コリジョン用コンポーネントの適用

 現在編集中のコリジョンデータに対し、コリジョン用コンポーネントを適用します。

■ コンポーネントを追加する
  まず、Hierarchy タブ内の Collision 内の全ての3Dオブジェクトを全選択してください。
  

  この状態で、Inspector タブ内の AddComponent ボタンをクリックします。
  

  Add Component のプルダウンメニュから、
     Scripts > MOengine.Tools.Scripts.Collision > Collision Attribute
  を選択してください。
  

■ 床のコンポーネント属性の追加
  コンポーネントを組み込んだオブジェクトのうち、Plane1 に対して床のコンポーネント属性を追加します。
  まず、Hierarchy タブ内の Collision 内のうち、Plane1 を選択状態にします。
  

  この状態で、Inspector タブ内の Collision Attribute(Script) 枠内の Attribute 値を Floor に変更します。
  

■ 壁のコンポーネント属性の追加
  コンポーネントを組み込んだオブジェクトのうち、Quad 4~Quad 7 ならびに Cube 4 ~ Cube 7 に対して
  壁のコンポーネント属性を追加します。
  まず、Hierarchy タブ内の Collision 内のうち、Quad 4~Quad 7 ならびに Cube 4 ~ Cube 7 を選択状態にします。
  

  この状態で、Inspector タブ内の Collision Attribute(Script) 枠内の Attribute 値を Wall に変更します。
  


コリジョンデータを出力する

 ここまで編集したコリジョン情報を、一旦データとして出力していきます。

■ StageEditor を開く
  Unity のメニューから MoEngine > StageEditor をクリックします。
  

■ ステージデータの編集を開く
  StageEditor が開いたら、作成していた ステージID=1 のステージデータの[編集]ボタンをクリックします。
  

■ コリジョンデータを出力する
  StageDataEditor ウィンドウが開いたら、[コリジョンデータを出力] ボタンをクリックしてください。
  

  所定の場所(Master)にSimpleStage.cbinが作成され、
  以下のダイアログが表示されますので [OK] ボタンをクリックします。
  

■ StageDataEditor および StageEditor を閉じる
  コリジョンデータを出力し終えたら、StageDataEditor の右上の×ボタンをクリックして閉じます。
  

  同様に、StageEditor の右上の×ボタンをクリックして閉じます。
  


▲前のページへ
次のページへ▼