StellarisMOD作成 忘備録02

ここがとても参考になるので
Paradox Forum "how to make new ship"
一読して損はありません。


前回はオリジナルに上書きしましたが、
ここでは新しくMODとしてきのこの山の外観を作成します。
名称は単に「kinoko」だと他のMODのと混同した時に面倒なので
「kinokonoyama」とします。

とりあえず、以下のファイルの作成が必要になります。
KINOTAKE_WAR
├/common
│├/graphical_culture
││└99_kinokonoyama_graphical_culture.txt
│├/species_name
││└99_kinokonoyama_species_name.txt
│└/species_classes
│  └kinokonoyama_species_classes.txt
├/gfx
│ └/models
│  └/ships
│   └/kinokonoyama_01
│    ├_kinokonoyama_01_ships_entities.asset
│    ├_kinokonoyama_01_ships_animations.asset
│    ├_kinokonoyama_01_ships_meshes.gfx
│    ├konokonoyama_01_destroyer_bow_L1.mesh
│    ├kinokonoyama_01_corvette_diffuse.dds
│    ├kinokonoyama_01_corvette_normal.dds
│    ├kinokonoyama_01_corvette_specular.dds
│    └...
└/localisation
  └kinokonoyama_l_english.yml

見るからに面倒ですね。

blenderで作成してJorodoxで.meshを出力する場合、船体のどこに何を接続するのか
例えばレーザー砲塔を船体のどこに接続するのか?船首と船尾をどこで接続するのか?
光源の点滅等のアニメーションはどこでさせるのか?
という事を出力出来ない(少なくとも私は知らない)ので、実際には上記の他に
ship_size #common/ship_sizes.txt
section_template #common/section_templates/*
component_template #common/component_templates/*
の設定が必要になりますが、ここでは割愛します。


一つずつ説明して行きますが、実際問題私自身がよく理解していないので
知ったかぶりが多分に含まれますので鵜呑みは危険です。
間違いはコメント欄で御指摘頂けると幸いです。


STEP0---------------------------------------------------------------------------
C:\Users\ユーザー名\Documents\Paradox Interactive\Stellaris\mod
ここに新しくKINOTAKE_WARフォルダを作成します。
メモ帳で「KINOTAKE_WAR.mod」ファイルを作成します。
中身は
name="KINOTAKE_WAR"
path="mod/KINOTAKE_WAR"
tags={
"Spaceships"
}
picture="thumb.jpg"
supported_version="1.4.1"
として下さい。

KINOTAKE_WARフォルダとKINOTAKE_WAR.modファイルは同じ階層に置きます。
C:\Users\ユーザー名\Documents\Paradox Interactive\Stellaris\mod
├/KINOTAKE_WAR
└KINOTAKE_WAR.mod
こんな感じで。


STEP1---------------------------------------------------------------------------
ここから先は全て
C:\Users\ユーザー名\Documents\Paradox Interactive\Stellaris\mod
└/KINOTAKE_WAR
のフォルダ以下での話になります。
↓の話だとフルパスは
C:\Users\ユーザー名\Documents\Paradox Interactive\Stellaris\mod\common\graphical_culture\99_kinokonoyama_graphical_culture.txt
となります。

\common\graphical_culture\99_kinokonoyama_graphical_culture.txt
※光源の具合を設定します。
kinokonoyama_01 = { #変更箇所
    fallback = reptilian_01
    ship_lighting = {
        cam_light_1_dir = { 1.0 0.0 0.5 }
        cam_light_2_dir = { -0.5 0.2 0.0 }
        cam_light_3_dir = { 0.5 -1.0 0.0 }
     
        intensity_near = 1.0
        intensity_far = 1.0
        near_value = 700
        far_value = 4000
        rim_start_near = 0.5
        rim_stop_near = 0.99
        rim_start_far = 0.3
        rim_stop_far = 0.99
        #rim_start_far = 1.5
        #rim_stop_far = 2.0
        ambient_near = 0.1
        ambient_far = 20.0
    }
}



\common\species_classes\99_kinokonoyama_species_classes.txt
※ポートレートの表示を設定します。
HUM = {
portraits = {
"human"
"humanoid_02"
"humanoid_03"
"humanoid_04"
"humanoid_05"
}

# These should not be used for randomly generated species
non_randomized_portraits = {
"human"
}

graphical_culture = kinokonoyama_01 #変更箇所
move_pop_sound_effect = "moving_pop_confirmation"
}



