All posts

複数の3Dモデルを1つのゲーム用アセットパックに書き出す方法

AIで生成した最大16個の3Dモデルを、共有テクスチャ付きのGLB・FBX・OBJ 1ファイルのゲーム用アセットパックとして一括エクスポートする方法を解説します。1ファイルにまとめるとドローコールとメモリが減る理由、Sloydからの書き出し手順、Unity・Unreal・Godot・Robloxへのインポートまで。

Martin Truong11 min read
複数の3Dモデルを1つのゲーム用アセットパックに書き出す方法

市場のシーンに小物を16個置くと、たいていは16個のファイル、マテリアル、テクスチャセットを読み込み、管理し続けることになります。ゲーム用アセットパックなら、それが1つのファイルにまとまります。すべてのモデルが同じシーンに入り、共有アトラスのオプションをオンにすれば同じ少数のテクスチャを参照します。エンジンが読み込む画像は減り、ドローコール削減への道筋もはっきりします。

このガイドでは、Sloydで複数の3Dモデルを1つのファイルに書き出す方法、その効果、モデルを分けておくべき場合、そしてUnity、Unreal、Godot、Robloxへの読み込み方を説明します。まずはテキストから3Dまたは画像から3Dでモデルを作っておきましょう。

パックを効率的にするのが共有テクスチャアトラスのオプションです。Sloydはすべてのモデルのテクスチャを1組の画像に並べ、各モデルのUV座標をその中の専用領域に割り当て直すので、すべてのメッシュが同じテクスチャを参照し、マテリアル設定が一致する部分では1つのマテリアルを共有できます。2Dゲームでは数十年前からスプライトシートとして使われてきた手法です。

なぜ複数の3Dモデルを1つのファイルに書き出すのか?

複数の3Dモデルを共有テクスチャ付きの1ファイルに書き出すことが効くのは、マテリアルが1つ増えるごとに、エンジンが描画を別のドローコールに分けなければならないからです。マテリアルとテクスチャが減れば、ステート切り替えとテクスチャメモリのオーバーヘッドが減り、エンジンがまとめて描画できるメッシュが増えます。

  • ドローコールが減る。 同じマテリアルを使うメッシュは、スタティックバッチング、GPUインスタンシング、単純なメッシュ結合でまとめられます。マテリアルが異なるメッシュはまとめられません。
  • テクスチャのバインドとファイル数が減る。 モデルごとに別々のマップを用意する代わりに、アトラス画像4枚で済みます。
  • メモリが読みやすくなる。 2Kのアトラス1枚ならコストは明確です。1K、2K、4Kが混在したフォルダではそうはいきません。
  • 非力なハードウェアの厳しい予算に収まる。 モバイルGPU、WebGLやWebGPUのゲーム、Robloxのエクスペリエンスは、デスクトップGPUよりはるかに早くドローコールとメモリの上限に達します。

アトラス化しても三角形の数は減りません。ポリゴン数は別途確認し、必要以上に重いモデルはパック前に軽くしておきましょう。その手順はAI生成3Dモデルをデシメートして変形するメッシュモディファイアの記事で解説しています。メッシュモディファイアの編集は元のモデルに保存されないため、軽くしたモデルをGLBで書き出してMy Activityにアップロードし、そのアップロードしたコピーをパックしてください。

共有テクスチャアトラスを使うゲーム用アセットパックと、モデルごとに別々のテクスチャの比較

Sloydのアセットパック書き出しでできること

Sloydの一括エクスポートは、完成した3Dモデル2〜16個を1回のダウンロードにまとめ、オプションで共有テクスチャアトラスも作成します。結果は2つのスイッチで決まります。

設定ダウンロードされるもの
両方のスイッチがオフ各モデルが個別ファイルになったZIP(ファイル名はモデル名)
Pack all models in 1 file全モデルをグリッド状に並べた1ファイル(各モデルは自分のテクスチャを保持)
Texture Atlas(1ファイルを強制)全モデルをグリッド状に並べ、1組のアトラステクスチャを共有する1ファイル

