モジュラー方法でステーションを構築することで、コンテンツの更新をスムーズに更新し、個々のメッシュ、テクスチャ、パーツなどを更新するのに何時間も費やさないようにするための鍵となりました。
Roblox パッケージは、簡単にスナップされ、トリミングシートセット、および ノードを共有できる のパレットをパッケージ化することで、このモジュール型デザインを達シェアできるようにします。これにより、早期のプレイテスト中のレイアウトとサイズの変更に適応し、ステーションの記入プロセスが大幅に短縮されました。

最終アートへの柔軟なデザイン
最初に始めたとき、私たちはステーションで何をしたいのか、または 50 人のプレイヤーにとってどれほど大きなものが必要かを完全に理解していませんでした。
それを見つけるために、まず Parts を使用して環境を構築し、外部の DCC アプリケーション (Maya または Blender など) から回転形状のようなメッシュを持ってきました。これらの簡単な形状で、マップのスケール、ルームの配置、および道を調整して、最も楽しい配置を見つけました。ゲームまたはソーシャルエクスペリエンスの場合、この初期段階は最も動的である傾向があります。
ステーションのレイアウトを構築するとき、探検をドライブするのに最も重要なことは、ユーザーに目標を与えることでした。この場合、最も明白な目標は、ブラックホールにより近い見方を得ることです。次に、彼らに直接ブラックホールへの道を提供すると退屈になるだろう、と私たちは考えました。プレイヤーはスポーンからマップの端まで歩くだけでよいからです。我々は道を壊したので、プレイヤーはまず周りを見て他のものを見ることなく、ブラックホールに到達できなかった。
モジュラーデザインにより、全体のデザインを大規模に変更することなく、環境にそのような変更を加えることができました。ステーション全体を移動して、異なるゲームプレイアイデアで遊ぶことができます。最終的には、これらの同じモジュラル部品はパッケージを使用して更新され、同じアセットの複数のバージョンを再構築する必要がなくなりました。




Kerr-Newman DSR-14 のモジュラーデザイン
宇宙ステーションは、モジュラーパレットの数個だけを使用します。モジュラーパレットピースは再利用可能なアセットであり、それゆえ、各壁を独自に作成する必要はありませんが、代わりに複数の小さな壁を組み合わせることができます。これにより、作建築中のレイアウトの柔軟性が保たれます。
モジュラーデザインを作成するのに役立ったいくつかのヒントは次のとおりです:
統一グリッドサイズに決定 — ステーションの場合、モジュラーセットの大部分を作成するために、16スタッドグリッドサイズに決定しました。使用するグリッドサイズは任意ですが、プロジェクト全体およびそのプロジェクトで作業するすべてのアーティストに一貫性がある必要があります。プロジェクトの開始時にグリッドサイズを設定すると、その隣の部品にぴったりフィットするように各部品が調整されます。また、例えば壁セクションをドアセクションに交換するなど、簡単に部品を交換できます。
すべてのユニットはスタッドとしてインポートされます — Maya や Blender などの他の DCC アプリケーションでメッシュを作成するとき、スタジオはメートル、センチメートル、フィート、またはインチを変換しません — 単に受け取ったユニットをスタッドの同じユニットに置き換えます。たとえば、ユニットをメートルに設定すると、Studio は 2 メートルを 2 個のスタッドに変換します。好みのアプリケーションでユニットスケールを Roblox(ロブロックス)blox のスタッドスケールとして扱うのが最善です。Roblox で単一のスタッドの最も近い現実世界のスケールは 28 センチメートルです。
ピースをシンプルに保つ — 必要と思うすべてのピースを構築しようとしないでください。アイデアは、いくつかの非常に多機能な部品を持ち、1つのオフに多くのものを持たないことです。ピースが多いほど、それぞれのピースを作成するのに時間がかかり、全体のメモリとパフォーマンス予算に影響することが多くなります。絶対に必要な場合は、キットに別の部品を常に追加できます。
パッケージを使用する — モジュールの各部品をすべてパッケージに変換し、エクスペリエンスに満たす前にパッケージに材料を入れます。これにより、すべてのインスタンスに簡単にアップデートをプッシュできます。パッケージには後で少し潜り込みます。
次のスクリーンショットでは、モジュラーデザインを使用してステーションの一部を構築する方法を示します。




