この記事は、英語 wiki (LAST EDITED BY Pavel Efimov, 2024年6月20日)を基に加筆・修正したものです
この記事は公式記事を翻訳したもので、便宜的な補助資料として作成されました。最新の情報は原文を参照し、原文と訳文に矛盾があれば原文に従ってください。訳文の誤りや矛盾により生じるトラブルや損失について一切の責任を負いません。
翻訳: @ichihito_ohi、2024年6月27日
このガイドは、 Phantom Brigade Mod SDK をインストール済みの方を想定しています。モデルやテクスチャーはお好みのソフトウェアで作成していただいて構いませんが、本チュートリアルの最後で言及する ItemVisual コンポーネントを用いたプレハブのセットアップ、または mod への自作 3D アセット取り込みには、 Unity プロジェクトのインポートを完了する必要があります。 Unity でアセットのセットアップが完了したら、 Getting Started SDK ウィンドウの Custom Models チュートリアルに従って mod 内にエクスポートしてください。
注意: このガイドには、 3D モデリング・ソフトウェアと Unity エディターの知識が必要です。
メックとは異なり、武器には事前定義された構造というものがありません。武器設計は主にふたつの制約を受けます:固定されたグリップ位置と、全体の寸法(メック装甲への過度なめり込みを避けるため)。
武器のメインおよびフロント・グリップの固定位置。オレンジ色で強調表示されている
武器のグリップがおおよそ同じ位置を保つ一方で、それ以外のすべてはより多様に変化していることに注目
超重量級武器にも同じ制約が適用されますが、そのグリップ位置は通常武器と異なります。
超重量級武器のメインおよびフロント・グリップの固定位置。オレンジ色で強調表示されている
超重量級武器も同様に、多様な形状が可能だが、グリップは同じ位置を保つ
最大寸法の制約は一切強制されません。(超巨大な手持ちカノン砲を作りたい等の無茶なケースでの参考まで。)しかし、グリップの位置と向きはメックのアニメーションにより決定されており、変更はできません。
【補足】オリジナル武器アセットのほぼすべては、主に既存コンテンツからより多くのバリエーションを作成するため、分割されたモジュールから構築されています。これにより、1、2個のモジュールを入れ替えるだけで異なる見た目の武器を作成することが可能になりました。
ひとつのモジュール・セットから構築された多様な武器
ゲーム・オリジナルの典型的な武器モデル・セットには、以下が含まれています:
異なる武器で色分けされた武器モジュール
注意: モジュール制は必須ではなく、どの武器も単一ピースとしておくことも、必要なだけ細かくモジュール分割することも自由です。
グリップ参照位置と、全体の推奨最大寸法のためのサンプルとして FBX ファイルを以下に示します。
![]()
¶ このファイルは、新武器作成の取っ掛かりとしてご利用ください |
![]()
¶ このファイルは、新しい重量級武器の作成の取っ掛かりとしてご利用ください |
![]()
¶ これらのファイルは、推奨最大寸法の参考として利用できます |
提供する FBX ファイルには既に正しいピボット中心点が設定されているため、参考としてご利用ください。
注意: 自作武器を複数モジュールに分割する場合は、各モジュールのピボット原点位置が同じである必要があります。
すべての武器は、メイン・グリップ上の同じ位置にピボット原点を持つ必要があります。これは、その武器を構成するのが単一のピースか、複数のモジュールかは関係ありません。
上記で触れた内容はすべて近接武器にも適用されます。近接武器は、ピボットおよびグリップの位置が事前定義されており、必要なら複数モジュールから構築することも可能です。
近接武器のピボット原点位置および、とある近接武器を複数モジュールに分割した場合の色分け例
グリップの参照位置のサンプルとして FBX ファイルを以下に示します。
wpn_melee-grip-reference.fbx
(Link) このファイルは、新しい近接武器の作成の取っ掛かりとしてご利用ください
近接武器と同様に、上記の武器セクションで触れた内容はすべてシールドにも適用されます。シールドは、ピボットおよびグリップの位置が事前定義されており、必要なら複数モジュールから構築することも可能です。
シールドのピボット原点位置およびふたつの例:(1)単一メッシュのピースを用いたシールド、(2)複数モジュールから組み立てたシールド
シールドには特定のグリップ形状が必要であり、アニメーション上の制約から位置を変更することはできません。しかし、それ以外はすべて自由に設計可能です。
ピボットおよびグリップの参照位置のためのサンプルとして FBX ファイルを以下に示します。
wpn_shield-grip-reference.fbx
(Link) このファイルは、新しいシールドの作成の取っ掛かりとしてご利用ください
大半の武器と異なり、バックパックには様々な機能があり、取り付け位置がメックの手ではありません。
オリジナルのバックパックはすべてメックのポッド開口部に取り付けられていますが、内情としては単にメック胴体へ取り付けられているだけなので、胴体部品に対してお好きな位置にアイテムを配置して構いません。
多様な胴体装甲形状に対してバックパックの形状を視覚的にマッチングさせることが主な課題になるでしょう。(そもそもそれがあなたにとって重要なら、ですが。)それが、オリジナルのアセットでメック胴体のポッド開口部か選ばれた理由であり、すべての胴体部品および装甲セットを通じてあまり変化しない場所のひとつだったためです。
バックパックのピボット中心点の位置、および単一メッシュのピースを用いたバックパックの例(オリジナルのバックパックはすべてこのように構築されています)
既存のポッド開口部アタッチメントを自作に取り入れたい場合は、代替のバックパック・ハーネスおよび適切なピボット位置が設定済みの FBX ファイルがあります。(お望みであればハーネスのデザインを変更しても構いません!)
backpack_harness-proxy.fbx
(Link) このファイルは、パイロット・ポッド空洞開口部に取り付ける新たなバックパック作成の取っ掛かりとしてご利用ください
武器やアイテムにはそれぞれ、1から4つの特定の頂点色が割り当てられています。これらは、ゲーム内で塗装プリセットに含まれる特定の色で武器表面を塗るために必要です。
頂点色と、塗装色との対応の様子 (注意:黒はゲーム内でカスタマイズ不能)
注意: 武器上で色付けが必要ない特定の部分に黒色 - 背景色を使用することで、色付きの領域との視覚的なコントラストを高めることが可能です。
デカールは、実際の形状を伴わずに高精細なディテールを追加することができ、武器上部のステッカーのように貼り付けます。小さなリベットやパネル、ハッチ、サインはすべてデカールが利用されています。
デカール適用の手順例
ゲーム中で用いられているデカール・セットは2つあります: decal_set_hardsurface_01.zip
(Link) および decal_set_organic_01.zip
(Link)
両デカール・セットのレイアウト
Hardsurface セットは最も一般的に用いられているもので、当初は両セットの中で一番汎用的になるようデザインされました。 Organic セットは、より滑らかで丸い形状の武器に利用できます。
ゲーム中のオリジナル・アセットでは、これらふたつのデカールをひとつの武器に混在することはありませんでしたが、実際には問題ありません!
デカールの、 3D ソフトウェア上での見え方と、ゲーム内でのレンダリング結果
注意: 武器表面とデカールとの間で Z ファイティングが起きないように、デカールはすべて武器表面から約 1 mm 離してください
注意: デカールに頂点色を割り当てる必要はありません。デカール・メッシュには頂点色マップが存在する必要はありますが、これを調整または変更する必要はありません。
注意: Hardsurface デカール・セットには細長い継ぎ目デカールがあります - これはボスの胴体部品にのみ使用されています。武器はすべてパネルの継ぎ目をテクスチャーで表現していますが、ボスはスケールが大きいため、デカール・ベースのアプローチが必要でした。(テクスチャーでボスの継ぎ目のようなスケールが小さいディテールを表現するには、テクスチャーの解像度が不十分です。)しかし、お好みで武器やアイテムに継ぎ目デカールを使用しても構いません。
ゲーム・オリジナルの武器は多数のモジュール・ピースに分割されていますが、これらはすべて(最適化のため)たった1つか2つのテクスチャー・セットを共有しています。それぞれのテクスチャー・セットには通常、アルベド・マップ・テクスチャー、法線マップ・テクスチャー、 MSEO マップ・テクスチャー(詳細は後述)で構成されています。必要なだけ多くのテクスチャー・セットを用いて構いません。武器に含まれるメッシュ・ピースの数は、使用したいテクスチャー・セットの数とは関係ありません。
テクスチャーを共有する武器のセットと、テクスチャーの解像度の例
注意: 理想的なゲーム内でのテクセル密度は 200 から 300 pixel / m² です。 200 pixel / m² を下回るのはお勧めしません。
オリジナルのアセットではすべて、ひとつの武器やアイテムに対して複数のテクスチャーを使用しています。完全な状態の武器やアイテムのマテリアルには、アルベド・マップ、法線マップ、 MSEO (Metalness、 Smoothness、 Emission、 Occlusion)マップが必要です。各テクスチャーの詳細は以下のとおりです。
アルベド・マップ は武器やアイテムに使用されていますが、従来 PBR パイプラインで用いられているアルベド・マップとは異なるものです。これはグレースケールのマップで、 RGB (128,128,128) のグレーが平らな表面の基準値として扱われます。それより暗い部分は、継ぎ目、空洞、汚れ、影として扱われ、明るい部分は通常、エッジか傷として扱われます。
アルベド・マップは、既定では RGB チャンネルのみ使用します。(単一チャンネルではなく、 RGB 3チャンネルを残している理由は下の注記で説明します。)
武器のアルベド・マップ・テクスチャーの例
ゲーム内の「オーバーレイ」ブレンド・モードを用いてテクスチャーの上に塗装色を適用するため、そして影とハイライトを保持するため、グレースケールのアルベド・テクスチャーを使用しています。(実際のブレンドはこれよりもっと複雑ですが、最も重要な部分がオーバーレイ・ブレンドです。)
Unity 内でのアルベド・マップ・テクスチャー設定。 sRGB が無効化されていることに注意
注意: アルベド・マップに色要素を導入することも可能です。色要素を機能させるためには、テクスチャーにアルファ・チャンネルを追加する必要があります。色要素を黒でマークし、それ以外を白でマスクすると、その色要素には塗装色が適用されなくなります。当然この方法なら、必要に応じて部品全体の塗装色を上書きすることも可能です。
RGB チャンネル + アルファ・チャンネル
法線マップ は、表面の微細なディテールや継ぎ目の空洞、面取りされたエッジを少ないポリゴン数の形状に追加する標準的な目的を果たすために使われます。ここでは OpenGL 法線マップのフォーマットを用います。
武器の法線マップ・テクスチャーの例
Unity 内での法線マップ・テクスチャー設定
MSEO マップ は、 PBR でマテリアルを正しく表示できるよう、複数のチャンネルに表面プロパティを統合したテクスチャーです。
上述の通り、このテクスチャーには、metalness、 smoothness、 emission、 occlusion の情報が含まれています:
武器のMSEO マップ・テクスチャー例
Unity 内での MSEO マップ・テクスチャー設定。 sRGB が無効化されていることに注意
オリジナルの武器やアイテムのアセットにはすべて、武器/アイテム表面用の 'surface' メッシュとデカール用の 'decals' メッシュが別個に含まれており、武器/アイテムの名前が付いた空のトランスフォーム(transform)配下にネストされています。これら surface と decals メッシュは共に単一の FBX ファイルにエクスポートされます。武器/アイテム・モジュールごとのシーン・ヒエラルキー(scene hierarchy)と、それが FBX ファイルに変換されるとどうなるか、いくつかの例を以下に示します。
様々な武器/アイテムのシーン・ヒエラルキーと、対応する FBX ファイル
命名に関する特別な要件はありませんが、通常、すべての武器には wpn_
という接頭辞が付き、バックパックは backpack_
で始まります。これらの命名規則を利用しても良いですし、変えても構いません。アセット自動化スクリプトを使用するつもりがあるなら、命名規則を確立しておくと役に立つかもしれません。
注意: 上述のシーン・ヒエラルキーが、エクスポート用にアセットを構成する唯一の方法という訳ではありません。見た目に厳密な要件は無く、主に利便性と一貫性に基づいて提案しているヒエラルキーというだけです。アセット・シーン・ヒエラルキーが取り得る以下のバリエーションをご確認ください。
有効な、エクスポート前の武器用シーン・ヒエラルキー (左: surface と decal メッシュが共に、空のトランスフォーム配下にネストされている。中: surface と decal メッシュが、ユーザーの定義していない最上位(root)に並んでエクスポートされている。右: surface と decal が単一のメッシュに統合されている。 注意: このアプローチはテストされておらず、正常に動作するか不明)
注意: 武器にデカール・ジオメトリを含めることはできません!武器アセットに両方が存在する必要はありません。
注意: どのシーン・ヒエラルキーを選ぶかに関係なく、エクスポート前に最上位(root)および/またはメッシュのピボット位置と方向が正しいことを確認してください。
メッシュとテクスチャーをインポートしたら、マテリアルを作成する必要があります。マテリアルは、テクスチャー・セットごとに作成してください。
上述の通り、武器やアイテムに必要なだけのテクスチャー・セットを使用できます。 この例では、適切なテクセル密度のテクスチャー1枚にすべてを収めることが不可能だったため、グリップ(grip)を別個のテクスチャー・セットに分ける必要がありました。
各マテリアルは Hardsurface/Parts/Base (mech)
シェーダーを使用する必要があります。
マテリアル設定において:
マテリアル初期設定
注意: MSEO マップがない、あるいは使用したくない場合は、アルベド・マップの表面情報に依存して MSEO マップ無しのより簡単なマテリアル設定を使用することも可能です。その場合は、 'Use MSEO' オプションを無効化したままにできます。このアプローチがオリジナルのアセットには用いられておらず、現時点では開発者による適切な管理が行われていないことに留意してください。
インポートしたメッシュ・アセットの設定で、 Materials タブに移動し、武器のマテリアルを割り当て、利用可能なふたつのデカール・マテリアルからひとつを割り当ててください。
メッシュに対するマテリアルの割り当て
マテリアルを割り当てたら、設定すべき点がいくつか残っています。武器/アイテムのマテリアルに戻り、一時的に 'Use Arrays' を無効化してください。すると、アセット上でダメージ効果の見た目を調整できるようになります。
ダメージ・テクスチャーのスケール調整
注意: 武器やアイテムにおけるダメージ・テクスチャーの見た目が気に入らない場合( UV がうまく機能せず、ダメージが不連続に見える場合)は、マテリアル設定最上部の 'Use Triplanar' を有効化してください。これによりマテリアルのレンダリング負荷が高くなることに留意してください。
破壊効果の調整
そして、 damage 値をすべて既定値 0 に戻し、 'Use Arrays' を再有効化します。
マテリアル最終設定
メッシュとマテリアルをすべて設定したら、アイテム/武器のモジュールごとにプレハブを作成してゲームに認識させる必要があります。これは、スタンドアロンのプレハブでも、メッシュのプレハブ・バリエーションでも構いません。
各プレハブ内で、 'Item Visual' コンポーネントを最上位トランスフォーム(root transform)に追加し、 'Collect renderers' 隣の 'Invoke' ボタンを押してください。これにより、武器モジュールまたはアイテムの中に存在する Mesh Renderes がすべて 'Renderes' リストに追加されます。
プレハブ初期設定
注意: 武器においては、プレハブ内で武器に付いているいずれかの銃身に FX トランスフォームが定義されていることを確認してください。
- 新しい Transform オブジェクトを追加し、銃身近くに配置してください
- 'Item Visual' コンポーネントに移動し、 'Activation Links' を見つけ、リストに新規項目(entry)を追加してください
- 'Visual Transform' にトランスフォームを割り当ててください
- 'Activation Used' bool パラメータを有効化してください
武器銃身に対する FX トランスフォーム設定
銃身が複数ある場合、2つ以上の FX トランスフォームを設定することも可能です。ゲームは、各 FX トランスフォームから順番に、マズル・フラッシュ効果を生成して弾丸を出現させます。(リストに追加された順です。) - 各銃身に対して上記手順を繰り返してください。
ミサイル・バックパックでの、複数の FX トランスフォームの例
注意: 近接武器においては、(視覚的およびゲームプレイ共に)すべての衝撃波パラメータは設定(config)を通じて定義されます。しかし、現時点では、小さな見落としにより、古いプレハブ・ベースの設定を必要とする古いシステムがコード内に残っています。
- プレハブに Transform オブジェクトを追加し、 Transform 内に BoxCollider コンポーネントを追加してください
- BoxCollider コンポーネントが無効 になっていることを確認してください
- 'Item Visual' コンポーネントに移動し、 'Activation Links' を見つけ、リストに新規項目(entry)を追加してください
- 'Visual Transform' にトランスフォームを割り当ててください
- 'Activation Used' bool パラメータを有効化してください
Transform の配置と BoxCollider パラメータはここでは重要ではありませんが、これらが無いと、ゲームでメックが近接武器を使おうとすると例外が投げられてしまいます。これは今後修正予定です。
近接武器のプレハブ設定
注意: シールドには、シールド全体、または(モジュール・セットとして作成している場合)各シールド・モジュールに BoxCollider コンポーネントが必要です。そのため、シールドの高さや幅が特に大きい場合、シールドの寸法が重要になります。
シールドに直接当たった弾丸を吸収または弾くには、ボックス・コライダー(Box Collider)が必要です。さらに、機体の他の場所に当たった弾丸も、シールド方向90度の円錐内で当たった場合は、防御されたと判定されます - この挙動は、アセット自体では制御できません。(そのため、弾丸を一切受け止めない極小のシールドは作成できません。)
unit_collider_01
という名前の空のトランスフォームを追加してください- トランスフォームに BoxCollider コンポーネントを追加してください
- シールドまたはシールド・モジュールの寸法にコライダーを合わせ、有効 にしてください
- これで完了です。フィールドに割り当てる必要はありません
シールド・プレハブに追加された BoxCollider
複数モジュールのシールドと BoxCollider の図
最後に、ファイル整理をお勧めします:武器やアイテムのプレハブは weapon|item-name
フォルダに配置し、メッシュ、テクスチャー、マテリアルは親フォルダ内で個別のアセット・フォルダの中に配置しましょう:
本記事で言及したファイルはすべて、ひとつの .zip アーカイブでダウンロードできます(装甲のアセット・サンプルも含まれています) - ダウンロード
通常武器:
wpn_grips-reference.fbx
wpn_single-handed-max-dimensions-reference.fbx
wpn_two-handed-max-dimensions-reference.fbx
重量級武器:
wpn_grips-reference-heavy.fbx
近接武器:
wpn_melee-grip-reference.fbx
シールド:
wpn_shield-grip-reference.fbx
バックパック:
backpack_harness-proxy.fbx
デカール(FBX + テクスチャー):
decal_set_hardsurface_01.zip
decal_set_organic_01.zip