Texture Atlasをオンにすると、Sloydは4枚の共有マップを作ります。ベースカラー、法線、エミッシブ、そしてアンビエントオクルージョン、ラフネス、メタルネスを赤・緑・青チャンネルに詰めたORMマップ(glTFの標準レイアウト)です。各モデルはグリッドの正方形セルを1つ受け取り、周囲に2ピクセルの余白が付きます。この余白はテクスチャのフィルタリング時に隣のセルの色がにじむのを抑えますが、画面上で小さく表示される遠いミップマップでは、隣のセルがわずかに混ざることがあります。

選べるのは、PBRマテリアルを完全に保持できる形式です。

  • GLB(推奨):コンパクトなバイナリ形式のglTFファイル1つ。Godot、Webエンジン、Unrealへの最短ルートです。
  • FBX:UnityやUnrealのパイプラインで定番の交換形式。用語集のFBXも参照してください。
  • OBJ + MTL:OBJ、MTLマテリアルファイル、テクスチャ(WEBP、PNG、JPG)を入れたZIP。
  • USDZ:AppleやARプレビュー向けの単一ファイルUSD。
  • BLEND:Blenderのネイティブ形式。エンジンに入れる前に調整したい場合に。

マテリアルを持たない通常のOBJは、アトラス化する対象がないためパックでは選べません。

複数の3Dモデルを1つのアセットパックとして書き出す手順

モデルが揃っていれば、アセットパックの書き出しはダイアログ1つで完了します。選択し、エクスポート画面を開き、アトラスを設定してダウンロードします。ダウンロードにはSloyd PlusまたはSloyd Proプランが必要で、未加入の場合はダウンロードボタンから購読の案内が開きます。

1. パックに入れるモデルを作る

各小物をテキストから3Dまたは画像から3Dで生成するか、大きなモデルを先にAIでパーツに分割しておきます。パックは、1つのレベル用のローポリアセット群のように、スタイルとスケールが揃っているほどうまくいきます。コードやチャットエージェントからまとめて生成したい場合は、3Dモデル生成APIのガイドとMCPサーバーのガイドを参照してください。書き出し自体はWebアプリで行います。

2. My Activityまたはプロジェクトから始める

アプリの画面は英語表記のため、ボタン名はそのまま記載しています。

  • My Activity(アクティビティ)から: My Activityを開き、目的のモデルのタイルにあるチェックボックスをオンにし(日付見出しの選択コントロールでその日の分をまとめて選ぶこともできます)、表示される選択バーのExport modelsアイコン(パッケージのアイコン)をクリックします。画像、動画、未完了や失敗したジョブは無視されます。完成した3Dモデルが2個未満になると、2個以上選ぶよう求められます。
  • プロジェクトから: My Projects(マイプロジェクト)でプロジェクトを開き、ツールバーのExport Modelsをクリックします。プロジェクト内の完成した3Dモデルがすべて書き出されます。このボタンはデスクトップでのみ、完成した3Dモデルが2個以上あるときに表示されます。16個を超える場合は、同じ16モデル上限のツールチップとともにボタンがブロックされます。

3. 16モデルの上限を守る

1つのパックに入るのは最大16モデルです。それより多く選ぶとエクスポートアイコンがブロックされ、"Packs are limited to 16 models." というツールチップが出ます。16は最大のアトラスグリッド(4×4)のセル数です。それ以上の場合は、小物、植物、建物などテーマ別のパックに分けましょう。

4. パックに名前を付けて形式を選ぶ

画面のタイトルはExport N Modelsです。Name your Exportに名前を入力します(最大60文字。プロジェクトから開いた場合はプロジェクト名が入り、それ以外は "Asset pack" になります)。欄には書き出されるファイルの拡張子が表示されます。アトラステクスチャの名前にはパック名が接頭辞として付き、ラテン文字・数字・ハイフン・アンダースコア以外の文字は置き換えられます(日本語だけの名前はatlasになります)。market_propsのような名前が扱いやすいでしょう。次に形式を選びます。GLBが推奨として表示されています。

5. Texture Atlasをオンにしてグリッドと解像度を設定する