\common\species_names\kinokonoyama_species_name.txt
※種族名、星系名、ネームリストの設定をします。
Kinoko_no_yama= { #変更箇所
human = {
name = "Kinoko" #変更箇所
plural = "kinoko" #変更箇所
home_planet = "Meiji" #変更箇所
home_system = "Meiji choco snack" #変更箇所
name_list = "HUM1"
}
}


\localisation\kinokonoyama_l_english.yml
※よくわからない
l_english:
 kinoko_no_yama:0 "kinokonoyama"
 kinoko_no_yama_desc:0 ""

#変更箇所

STEP2---------------------------------------------------------------------------
ここ以下のファイルは個別で設定すると面倒なので、
オリジナルのファイルを借用して必要な所を置換する形が便利です。
具体的には\Stellaris\gfx\models\ships\mammalian_01\以下ををまるっとコピーして
フォルダ名、ファイル名以下の[mammalian_01]を[kinokonoyama_01]へ置換してしまいます。
ファイル内の記述も同様に[mammalian_01]を[kinokonoyama_01]へ置換してしまいましょう。
以下は変更後の一例として掲載しておきます。

\gfx\models\ships\kinokonoyama_01\_kinokonoyama_01_ships_entities.asset
※.meshと名称の割り当設定?
entity = {
name = "kinokonoyama_01_turret_energy_torpedo_entity" #変更箇所
pdxmesh = "kinokonoyama_01_turret_projectile_medium_mesh" #変更箇所

state = { name = "idle" }
state = { name = "attack" looping = no next_state = "idle"
}
scale = 0.85
}


\gfx\models\ships\kinokonoyama_01\_kinokonoyama_01_ships_animations.asset
※.animと名称の割り当て?
animation = {
name = "kinokonoyama_01_cruiser_frame_death_animation" #変更箇所
file = "kinokonoyama_01_cruiser_frame_death.anim" #変更箇所
}


\gfx\models\ships\kinokonoyama_01\_kinokonoyama_01_ships_meshes.gfx
※指定された名称のmeshがどこにあってどのシェーダーを使いどれだけの大きさを持つか設定。
pdxmesh = {
name = "kinokonoyama_01_turret_projectile_large_mesh" #変更箇所
file = "gfx/models/ships/kinokonoyama_01/kinokonoyama_01_turret_projectile_large.mesh" #変更箇所
# animation = { id = "idle" type = "turret_projectile_large_idle_animation" }
# animation = { id = "attack" type = "turret_projectile_large_attack_animation" }
scale = 0.1
meshsettings = {
shader = "PdxMeshShip"
}
}

STEP3---------------------------------------------------------------------------
区画分けされている艦艇(駆逐艦、戦艦等)は船首、船腹、船尾にそれぞれ.meshと.ddsを持っています。
通常であればそれらをちゃんと繋ぎ合わせますが、
blenderがー、というかJorodoxではどこに接続するのか?というlocatorが出力出来ないので
砲塔も含め、全て原点にゴチャッと集積されてしまいます。
これはもうどうにもならない(少なくとも私は他の方法を知らない)ので、
小さなキューブを作成して船体の内側へ隠蔽してしまいます。
という事で、勇敢なキノコ達の.meshと.ddsの他に極小キューブの.meshを用意しておいて下さい。

STEP2で\Stellaris\gfx\models\ships\kinokonoyama_01\以下ををまるっとファイル名をリネームしている筈なので
その前提で話を進めます。

Stellarisの場合、艦艇の特徴は主に船首に現れる傾向ですので、bow(船首)に勇敢なキノコのmeshをリネームします。
船腹(mid)、船尾(stern)、砲塔(turret)には極小キューブのmeshをリネームします。

駆逐艦のカテゴリーでは以下のようになります。
kinokonoyama_01_destroyer_bow_M1S2.mesh #勇敢なキノコ
kinokonoyama_01_destroyer_bow_S3.mesh #勇敢なキノコ
kinokonoyama_01_destroyer_stern_M1.mesh #極小キューブ
kinokonoyama_01_destroyer_stern_S2.mesh #極小キューブ

名称にturretが入っているmeshも極小キューブでリネームしておきます
kinokonoyama_01_turret_missile_small.mesh等

テクスチャは以下が必要になります。それぞれリネームして上書きして下さい。
kinokonoyama_01_detroyer_diffuse.dds
kinokonoyama_01_detroyer_normal.dds
kinokonoyama_01_detroyer_specular.dds

他のmeshも必要なだけ置き換えて下さい。
変えなかった場合はオリジナルのmammalianの艦艇が出現します。
















コメント