3Dモデル
※2025/10/6、英wikiよりkagi翻訳を通しました。機械翻訳なので一部不自然な日本語があるかもしれません。ぜひ編集してくれるとありがたいです。
Crusader Kings III では、肖像画・部隊・所領といったゲーム内オブジェクトや、樹木のようなマップ上のオブジェクトを 3D モデルで表現します。本ガイドは、3D モデリングやマテリアルの基礎知識を持つ CK3 のモッダー向けです。Clausewitz 向けの他の 3D モデリングガイド(例:Imperator: Rome)に近い内容です。 3D モデルを作成するには、Autodesk Maya や Blender などのモデリングソフトが必要です。さらに、Crusader Kings III のモデルをインポート/エクスポートするアドオンが必要です。テクスチャを作成するには、Adobe Photoshop や GIMP といった画像編集ソフトと、DDS テクスチャをインポート/エクスポートするアドオンが必要です。
概要[編集 | ソースを編集]
すべてのモデルと、それぞれのテクスチャ・アニメーションは /Crusader Kings III/gfx/models/ にあります。
典型的なモデルは次のファイルで構成されています:
- <model>.mesh - 3D モデル本体。
- <model>.asset - モデルをゲームに登録するスクリプト。
- <model>_diffuse.dds - モデルのディフューズ(ベースカラー)テクスチャ。
- <model>_normal.dds - 法線マップ。
- <model>_properties.dds - スペキュラー・メタルネス・ラフネスをまとめたチャンネルパックテクスチャ。
他の 3D モデル用の追加テクスチャ:
- <model>_unique.dds - standard_atlas シェーダーで使用。B チャンネルがモデルのアンビエントオクルージョン。
チュートリアル: セットアップ[編集 | ソースを編集]
ツール[編集 | ソースを編集]
- Autodesk Maya。3D モデルやアニメーションを作成するソフト。Clausewitz Maya Exporter の導入が必要。
- Clausewitz Maya Exporter。Paradox 製の Maya 用プラグイン。インストール済みゲームに基づいてモデルをセットアップし、モデルとアセットをエクスポート。インストール手順はフォーラム投稿および下記に記載。
- Blender。無償の 3D モデリング/アニメーションソフト。
- IO PDX Mesh アドオン。Blender または Autodesk Maya に導入可能なアドオン。対応ゲームからモデルをセットアップ。インストール手順はリンク先参照。
Clausewitz Maya Exporter のセットアップ[編集 | ソースを編集]
エクスポーターの完全なセットアップガイドがあります。以下は短縮版です。
エクスポーターで CK3 を設定するには、clausewitz.settings をコードエディタで開き、フォルダパスを編集して保存します。CK3 用のフォルダパスは次のとおりです:
- "name": "CrusaderKingsIII"
- "path": "C:/SteamLibrary/steamaps/common/Crusader Kings III/game/tools"
- "export_path": "あなたの個人用 MOD フォルダ"
- "target_exe": "C:/SteamLibrary/steamaps/common/Crusader Kings III/binaries/ck3.exe"
注意:
- あなたの MOD の gfx/models フォルダは C ドライブ上のどこでも構いません。編集する各 MOD ごとに設定を変えてもよいですし、1 つのフォルダを使ってそこから自分の MOD にコピーしても構いません。
- /(フォワードスラッシュ)が重要です。Windows エクスプローラーは \(バックスラッシュ)を使います。エクスプローラーからコピーした場合、/ を使うようにパスを書き換える必要があります。
- name は 1 語で、スペースを含めないでください。
モデル作成[編集 | ソースを編集]
Maya/Blender の 3D モデル準備[編集 | ソースを編集]
UV[編集 | ソースを編集]
standard_atlas シェーダーの UV マップ順序:
- map1 - AO「<model>_unique」に展開した UV
- map2 - マテリアルアトラスに展開した UV
UV マップの問題[編集 | ソースを編集]
モデル作成時に見落としがちですが、map1 は map2 より上にあり、かつ Maya でデフォルトの UV セットである必要があります。Blender から .dae でインポートする場合も、Blender 側で UV の順序が正しい必要があります。 UV の順序が正しくない場合、次の方法で並べ替えてください。Maya でデフォルトの UV セットを削除する方法は不明です。 問題の本質は、map1 がマテリアルアトラスに割り当てられてしまっていることです。
- UV - UV セット エディタ。map1 をコピー。
- UV セット エディタで map2 を選択。
- UV - UV エディタ。UV エディタの UV Sets – Copy UVs to UV Set で map1 を選択。
- UV セット エディタで map2 を削除。
- UVSet1(手順1で map1 をコピーしてできたもの)の名前を「map2」に変更。
- map1 を選択して Update をクリック。
壊れた法線[編集 | ソースを編集]
Maya では、Mesh Cleanup ツール(デフォルト設定)を使って、Error! Mesh contains broken normals, tangents and/or bitangents.
を解決できます。
テクスチャ[編集 | ソースを編集]
フォーマット[編集 | ソースを編集]
以下は Ck3 の主なテクスチャ形式です(Ck3 Modding Coop の "@Sparc | Princes of Darkness Mod" に感謝)(一部の種類で推奨解像度が上がっている可能性はありますが、小さいサイズでも動作します):
アイコン[編集 | ソースを編集]
Type | Dimensions | Format & Minimaps |
---|---|---|
宗教アイコン | 100×100 | 32bit-A8R8G8B8 (ミップマップなし)
|
紋章(カラーエンブレム) | 512×512 | BC3/DXT5 (ミップマップあり)
|
紋章(パターン) | 256×256 | DXT1 (ミップマップあり)
|
連隊タイプアイコン | 120×120 | A8R8G8B8 (ミップマップなし)
|
フォーカスアイコン | 140×140 | A8R8G8B8 (ミップマップなし)
|
信仰教義テネットアイコン | 260×400 | DXT5 (ミップマップなし)
|
信仰教義アイコンバナー | 260×400 | A8R8G8B8 (ミップマップなし)
|
文化イノベーション | 90×60 | A8R8G8B8 (ミップマップなし)
|
角色インタラクション | 120×120 | A8R8G8B8 (ミップマップなし)
|
建物タイプアイコン | 150×130 | A8R8G8B8 (ミップマップなし)
|
特性アイコン | 120×120 | A8R8G8B8 (ミップマップあり)
|
ライフスタイル特典 | 120×120 | A8R8G8B8 (ミップマップあり)
|
ライフスタイル背景 | 608×1546 | DXT5 (ミップマップなし)
|
ライフスタイルツリー背景 | 347×812 | DXT5 (ミップマップなし)
|
継承系統(Legacy Tracks) | 4216×368 | DXT5 (ミップマップなし)
|
イベントタイプアイコン | 148×148 | (形式未指定) |
イラスト & 背景[編集 | ソースを編集]
Type | Dimensions | Format & Minimaps |
---|---|---|
ローディング画面 | 3840×2160 | DXT1 (ミップマップなし)
|
イベントシーン | 1592×848 | DXT1 (ミップマップなし)
|
イベントシーン(フロントエンド) | 1592×828 | DXT1 (ミップマップなし)
|
決断 | 1100×440 | DXT1 (ミップマップなし)
|
評議会 | 844×844 | DXT1 (ミップマップなし)
|
キャラクタービュー | 1539×849 | DXT1 (ミップマップなし)
|
所領タイプ | 2560×1168 | DXT1 (ミップマップなし)
|
地形タイプ | 1200×600 | DXT1 (ミップマップなし)
|
常備軍(小) | 160×160 | DXT1 (ミップマップなし)
|
常備軍(大) | 680×400 | DXT1 (ミップマップなし)
|
ブックマーク | 1920×1080 | DXT5 (ミップマップなし)
|
衣装テクスチャ[編集 | ソースを編集]
Type | Dimensions | Format & Minimaps |
---|---|---|
パターン用 Properties | 512×512 | DXT5 (ミップマップあり)
|
パターン用 Normal | 512×512 | DXT5 (ミップマップあり)
|
建物テクスチャ[編集 | ソースを編集]
すべて 1024×1024、DXT5、ミップマップあり。
チャンネルパッキング[編集 | ソースを編集]
チャンネルパッキングは、色やテクスチャ情報をファイルの色チャンネル(赤・緑・青・アルファ)に振り分けて 1 つにまとめ、容量節約と効率向上を図る手法です。
以下は多くのバニラテクスチャでのパッキング方法です(Stellaris Modding Wiki に感謝):
File | Channel | Notes | |||
---|---|---|---|---|---|
R | G | B | A | ||
[texturename]_diffuse.dds | DiffuseR | DiffuseG | DiffuseB | OpacityR | OpacityGB は無視 |
[texturename]_normal.dds | NormalR | NormalR | EmissiveR | NormalG | NormalB は無視。
EmissiveGB は無視 |
[texturename]_specular.dds | Mask(各種) | SpecularB | MetalB | GlossB | ColorRGB は無視
SpecularRG は無視。 Gloss RG は無視。 |
Gimp[編集 | ソースを編集]
例えば新しいノーマルマップを GIMP で作る場合は、次の手順です。
- ノーマル用テクスチャを GIMP に読み込む。
- 選択範囲がないことを確認し、メニューの「色 > コンポーネント > 分解」をクリック。
- 分解ダイアログではそのまま OK。画像の色チャンネルが分割され、レイヤー同様に編集可能になります。
- 終わったら「色 > コンポーネント > 合成」。合成ダイアログで色モデルに RGBA を選び、どのレイヤーをどのチャンネルに割り当てるか指定。例では、Red に Red レイヤー、Green に Red レイヤー、Blue は 0 のマスク値、Alpha に Green レイヤーを設定。
- OK で合成され、黄味がかったノーマルマップが得られます。これを [texturename]_normal.dds として、BC3/DXT5 圧縮・ミップマップ生成ありでエクスポートします。
チュートリアル: マップに載せる[編集 | ソースを編集]
建物モデルをゲーム内に表示するには、いくつかのファイル編集が必要です。
まず、建物用のアセットファイルには entity ブロックと pdxmesh ブロックが必要で、前者は本質的に後者への参照を持ちます。用途に応じて、mesh か entity を参照します。
所領(Holdings)[編集 | ソースを編集]
改造した宗教や文化のための所領建物を作るには、まずそれらがマップに配置される entity として扱われる必要があります。バニラの gfx/models/buildings
配下にある all_buildings.asset
を編集して参照を追加します。ここでの各設定の詳細は不明な点もありますが、パターンに倣って各新規所領モデルにロケーターと attach ブロックを追加すれば動作します。例:
locator = { name = "pos_11_a" position = { @[gap * 6.5] 000 @[gap * -1.5 ] } } locator = { name = "pos_11_b" position = { @[gap * 6.5] 000 @[gap * -0.5 ] } } locator = { name = "pos_11_c" position = { @[gap * 6.5] 000 @[gap * 0.5 ] } } locator = { name = "pos_11_d" position = { @[gap * 6.5] 000 @[gap * 1.5 ] } } attach = { "pos_11_a" = "building_[mymod]_city_01_entity" } attach = { "pos_11_b" = "building_[mymod]_city_02_entity" } attach = { "pos_11_c" = "building_[mymod]_temple_01_entity" } attach = { "pos_11_d" = "building_[mymod]_temple_02_entity" }
次に、寺院所領と城/都市所領で分岐があります。寺院所領の選択は主に宗教によって決まり、城と都市は文化によって決まります。新しい都市・城の所領を文化で使わせるには、その文化用に新たな graphical_culture
を定義します。これは単なるタグで、どこかに事前宣言する必要はありません。文化定義の先頭にある graphical_cultures
ブロックに、例えば [mymod]_building_gfx
と記述します。一方、宗教は graphical_faith
を定義します。同様に宗教定義の先頭で指定します。
すべてを結び付けるには、(名前から想像するのとは異なり)holdings ではなく建物(buildings)のバニラファイルを編集します。例えば新しい寺院所領メッシュを追加するには、00_temple_buildings.txt
を編集します。所領(正確には基幹建物)の 4 段階それぞれに、使用され得るメッシュを定義する asset ブロックがあります。自作の所領モデルを次のように追加します:
asset = { type = pdxmesh name = "building_[mymod]_temple_01_mesh" illustration = "gfx/interface/illustrations/holding_types/temple_[mymod].dds" soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Temples/[mymod]_temple" soundparameter = { "Tier" = 0 } } graphical_faiths = { "[mymod]_gfx" } graphical_regions = { "graphical_[mymod]_region" } }
name
にはアセットファイル内のメッシュのタグ名を参照します。illustration
は所領 UI 背景となるアートを指定します(バニラでは変数を使い、ファイル先頭で実パスを定義)。soundeffect
は所領にカーソルを合わせた際の環境音を参照します。ここでの graphical_faiths
は、新しい宗教のために定義した graphical_faith を一つ以上指定します。
最後に、graphical_region
は地理的な使用範囲を制限する任意の方法です。同一モデルのバリエーション(例:異なるマテリアルで各地域に馴染ませる)を用意する場合に使えます。これは map_data/geographical_regions.txt
の graphical_region
を参照し、同ファイルに追加も可能です。
この構文は都市や城でも同様に機能します。graphical_faiths
の代わりに graphical_cultures
を使用してください。
ドキュメンテーション | スクリプト • スコープ • 効果 • トリガー • 変数 • 補正リスト |
スクリプト | AI • ブックマーク • キャラクター • コマンド • 評議会 • 文化 • ディシジョン • 王朝 • イベント • 政府 • 歴史 • 領地 • ライフスタイル • 連隊 • 宗教 • スクリプト値 • ストーリーサイクル • 闘争 • 称号 • 特性 |
インターフェース | インターフェース • データ型 • ローカライズ • カスタムローカライズ • フレーバー化 |
マップ | マップ • 地形 |
グラフィック | 3Dモデル • エクスポーター • 紋章 • グラフィックアセット • フォント • パーティクル • シェーダー • ユニットモデル |
オーディオ | 音楽 • サウンド |
その他 | コンソールコマンド • チェックサム • Modの構造 • Mod制作ツール • トラブルシューティング |