トリムシートを作成する
1:1 テクスチャは未来の方法ですが、メモリ予算と作成時間に関して高コストになります。宇宙ステーションの場合、アーキテクチャ要素の 90% が、縦または横向きの形式で配置されるテクスチャマップのセットを数セット使用しています。シートの各行または列には、モデルを展開するときに選択できるさまざまな表面処理があるユニークな外観があり、1つの画像シートを使用しています。
トリムシートを作るヒントがここにあります:
必要なオブジェクトと素材の種類のインベントリから始める — トリムシートには、木材、金属、ゴムなどの素材の大きな変化が含まれる可能性があります。最初のオブジェクトをモデル化開始する前に、トリムシートテンプレートを作成します。これは、他のすべてのトリムシートセットの開始点であり、モデルを展開するための迅速な開始点を提供します。これらのトリムシートは、後で取り上げる SurfaceAppearance ノード内に住んでいます。
1枚のシートにさまざまな表面処理を含む — これにより、メッシュを複数のメッシュに分割する必要がなくなり、新しい処理を適用できます。これにより、オブジェクトとマテリアルのドローコールが減少し、実行時パフォーマンスが向上します。
トリムシートテンプレートを作成する — テンプレートは、マップセットを別のものに交換できるようにします。たとえば、錆びたメタルセットとクリーンなメタルセッ設定するを交換することができます。
これが、ステーションのためにトリムシートを作成した方法です:
シートがどのように見えるべきかの粗略な概要を作成しました:

Photoshop では、シートの各トリムセクションの外観について素早くアイデアを得るためのモックアップを作成しました。

私たちはサブスタンスを使用しましたが、最終マップを作成するために適したアプリケーションを使用できます。これは、サブスタンスで生成されたトリムシートマップの最終セットです。すべての 4 つのマップは、SurfaceAppearance ノード内で協力して、物理ベースのレンダリング (PBR) 素材を生成します。




ここに、サブスタンスデザイナー内のトリムシートの最終レンダリングがいくつかあります:


そして、同じトリムシートが広範囲のオブジェクトで使用されている例は次のとおりです:

トリムシートUVマッピングについてさらに学びたい場合は、ウェブ上のトピックを検索してください; そこには多くの優れたチュートリアルがあります。
表面の外観を適用する
SurfaceAppearance では、MeshParts に新しいテクスチャ入力を指定し、カラーマップ、メタリックマップ、粗さマップ、およびノーマルマップを含むメッシュの外観をオーバーライドできます。また、Roblox が素材の反射に使用する新しい動的キューブマップシステムを使用します。たとえば、ここには、メッシュにサーフェス表示が適用され、その隣にメッシュがない状態の横向き画像があります:

表面の外外見を使用するときは、次のヒントを覚えておいてください:
- トリムマップに透明性のためのアルファ情報が含まれている場合、オーバーレイから透明性にアルファモードを変更します。
- 表面の外観は、パーツにUV情報がないため、マップを適用できません。パーツは、UV情報の代わりに世界標準のプロジェクションを使用します。メッシュパーツは、通常 Maya、3ds Max または Blender などの別のアプリで作成され、UV アンラップ情報を含んでいます。
を適用するには SurfaceAppearance :
エクスプローラーの MeshPart またはフォルダ名の最後にクリックし、SurfaceAppearance を検索します。1つ追加すると、既に適用したブリックカラー、カラー、材料、およびテクスチャIDをオーバーライドします。
SurfaceAppearance ノードをユニークなものに名前変更し、検索しやすくするために _SA の後缀を追加します。この例では、Metal_Trim_A_SA を使用しました。
トリムシートマップをインポートし、 アセットマネージャー パネルからIDをコピーし、プロパティパネルの適切なスロットに貼り付けます。ここでは、Metal_Trim_A_SA ノードがドアに挿入され、適用されたすべてのマップIDを見る方法です。

パッケージで効率を向上させる
パッケージを使用すると、Roblox の経験全体でオブジェクトインスタンスを作成でき、パッケージに行った更新が、そのパッケージのすべてのインスタンスに公開されます。ステーションに入れたほぼすべてのオブジェクトにパッケージを使用したので、調整が必要な場合はそれぞれの配置を見つける必要はありませんでした。たとえば、パッケージの 1,000 以上の壁パネルインスタンスを使用し、パッケージを変更することで、すぐにパッケージの更新を公開できました。
パッケージを使用するときは、次のヒントに従います:
PackageLink で自動更新機能を有効にします。これが有効になっていると、すべての変更はパッケージのすべての使用に適用され、「すべて更新」機能を使用する必要がなくなります。

パッケージを使用して SurfaceAppearance オブジェクトの "マテリアルライブラリ" を作成できます。これにより、SurfaceAppearance オブジェクトのビットマップを変更し、それを使用するすべてのオブジェクトに公開できます。次のスクリーンショットは、デモ中に使用されたマスター素材を示しています。マップを変更する必要があった場合、マスター素材を更新してパッケージを再公開するだけでよかった。