Texture Atlasをオンにします。アトラスは1ファイル内でしか意味がないため、Pack all models in 1 fileも同時にオンになり固定されます。設定項目が2つ現れます。

  • Grid Size(グリッドサイズ):Auto、2×2、3×3、4×4。Autoはモデルが収まる最小のグリッドを選びます。
  • Texture Resolution(テクスチャ解像度):Auto、1K、2K、4K。Autoは2Kを使います。

選ぶ前に計算しておきましょう。各モデルは1セルを使うので、モデルあたりのピクセル数は解像度÷グリッドサイズです。4Kアトラスを4×4グリッドにすると各モデルは1024ピクセルのセル、2Kなら512ピクセルです。背景の小物なら512で足りることが多く、カメラが近づくものには4Kを選ぶか、パックのモデル数を減らして小さめのグリッドに収めます。

テクスチャを共有せず1ファイルにまとめたいだけなら、Texture AtlasをオフのままPack all models in 1 fileをオンにします。

6. OBJ + MTLのテクスチャ形式を選ぶ

OBJ + MTLのときだけ、WEBP、PNG、JPGを選べるTexture formatメニューが表示されます。書き出し先のツールがWEBPを読めない場合はPNGかJPGを選びます。

7. パックをプロジェクトとして保存する(任意)

My Activityから書き出す場合、Save pack as new projectスイッチをオンにすると、ダウンロード完了後に同じ名前の新しいプロジェクトが作られます。後から同じセットを別の形式や解像度で書き出し直せます。

8. ダウンロードする

Download GLBをクリックします(表示は形式に応じて変わります)。パックはブラウザ内で組み立てられ、GLB以外の形式はダウンロード開始前にSloydのサーバーで変換されます。受け取るのは1つのファイル、またはOBJ + MTLや個別ファイルの場合はZIPです。

1ファイルに書き出した16個のスタイライズドな小物のゲーム用アセットパック(4×4グリッド)

ゲーム用アセットパックをUnity・Unreal・Godot・Robloxに読み込むには?

パックを1つのモデルファイルとしてインポートし、エンジン内で個々のモデルを分けたり配置したりします。各モデルは名前付きのノードなので、アトラスを参照したまま個別に配置できます。

どのエンジンでもドローコールに関わる注意点が1つあります。Sloydはモデルごとにマテリアルを1つずつ残します。GLBではどれも同じ4枚のアトラステクスチャを参照しますが、ベースカラー、メタルネス、ラフネス、エミッシブの値など、元のモデルの設定はそれぞれ保持されています。設定が一致するメッシュには、そのうち1つのマテリアルを割り当てる(またはメッシュを結合する)とエンジンがまとめて描画できます。設定が異なる場合はマテリアルを分けたままにしてください。統合すると色や質感が変わってしまいますが、それでも読み込むテクスチャは数十枚ではなく4枚で済みます。他の形式はそのGLBから変換されるため、インポート後にマテリアルの設定を確認してください。

Unity

UnityはFBXをネイティブにインポートします。GLBにはUnityのglTFastなどのglTFインポーターパッケージが必要です。インポートしたマテリアルを比較し、色や質感の値が一致する小物だけに共通のマテリアルを割り当てます。UnityのLitシェーダーはメタリック、オクルージョン、スムースネスの格納方法がglTFのORMマップと異なるため、glTFインポーターにマテリアルを変換させるか、自作マテリアル用にチャンネルを詰め直してください。

Unreal Engine

UnrealはFBXに加え、最近のバージョンではglTFとGLBもインポートできます。インポートしたマテリアルの設定が一致するメッシュには、アトラステクスチャを参照するマテリアルインスタンスを1つだけ使います。法線マップとORMマップはsRGBではなくリニアデータとしてインポートします。

Godot

Godot 4はglTFとGLBをネイティブにインポートするので、GLBが最短ルートです。パックはモデルごとに子ノードを持つシーンとして表示されます。設定が同じマテリアルは1つの共有リソースとして保存し、該当するメッシュで使い回しましょう。

Roblox

