「Collab Viewer」テンプレートには、すぐに作業を開始できるようにプリセット コンテンツが付属しています。詳細な手順については、「クイックスタート ガイド」を参照してください。ただし、共同レビュー環境に慣れたら、その環境に自分独自のコンテンツを取り込むことをお勧めします。
このページでは、最も一般的ないくつかの関連タスクの実行方法について説明します。
- 独自の 3D モデルをテンプレートに取り込み、ビルトインのナビゲーション モードに対応できるように設定する。「独自の 3D モデルを使用する」を参照してください。
- 「Collab Viewer」テンプレートに組み込まれているインタラクション ツールを使用して、コンテンツの動作方法を制御する。「トランスフォームおよび XRay の挙動を制御する」を参照してください。
- デフォルトのプリセット コンテンツが含まれるレベルとは異なるレベルで開始するように「Collab Viewer」テンプレートを変更する。「開始レベルを変更する」を参照してください。
- ランタイム時に独自の Datasmith コンテンツをロードする。「ランタイム時に独自の Datasmith コンテンツをロードする」を参照してください。
独自の 3D モデルを使用する
「Collab Viewer」テンプレートには、すぐに作業を開始できるようにプリセット コンテンツが付属しています。ただし、同じ共同表示環境で自分独自のモデルを操作できるようにするには、独自のモデルに切り替える必要があります。
このプロセスで念頭に置く必要のある最重要事項は、プレイヤーが歩いたり、テレポートしたりできるのは、コリジョン メッシュやナビ メッシュを含むサーフェスに対してのみという点です。プレイヤーが探索できるようにしたい各フロアまたはサーフェスに、コリジョン ボリュームとこのボリュームに関連付けられたナビ メッシュがあることを確認する必要があります。
ステップ
Collab Viewer テンプレートのデフォルトのレベル内で独自のコンテンツを機能させるには、次のような考え方の手順を実行する必要があります。
- レベルから 3D モデルやライトなどの既存のコンテンツを削除して、独自のコンテンツを追加します。
建物、ギア アセンブリ、木などのサンプル アセットは、 SampleLevel という名前のサブレベルにまとめられています。
レベルを一から開始するには、この既存のサブレベルを削除して、自分のコンテンツをメインのパーシスタント レベル (または作成する新しいサブレベル) に配置するだけです。天球、ライトなど、サンプル シーンのシーン要素の一部を維持したい場合は、それらのアイテムをメインのパーシスタント レベルに移動できます。また、 [World Outliner (アウトライナ)] で「Building」、「Gears」、および「Trees」フォルダなど、不要になったアイテムを選択して削除することもできます。 - コンテンツを配置して、パッケージ化されたアプリケーションで表示させたいとおりに、そのコンテンツのビジュアルを設定します。
- プレイヤーが歩けたり、テレポートしたりできるようにしたい各サーフェスに、歩行やテレポートができるように設定されたコリジョン メッシュがあることを確認します。
コンテンツのインポート方法によっては、ジオメトリのモデリングに使用する 3D デザイン アプリケーションでこれを実行できる場合があります。その他の場合、これを実行するためには、スタティック メッシュ エディタでスタティック メッシュを開き、 [Collision (コリジョン)] メニューのツールを使用します。コリジョンの設定を自動化する場合は、「スタティック メッシュによるコリジョンのセットアップ」または「ブループリントおよび Python でのスタティック メッシュによるコリジョンのセットアップ」も参照してください。
ブロッキング ボリューム を使用して、非表示のボックス型のコリジョン ボリュームをレベルに追加する方法もあります。これは、スタティック メッシュを変更する必要なく、レベルでコリジョンを機能させることができる簡単な方法です。ただし、このようなボリュームはスタティック メッシュにアタッチされていないため、レベルでジオメトリを移動させる場合は、手動で移動する必要があります。
- レベルに 1 つ以上の Player Start アクタがあることを確認します。Player Start アクタを追加する必要がある場合は、[Place Actors] パネルの [Basic (基本)] タブから追加の Player Start アクタを [Viewport (ビューポート)] にドラッグできます。
新しいプレイヤーがセッションに参加すると、そのプレイヤーはランダムに選択された Player Start アクタの位置から開始します。新しいプレイヤーが問題なく開始するためには常に、レベルに 1 つ以上の Player Start アクタが必要です。プレイヤーが歩行モードに切り替えても、サーフェスから落ちないように、歩行可能なサーフェスのすぐ上にアクタを配置するとよいでしょう。
このようなアクタのいくつかを同じ場所の周りに追加することをお勧めします。これで、新しいプレイヤーがセッションに参加したときに、他のプレイヤーの正確な場所と重なってしまう可能性が低下します。
- プレイヤーのテレポート先にしたい各サーフェスに、ナビ メッシュがあることを確認します。これには、Nav Mesh Bounds Volume (ナビメッシュ バウンズ) にナビ メッシュを追加します。デフォルトのパーシスタント レベルには、サイズを変更して 3D モデルに対応できるボリュームが既にあります。または、ユーザーが独自のボリュームを作成することもできます。このようなボリュームはレベルに必要なだけいくつでも配置できます。
ナビ メッシュを作成するには、次の手順を実行します。- レベルに Nav Mesh Bounds Volume (ナビメッシュ バウンズ) が配置されていない場合は、[Place Actors] パネルの [Volumes (ボリューム)] タブからこのボリュームを [Viewport (ビューポート)] にドラッグして追加します。
- [Viewport] または [World Outliner (アウトライナ)] で [Nav Mesh Bounds Volume] を選択して、ビューポートでそのトランスフォーム ギズモをカバーしたい領域のほぼ中心に移動します。
- [Details (詳細)] パネルで、 [Brush Settings (ブラシ設定)] を使用して、ボリュームのサイズと形状を変更します。
- ツールバーの [Build (ビルド)] アイコンをクリックして、レベルの事前計算データを再ビルドするか、 [Build (ビルド)] > [Navigation (ナビゲーション)] > [Build Paths (パスをビルド)] を選択してナビゲーション データのみを再ビルドします。
- 「P」キーを押して、生成されたナビ メッシュを表示し、ナビ メッシュが期待する領域をカバーしていることを確認します。ナビ メッシュは、ボリュームと交差するコリジョン メッシュのやや上に重なっている緑色のサーフェスとしてレンダリングされます。
- レベルに Nav Mesh Bounds Volume (ナビメッシュ バウンズ) が配置されていない場合は、[Place Actors] パネルの [Volumes (ボリューム)] タブからこのボリュームを [Viewport (ビューポート)] にドラッグして追加します。
- 必要に応じて、ライティングをビルドします。
- 「クイック スタートガイド」ページの手順に従って、プロジェクトを再パッケージ化して再配布します。
最終結果
上記の手順をすべて実行すると、複数のユーザーが単一のデザイン レビュー セッションに接続できるようになり、レベルに追加したカスタム コンテンツを全員で確認できます。
トランスフォームおよび XRay の挙動を制御する
コンテンツの設定方法により、トランスフォームと Xray (シースルー) のインタラクションのランタイム時の動作に影響を与えることができます。
-
各アクタの [Mobility (可動性)] 設定では、ランタイム時にトランスフォーム インタラクションを使用して該当オブジェクトを移動できるかどうかを決定します。ランタイム時にオブジェクトを移動できるようにする場合は、 [Mobility] を [Movable (可動)] に設定します。オブジェクトをハイライトして選択できるようにしたいものの、空間でオブジェクトを移動できないようにする場合は、 [Mobility] を [Static (スタティック)] に設定します。
-
[World Outliner (アウトライナ)] にある親アクタと子アクタの階層は、トランスフォーム インタラクションと Xray (シースルー) インタラクションの両方に影響を与えます。
-
トランスフォーム インタラクションを使用してランタイム時にオブジェクトを移動すると、オブジェクトのすべての子は親とともに自動的に移動し、親からのその時点のオフセットが維持されます。
たとえば、この場合、トランスミッションのすべてのパーツが、大きい平らな基礎アクタである Building_Parent の子になります。
そのため、ランタイム時に基礎アクタを動かすと、子アクタも移動します。ただし、それぞれの子アクタを個別に移動することもできます。この次に親を移動すると、子は連動して新しいオフセットが維持されます。
子アクタを元の位置にリセットすると、親アクタからの元のオフセットにリセットされますが、ワールド空間での元の位置 (回転状態) ではありません。親アクタを元の位置にリセットすると、すべての子が移動し、親からのその時点のオフセットが維持されます。
-
Xray Isolate インタラクション モードを使用して、シーンの 1 つのオブジェクトを選択すると、選択したオブジェクトと同じ階層にある他のすべてのオブジェクトが自動的に非表示になります。
たとえば、デフォルトのシーン コンテンツの場合、メインの建物を構成するすべてのオブジェクトは、階層の単一の最上位の親の下にあります。そのため、Xray Isolate を使用して建物の一部を選択すると、建物の他のすべての部分、つまり、同じ最上位の Building_Parent アイテムを親とするすべてのアクタが非表示になります。
木と外部テレインは、 Building_Parent 階層下でないため、影響を受けません。
-
-
Xray またはトランスフォーム コマンドのどちらかを使用してアクタを操作できるようにしたい場合、 [Simulate Physics (物理シミュレーション)] 設定がオフである必要があります。これは、 [Physics (物理)] セクションの下にある [Details (詳細)] パネルにあります。
開始レベルを変更する
「Collab Viewer」テンプレートのメイン メニューは、ユーザーがメイン メニューを完了すると、 CollaborativeViewer_P レベルをロードするように設定されています。ただし、自分のコンテンツを保持するために新しいレベルを作成して、メイン メニューでこのレベルではなく独自のレベルを開始したい場合があります。この場合は、ユーザーがセッションに参加したときにレベルが開くように、メイン メニューでロジックを変更する必要があります。
ステップ
Collab Viewer の開始レベルを設定するには、次の手順を実行します。
- コンテンツ ブラウザ の CollaborativeViewer/UMG/MainMenu フォルダで、Widget_MainMenu アセットを検索します。
- アセットをダブルクリックして開き、 [Graph (グラフ)] をクリックしてウィジェット ブループリント ビューを開きます。
- [Commit user selections (ユーザー選択の確定)] というラベルのグループを見つけます。このグループ内で、 [Begin hosting a session (セッションのホスティングを開始)] という名前のサブグループを検索します。
- OpenLevel ノードの Level Name 入力を、ユーザーがセッションに接続すると開始するレベルの名前に変更します。
- ウィジェットを コンパイル して 保存 し、プロジェクトを再パッケージ化します。
最終結果
次回プロジェクトを開始して、メイン メニューを完了すると、上記の手順で設定したカスタム レベル内から開始されます。
ランタイム時に独自の Datasmith コンテンツをロードする
この機能は 実験段階 と見なされています。現在、この機能はシングルプレイヤーのみ機能し、マルチプレイヤーでは使用できません。
この機能により、ランタイム時に Datasmith ファイルをロードできるようになりました。現時点では、.udatasmith ファイル形式のみに制限されています。
- [追加 (+)] ボタンをクリックして新しい [Destination (インポート先)] スロットに新しいファイルをインポートします。
- 既存のインポート済みアクタを削除するには、まず該当するインポート先を選択し、 ゴミ箱 アイコンを押します。
- [Source (インポート元)] ボタンを使用すると、インポートするファイル形式を選択するためのエクスプローラ ウィンドウが開きます。
- 位置ラインを使用すると、ユーザーはインポート済み階層のルート位置を変更できます。