3Dモデル

提供:ck3wiki
ナビゲーションに移動 検索に移動

※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 マップ順序:

  1. map1 - AO「<model>_unique」に展開した UV
  2. map2 - マテリアルアトラスに展開した UV

UV マップの問題[編集 | ソースを編集]

モデル作成時に見落としがちですが、map1 は map2 より上にあり、かつ Maya でデフォルトの UV セットである必要があります。Blender から .dae でインポートする場合も、Blender 側で UV の順序が正しい必要があります。 UV の順序が正しくない場合、次の方法で並べ替えてください。Maya でデフォルトの UV セットを削除する方法は不明です。 問題の本質は、map1 がマテリアルアトラスに割り当てられてしまっていることです。

  1. UV - UV セット エディタ。map1 をコピー。
  2. UV セット エディタで map2 を選択。
  3. UV - UV エディタ。UV エディタの UV Sets – Copy UVs to UV Set で map1 を選択。
  4. UV セット エディタで map2 を削除。
  5. UVSet1(手順1で map1 をコピーしてできたもの)の名前を「map2」に変更。
  6. 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 で作る場合は、次の手順です。

  1. ノーマル用テクスチャを GIMP に読み込む。
  2. 選択範囲がないことを確認し、メニューの「色 > コンポーネント > 分解」をクリック。
  3. 分解ダイアログではそのまま OK。画像の色チャンネルが分割され、レイヤー同様に編集可能になります。
  4. 終わったら「色 > コンポーネント > 合成」。合成ダイアログで色モデルに RGBA を選び、どのレイヤーをどのチャンネルに割り当てるか指定。例では、Red に Red レイヤー、Green に Red レイヤー、Blue は 0 のマスク値、Alpha に Green レイヤーを設定。
  5. 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.txtgraphical_region を参照し、同ファイルに追加も可能です。

この構文は都市や城でも同様に機能します。graphical_faiths の代わりに graphical_cultures を使用してください。


ドキュメンテーション スクリプトスコープ効果トリガー変数補正リスト
スクリプト AIブックマークキャラクターコマンド評議会文化ディシジョン王朝イベント政府歴史領地ライフスタイル連隊宗教スクリプト値ストーリーサイクル闘争称号特性
インターフェース インターフェースデータ型ローカライズカスタムローカライズフレーバー化
マップ マップ地形
グラフィック 3Dモデルエクスポーター紋章グラフィックアセットフォントパーティクルシェーダーユニットモデル
オーディオ 音楽サウンド
その他 コンソールコマンドチェックサムModの構造Mod制作ツールトラブルシューティング