Roblox Studioの3D ImporterはFBX、OBJ、glTFに対応しており、Robloxは1メッシュあたり20,000三角形の上限を定めています(2026年10月30日にRobloxのメッシュ仕様で確認)。パック内の各小物は別々のメッシュのままなので、上限は小物ごとに適用されます。SurfaceAppearanceでPBRを手動設定する場合、Robloxはラフネスとメタルネスを別々のグレースケールマップとして求めるので、事前に画像編集ソフトでORMのチャンネルを分けておきます。Robloxのテクスチャ仕様はセクションによってテクスチャマップの上限を異なる値で記載しているため、最新の上限をそちらで確認し、インポート後にテクスチャサイズもチェックしてください。その先のワークフローはRoblox開発者向けページで紹介しています。

共有アセットパックに入れないほうがよいモデル

テクスチャの共有は、一緒に登場する小〜中サイズの小物のセットに使いましょう。ヒーローアセット、タイリングする面、専用シェーダーが必要なものは共有パックから外します。

共有アセットパックに向く小物のグループと、精細なヒーローアセット

  • ヒーローアセット。 主人公やカメラが寄る武器には、共有シートの1024ピクセル分ではなく、フル解像度の専用テクスチャがふさわしいです。
  • タイリングテクスチャ。 床、壁、地形は1つのテクスチャを面全体に繰り返します。アトラスのセルは自分の領域にクランプされるため、繰り返し前提のテクスチャはアトラス内ではタイリングしません。
  • 特殊なマテリアル。 ガラス、クリアコートなどの物理マテリアル効果はこのアトラスでは表現できません。複数マテリアルを持つメッシュ、UVのないメッシュ、バンプ・ディスプレイスメント・ライトマップを使うもの、ニアレストネイバーフィルタリング(ピクセルアートでよく使われます)のものも、アトラスに入らず自分のマテリアルを保持します。
  • 読み込むタイミングが異なるアセット。 パックの半分がレベル3にしか出てこなくても、アトラスはレベル1の時点で全部を読み込みます。

アトラスはモデルごとではなくメッシュごとに1セルを割り当てます。AI生成モデルの多くは1メッシュですが、複数メッシュのモデルを含むパックでは16セルを超えることがあり、その場合は必要なセル数が表示されます。モデル数を減らすか、個別ファイルのオプションを使ってください。

ゲームアセットをまとめるツール比較:Sloyd、Blender、TexturePacker

Sloydは1回の書き出しで3Dテクスチャアトラスを作り、UVも自動で割り当て直します。Blenderなら同じことを手作業で細かく制御でき、TexturePackerは3Dモデルではなく2Dスプライトシート向けのツールです。

ツールアトラス化できるものUVの再割り当て手間価格(2026年10月30日確認)
Sloydの一括エクスポート生成またはアップロードした3Dモデル最大16個、PBRマップ4枚自動ダイアログ1つSloyd Plus 月額$15またはPro 月額$50
Blender(手作業)インポートできるものすべて手動:新規UVマップ、パッキング、ベイクマップごと・パックごと、数時間かかることも無料
TexturePacker2D画像とスプライト3DのUV再割り当てなしスプライトなら速い$49.99の買い切り(アップデート1年分)

Blenderは、ヒーロー小物に小石より広いアトラス領域を与えるようなカスタムのパッキングが必要なときや、モデルをSloydにアップロードしたくないときに適しています。一般的な手順は、オブジェクトを結合し、新しいUVマップを作り、アイランドをパックして、各マップを新しい画像にベイクするというものです。無料で柔軟ですが、小物が変わるたびにやり直すのは大変です。

CodeAndWebのTexturePackerはスプライトシートを作成するツールで、製品ページによるとUnity、Unreal Engine、Godotを含む48以上のエンジンに標準対応しています。購入ページでは、シングルユーザーライセンスが$49.99の買い切り(1年間のアップデート付き)で掲載されています。2DスプライトやUIにはこちらが適しています。3DメッシュのUVは再割り当てしません。

Sloydは、モデルがSloydアカウントにあり(Sloydで生成したもの、または他のツールで作って先にアップロードしたもの)、固定グリッドで十分な場合に適しています。向かないケース:16メッシュを超えるパック、セルサイズを不均等にしたいアトラス。

