UDN
Search public documentation:

UsingStaticMeshActorsJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > 静的メッシュ > StaticMeshActor (静的メッシュ アクタ) の使用
UE3 ホーム > レベルデザイナー > StaticMeshActor (静的メッシュ アクタ) の使用

StaticMeshActor (静的メッシュ アクタ) の使用


概要


静的メッシュは、「Unreal Engine 3」において、基本的なタイプでありレンダリング可能なジオメトリの 1 つです。このメッシュをワールド内に配置するためには、StaticMeshActor (静的メッシュ アクタ) が使用されます。このタイプのアクタは、1 個の StaticMesh (静的メッシュ) を表示し、プレイ中に 動かすことができず、改変することもできません。 (つまり、 静的 なのです)。これらのアクタを使用して、マップ内のワールド ジオメトリの大半が作成されます。

staticmeshactor.jpg

配置


StaticMeshActor は、標準的なアクタ配置方式によってマップに置かれます。すなわち、ビューポートの右クリック コンテクスト メニューを使用するか、 Content Browser (コンテンツ ブラウザ) からドラッグアンドドロップします。

コンテクスト メニュー

  1. Content Browser 内で、StaticMeshActor としてマップに追加する StaticMesh (静的メッシュ) を選択します。
    place_select.jpg
  2. メッシュを追加するビューポート内を右クリックし、コンテクスト メニューから Add StaticMesh: [MeshAssetPath] (静的メッシュを追加する [メッシュ アセットパス]) を選択します。位置は正確でなくてもかまいません。後でいつでも再配置、回転、スケーリングすることが可能です。
    place_context_add.jpg
  3. プロパティ ウインドウ に表示されているように、StaticMesh が StaticMeshActor としてマップに配置されました。
    place_complete.jpg

ドラッグアンドドロップ

  1. Content Browser 内で、StaticMeshActor としてマップに追加する StaticMesh を見つけます。
    place_select.jpg
  2. Content Browser 内でその StaticMesh を左クリックし、左マウスボタンを押下したままで、Content Browser から、メッシュを配置するビューポート内の位置まで、マウスをドラッグします。位置は正確でなくてもかまいません。後でいつでも再配置、回転、スケーリングすることが可能です。
    place_drag.jpg
  3. 左マウスボタンをリリースすることによって、 プロパティ ウインドウ に表示されているように、マップ内にメッシュを StaticMeshActor として配置します。
    place_complete.jpg

他のアクタへの / からの変換


StaticMeshActor は、ビューポートの右クリック コンテクスト メニューによって、StaticMesh を表示する特定の他タイプのアクタに変換することができます。また、逆にそのようなアクタから StaticMeshActor に変換することもできます。KActor または InterpActor としてマップに以前に配置したメッシュを、StaticMeshActor にしたい場合 (またはその逆の場合) に役立ちます。

StaticMeshActor への変換

  1. ビューポート内で、StaticMeshActor に変換するアクタを選択します。
    convert_select.jpg
  2. そのアクタ上で右クリックし、 Convert (変換) > Convert [CurrentActorType] to StaticMeshActor ([現在のアクタ タイプ] を静的メッシュ アクタに変換) を選択します。
    convert_context.jpg
  3. プロパティ ウインドウ に表示されているように、アクタが StaticMeshActor に変換されました。
    convert_complete.jpg

StaticMeshActor からの変換

StaticMeshActor を他のタイプのアクタに変換するプロセスは、上記で示した、StaticMeshActor への変換プロセスと同様です。 StaticMeshActor が変換できるタイプのアクタを、以下にリストしておきます。

マテリアルのオーバーライド


StaticMesh に適用されたマテリアル (複数も) は、アクタ単位にオーバーライドすることができます。こうすることによって、1 個の StaticMesh アセットを 1 個のマップで複数回使用することができるようになります。あるいは、ユニークな外見をもたせながらゲーム全体で使用することができるようになります。 Materials (マテリアル) プロパティは、StaticMeshActor の StaticMeshComponent (静的メッシュ コンポーネント) の Rendering (レンダリング) カテゴリに置かれています。この Materials プロパティは、 Static Mesh Editor (静的メッシュ エディタ) を通じて StaticMesh アセットに適用されているマテリアルに直接マッピングするマテリアルの配列です。マテリアルは、手動で配列に割り当てることができます。あるいは、Content Browser (コンテンツ ブラウザ) からドラッグアンドドロップすることによって、ビューポート内のメッシュに直接適用することもできます。

手動による割り当て

  1. ビューポート内で、新たなマテリアルを割り当てる StaticMeshActor を選択し、 F4 キーを押すことによって Property (プロパティ) ウインドウにあるプロパティを開きます。
    material_properties.jpg
  2. StaticMeshComponentRendering カテゴリ内で、 add_item_button.jpg ボタンをクリックすることによって、新たなアイテムを Materials 配列に追加します。StaticMesh に 2 個以上のスロットがある場合は、2 個以上のアイテムを追加することができます。これは、配列のアイテムが、StaticMesh のマテリアル スロットと一致するためです。
  3. マップにおいて StaticMeshActor に適用するマテリアルを Content Browser から選択します。
    material_select.jpg
  4. Materials 配列内にある対応するアイテムのための use_selected_button.jpg ボタンを押すことによって、マテリアルを割り当てます。これで、メッシュは、適用されたマテリアルで表示されるようになります。
    material_complete.jpg

ドラッグアンドドロップ

  1. マップにおいて StaticMeshActorに適用するマテリアルを Content Browser で見つけます。
    material_select.jpg
  2. Content Browser 内でマテリアルを左クリックし、左マウスボタンを押下したまま、Content Browser から、マテリアルを適用するビューポート内にある StaticMeshActor のセクションまで、マウスをドラッグします 。
    material_drag.jpg
  3. 左マウスボタンをリリースすることによって、マテリアルを適用します。これで、適用されたマテリアルをともなってメッシュが表示されるようになりました。また、Property ウインドウの Materials 配列も更新されています。
    material_complete.jpg

