建築の設計

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

モジュール方式でステーションを構築したことで、コンテンツの更新をスムーズに行うことができ、個々のメッシュ、テクスチャ、パーツなどを更新するのに何時間もかけずに済みました。

Roblox パッケージは、Meshparts のパレットをまとめることで、このモジュラーデザインを実現しました。これにより、簡単に接続可能で、一緒に共有できるトリムシートセットや SurfaceAppearance ノードを持つことができました。これにより、初期のプレイテスト中にレイアウトやサイズの変更に適応でき、ステーションを充実させるプロセスが大幅に速くなりました。

建築の概観

フレキシブルなデザインから最終アートへ

最初は、ステーションに何が必要か、また50人のプレイヤーに対してどれくらいの大きさが必要かを完全には理解していませんでした。

それを理解するために、まず Parts を使用して環境を構築し、MayaやBlenderなどの外部DCCアプリケーションからロトンダ形状などのメッシュを持ち込みました。これらの単純な形状を使って、地図のスケール、部屋の配置、通路を調整し、最も楽しい配置を見つけることができました。ゲームやソーシャル体験のために、この初期の段階は最もダイナミックなものとなります。

ステーションのレイアウトを構築する際、探索を促すために最も重要なことは、ユーザーに目標を与えることでした。今回は、最も明白な目標はブラックホールをより近くで見ることです。次に、ブラックホールへの直行ルートを与えると退屈になることがわかりました。プレイヤーは簡単に出現地点から地図の終端まで移動できるからです。それで、プレイヤーがブラックホールに到達する前に他のものを見て回る必要があるように道を分割しました。

モジュール設計のおかげで、全体のデザインを破滅的にやり直さずに環境にそのような変更を加えることができました。ステーションの全体セクションを移動させてさまざまなゲームプレイのアイデアを試すことができました。最終的には、これらの同じモジュール部品をパッケージを使用して更新できるため、同じアセットの複数のバージョンを再構築する必要がなくなりました。

建築の例 1 建築の例 2 建築の例 3 建築の例 4

ケル-ニューマン DSR-14 のモジュール設計

宇宙ステーションでは、わずか数種類のモジュールパレットピースを使用しています。モジュールパレットピースは再利用可能なアセットであり、各壁を独自に作成する必要がなく、代わりにいくつかの小さな壁を組み合わせることができます。これにより、構築中のレイアウトでの柔軟性が生まれます。

私たちがモジュール設計を作成するのに役立ったいくつかのヒントを以下に示します。

  • 均一なグリッドサイズを決定する — ステーションでは、モジュールセットの大部分を作成するために16スタッドのグリッドサイズを決定しました。使用するグリッドサイズは任意ですが、プロジェクト全体やそのプロジェクトに取り組むすべてのアーティストで一貫性が必要です。プロジェクトの最初にグリッドサイズを決定することで、各ピースが隣接するピースと適切にフィットします。また、例えば壁セクションをドアセクションに交換するなど、簡単にピースを交換することができます。

  • すべてのユニットはスタッドとしてインポートされる — MayaやBlenderなどの他のDCCアプリケーションでメッシュを作成する際、Studioはメートル、センチメートル、フィート、インチを変換せず、受信するユニットをそのままスタッドに置き換えます。例えば、ユニットをメートルに設定すると、Studioは2メートルを2スタッドに変換します。選択したアプリケーションでのユニットスケールをRobloxのスタッドスケールとして扱うのが最善です。Robloxでの単一スタッドの最も近い実世界スケールは28センチメートルです。

  • ピースをシンプルに保つ — 必要だと思うすべてのピースを構築しようとしないでください。アイデアは、非常に多用途なピースをいくつか持っていることであり、特異なものをたくさん持たないことです。ピースが多ければ多いほど、各ピースの作成に時間がかかり、全体のメモリとパフォーマンスの予算に影響を及ぼします。絶対に必要な場合には、キットに別のピースを追加することができます。

  • パッケージを使用する — すべてのモジュールピースをパッケージに変換し、体験に配置する前に材料もパッケージに入れてください。これにより、すべてのインスタンスに簡単に更新をプッシュできます。パッケージについては、後ほど詳しく説明します。

以下のスクリーンショットは、モジュール設計を使用してステーションの部分を構築するために使ったさまざまな方法を示しています。

建築の例 5 建築の例 6 建築の例 7 建築の例 8

トリムシートの作成

1:1のテクスチャは未来の方向ですが、メモリの予算や制作にかかる時間においてコストがかかります。宇宙ステーションでは、90%の建築要素がいくつかの交換可能なトリムシートセットを使用しています。これは、垂直または水平方向に配置されたテクスチャーマップのセットです。シートの各行または列には独自の見た目があり、モデルをアンラッピングする際に選択できるさまざまな表面処理を提供します。すべて1枚の画像シートで行えます。