ゲーム用アセットパックでよくある失敗

  • ヒーローと背景の小物を一緒にパックする。 ヒーローが木箱と同じセルサイズになります。ヒーローは外しましょう。
  • 1Kで4×4を選ぶ。 モデルあたり256ピクセルで、近くで見るとぼやけます。解像度÷グリッドを確認しましょう。
  • 設定を確認せずにマテリアルを統合する。 各マテリアルは元のモデルの色、メタルネス、ラフネス、エミッシブの値を保持しています。一致するものだけを統合してドローコールを減らし、それ以外は分けたままにします。
  • 法線マップとORMマップをsRGBでインポートする。 データ用のマップはリニアでないと、ライティングが平板になったりムラが出たりします。
  • タイリングがそのまま使えると思い込む。 アトラスのセルは繰り返しません。タイリングする面には専用のマテリアルを使います。
  • 1つのパックにアートスタイルを混ぜる。 パックは統一感のあるセットにしましょう。Sloydのテンプレートを使えば、1つのベースデザインからバリエーションを作れます。

よくある質問

モデルを1つのアセットパックに書き出すとドローコールは減りますか?

はい、エンジン内でメッシュがマテリアルも共有していれば減ります。共有テクスチャがそれを可能にしますが、Sloydの各マテリアルは色や質感の設定を個別に持つため、設定が一致するマテリアルだけを統合し、スタティックバッチング、インスタンシング、メッシュ結合でまとめましょう。マテリアルが別々ならドローコールも別々ですが、読み込むテクスチャは減ります。

Sloydのアセットパックには何個のモデルを入れられますか?

完成した3Dモデルを最大16個、最低2個入れられます。16は最大のアトラスグリッド(4×4)のセル数です。メッシュ1つにつき1セルが必要なので、複数メッシュのモデルが多いパックは早めに上限に達します。大きなセットはテーマ別のパックに分けてください。

アセットパックにはどのファイル形式を使うべきですか?

Godot、Webエンジン、UnrealにはGLB、多くのUnityパイプラインにはFBXを使いましょう。アトラスはGLBとして作られ、他の形式はそこから変換されるため、インポート後にマテリアルを確認してください。OBJ + MTLは古いツール向け、USDZはARプレビュー向けで、BLENDはBlenderで開けます。

アセットパックのテクスチャ解像度はどのくらいにすべきですか?

アトラスの解像度をグリッドサイズで割ると、モデルあたりのピクセル数がわかります。2Kアトラスの4×4グリッドなら各モデル512ピクセルで、背景の小物には十分です。カメラが近づく小物には4Kを選ぶか、セットを小さなパックに分けて各パックを小さめのグリッドに収めましょう。Autoは2Kを使います。

Texture Atlasオプションなしでアセットパックを書き出せますか?

はい。Pack all models in 1 fileをオンにすれば各モデルが自分のテクスチャを保持した1ファイルに、両方のスイッチをオフにすれば各モデルが個別ファイルになったZIPになります。Texture Atlasをオンにすると、常に1ファイルにまとめられます。

アセットパックの書き出しに有料プランは必要ですか?

はい。アセットパックのダウンロードはSloyd Plus(月額$15)とSloyd Pro(月額$50)に含まれます。無料アカウントでもモデルの選択と画面の表示はできますが、ダウンロード時に購読の案内が開きます。プランは料金ページで比較できます。

次の小物セットをパックしよう

ゲーム用アセットパックは、ばらばらのモデルを、共有テクスチャと名前付きノードを持つ1つのファイルにまとめます。ヒーローアセットとタイリング面は外し、解像度とグリッドの関係を確認し、エンジンでは設定が一致するマテリアルだけを統合しましょう。

テキストから3Dや画像から3Dで小物を作り、大きなモデルはSplit to Partsで分割し、重いメッシュはメッシュモディファイアで軽くし(結果をGLBで書き出して再アップロードしてから)、My Activityでパックします。自動化パイプラインにはSloyd APIと、ゲームアセット制作向けAIエージェントの比較が役立ちます。全体の流れはゲーム開発ページで、プランは料金ページでご確認ください。