コリジョン


デフォルトで StaticMeshActor が使用する コリジョンタイプ は、 COLLIDE_BlockAll です。すなわち、ワールド内ですべてのアクタとトレースをブロックすることになります。StaticMeshActor は、通常ワールドジオメトリを配置するために使用されるため、このような動作が適しています。ただし、コリジョンの計算はコストが高くつきます。したがって、他のアクタとコリジョンする必要がない StaticMeshActor については、そのコリジョンを無効にしておくべきです。たとえば、小規模な装飾や背景の環境として使用される StaticMeshActor は、プレイヤーが届くことができないのであれば、実際にあらゆるものをブロックする必要はありません。

選択されている StaticMeshActor は、おそらくコリジョンの必要がない装飾的なメッシュです。
collision_deco.jpg

選択されている StaticMeshActor は、窓の外にあり、背景の環境を構成しています。プレイヤーは決してこれには届きません。
collision_unreachable.jpg

コリジョン タイプ

Collision Type (コリジョン タイプ) プロパティは、複数のコリジョン設定値を簡単にエクスポーズするための方式です。Unreal Editor 内でこの値を変更すると、低レベルのフラグ (例 : アクタおよびその CollisionComponent の CollideActorsBlockActorsBlockNonZeroExtentBlockZeroExtentBlockRigidBody ) が、Collision Type の説明に合うようにセットされます。

Collision Type 説明
COLLIDE_CustomDefault プログラマー設定のコリジョンです。これが選択されると、default properties (デフォルト プロパティ) 内でセットされているデフォルト値に、コリジョンが戻ります。
COLLIDE_NoCollision アタクは、他のアクタまたはトレースを、ブロックもタッチもしません。
COLLIDE_BlockAll アクタは、他のアクタとトレースをブロックします。
COLLIDE_BlockWeapons アクタは、ゼロ範囲のトレース (例 : 即射武器) だけをブロックします。
COLLIDE_TouchAll アクタは、他のアクタおよびトレースにタッチします。
COLLIDE_TouchWeapons アクタは、ゼロ範囲のトレース (例 : 即射武器) にのみタッチします。
COLLIDE_BlockAllButWeapons アクタは、他のアクタおよび非ゼロ範囲のトレースのみをブロックします。
COLLIDE_TouchAllButWeapons アタクは、他のアクタおよび非ゼロ範囲のトレースのみをタッチします。
COLLIDE_BlockWeaponsKickable COLLIDE_BlockWeapons と同じですが、アクタがプレイヤーの物理によってキックされることが可能になります。

コリジョンのプロパティ

Collide Complex
これが有効になっている場合は、アクタのコリジョン ジオメトリが無視され、コリジョンがポリゴン単位で実行されます。単純化されたコリジョン ジオメトリは、Unreal Editor 内、または、3D コンテンツ作成パッケージ内で生成されます。ポリゴン単位のコリジョンは、非ゼロ範囲のトレースに役立ち、弾丸が正確にコリジョンするようになります。ポリゴン単位のコリジョンは、アクタの移動のためには推奨されません。コストが高いためです。
Block Rigid Body
これが有効になっている場合は、PhysX を使用するアクタが、当該アクタとコリジョンします。
No Encroach Check
これが有効になっている場合は、当該アクタが動かされたときに encroachment (侵犯) チェックが無効になります。このプロパティを有効化することによって、ゲームのスピードは上がりますが、アクタがトリガーにタッチしたり、プレイヤーを押したり、ボリュームに出入りすることはできなくなります。
Path Colliding
これが有効になっている場合は、Unreal Editor でパス作成中に、当該アクタがパスをブロックすることができます。
Collision Component
当該アクタのコリジョン計算のために使用されるコンポーネントへの参照です。

距離によるカリング


StaticMeshActor のビジビリティは、カメラからの距離に基づいて制御することができます。その際、 StaticMeshComponent ( Rendering カテゴリの下に位置している) の MinDrawDistance (最小描画距離) および MaxDrawDistance (最大描画距離) プロパティが使用されます。これらのプロパティを使用することによって、アクタの静的メッシュがレンダリングされる、カメラからの最小距離と最大距離を指定することができます。

distance_cull.jpg

メッシュがレンダリングされる距離を制御する機能は、単に、プレイヤーが離れすぎているために見ることができない (上図で示されているように) 場合に、メッシュを非表示にするために使用することができます。あるいは、複数の高解像度メッシュを複数の低解像度プロキシ (または、複数の高解像度メッシュの代わりとなる単一のプロキシ) にスワップアウトするために使用することもできます。その場合、低解像度メッシュ (複数も) の MinDrawDistance が高解像度メッシュ (複数も) と同じになる場所に、複数の StaticMeshActor を配置します。

distance_swap.jpg

もちろん、StaticMesh に固有の LOD システムを使用しても、上記と同じ機能を実行することはできます。しかし、上記方法をとると、レベルデザイナーが設定を扱うことができるようになります。これは、 メッシュ単純化ツール を使用することによって、Unreal Editor で既存メッシュの低解像度バージョンを直接作成することができるためです。また、先に述べたように、複数の高解像度メッシュは、単一の低解像度プロキシにスワップアウトすることができます。これによって、ポリゴン数だけではなく、描画コールの数も減らすことができます。これと同じコンセプトが、 Massive LOD システムの基礎となっています。

静的メッシュと他のジオメトリのビジビリティを「Unreal Engine 3」で制御する方法の詳細については、 ビジビリティのカリング のページを参照してください。