トリムシートを作成するためのいくつかのヒントは次のとおりです。

  • 必要なオブジェクトと材料のタイプのインベントリを作成する — トリムシートには、木材、金属、ゴムなど、材料の種類が大きく異なる可能性があります。最初のオブジェクトのモデルを作成する前に、トリムシートテンプレートを作成します。これは、他のすべてのトリムシートセットの出発点であり、モデルをアンラッピングするための迅速な出発点を提供します。これらのトリムシートは、後で説明する SurfaceAppearance ノード内に存在します。

  • 1つのシートにさまざまな表面処理を含める — これにより、メッシュをまとめておくことができ、複数のメッシュに分けることなく新しい処理を適用できます。これにより、オブジェクトと素材の描画呼び出しを減少させ、ランタイムパフォーマンスが向上します。

  • トリムシートテンプレートを作成する — テンプレートを使用することで、任意のマップセットを別のもので交換できます。例えば、きれいな金属セットを錆びた金属セットと交換できます。

以下は、ステーションのためにトリムシートを作成した方法です。

シートがどのように見えるべきかの粗いアウトラインを作成しました。

トリムシートの例

Photoshopで、シートの各トリムセクションがどのように見えるかのモックアップを作成しました。

トリムセクションの例

Substance を使用しましたが、最終マップを作成するのに適した任意のアプリケーションを使用できます。これは、Substance で生成された最終的なトリムシートマップのセットです。4つのマップはすべて、SurfaceAppearance ノード内で一緒に機能し、物理的に基づいたレンダリング(PBR)素材を生成します。

こちらは、Substance Designer 内のトリムシートの最終レンダリングです:

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

モジュールトリムシート

トリムシートのUVマッピングについて詳しく知りたい場合は、ウェブでそのトピックを検索してください。多くの素晴らしいチュートリアルがあります。

サーフェスアピアランスの適用

SurfaceAppearance を使用すると、 MeshParts の物理ベースレンダリングシステムに新しいテクスチャ入力を指定でき、メッシュの外観をColorMap、MetalnessMap、RoughnessMap、NormalMapなどの高度なグラフィックオプションで上書きできます。また、Robloxがメディアの反射に使用する新しいダイナミックキューブマップシステムを利用します。例えば、以下にSurfaceAppearanceを適用したメッシュと適用されていないメッシュのサイドバイサイド画像があります:

サーフェスアピアランスの例

サーフェスアピアランスを使用する際には、以下のヒントを考慮してください:

  • トリムマップに透明度のアルファ情報が含まれている場合は、AlphaModeをOverlayからTransparencyに変更してください。
  • サーフェスアピアランスはPartsでは機能しません。なぜなら、これらはマップを適用するのに必要なUV情報を持っていないからです。PartsはUV情報の代わりにワールドアライメント投影を使用します。MeshPartsは通常、Mayaや3ds Max、Blenderなどの別のアプリで作成され、UV展開情報を含んでいます。

SurfaceAppearance を適用するには:

  1. ExplorerMeshPart またはフォルダー名の末尾にある をクリックし、SurfaceAppearance を検索します。これを追加すると、既に適用されている可能性のあるBrickColor、Color、Material、およびTextureIDを上書きします。

  2. SurfaceAppearance ノードの名前を一意のものに変更し、検索を容易にするために _SA の接尾辞を追加します。この例では、Metal_Trim_A_SAを使用しました。

  3. トリムシートマップをインポートし、Asset ManagerウィンドウからIDをコピーし、Propertiesウィンドウの適切なスロットに貼り付けます。以下は、すべてのマップIDが挿入され、ドアに適用された Metal_Trim_A_SA ノードの様子です。

サーフェスアピアランスの例 2

パッケージで効率を高める

パッケージを使用することで、Robloxの体験全体でオブジェクトインスタンスを作成でき、パッケージに加えた更新はそのパッケージのすべてのインスタンスに公開されます。私たちはステーションに配置したほぼすべてのオブジェクトにパッケージを使用したので、調整が必要な場合に各配置を探し回る必要がありませんでした。たとえば、パッケージの壁パネルインスタンスは1,000を超え、パッケージを変更することで即座に更新を公開できました。

パッケージを使用する際のヒントは次のとおりです:

PackageLink にある自動更新機能をオンにします。これが有効になっていると、すべての変更がパッケージのすべての使用に適用され、すべて更新機能を使用する手間が省けます。

パッケージの例

SurfaceAppearance オブジェクトのためにパッケージを使用して「マテリアルライブラリ」を作成できます。これにより、SurfaceAppearance オブジェクトのビットマップを変更し、それを使用するすべてのオブジェクトに公開することができます。以下のスクリーンショットは、デモ全体で使用されたマスターマテリアルを示しています。マップを変更する必要があれば、マスターマテリアルを更新し、パッケージを再公開するだけで済みます。

パッケージの例 2
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。