空中艦船のデータについて

「おっしゃ!自作の船を追加するぞ!」という方はこちら。
具体的にどういったデータを用意すればよいかを紹介いたします。

1:用意するものリスト

用意するファイルは、以下の通り。

・飛行艦船の3DCGモデル
・飛行艦船の舵の3DCGモデル
・上記モデルのテクスチャをまとめたフォルダ
・飛行艦船の性能を決めるcsvファイル

なお、まとめてあるフォルダ名、csvファイル名、空中艦船モデルのファイル名は同一に、舵モデルは、空中艦船モデルのファイル名に「_RudderModel」とつけてください。

2:モデルについて

船をゲーム中に登場させるには、当然ながらその船のモデルデータが必要です。

3DCG製作ソフトでモデリング、fbx形式でエクスポートしてください。

また、fbx上での距離1は、ゲーム中における100mに当たります。要は、1/100スケールでモデリングする必要があります。

また、舵のモデルデータも同様です。舵の回転軸を中心(X=0,Z=0)に置き、1/100でモデリング、fbxで出力です。

作者は、blenderというソフトを使わせてもらっています。無料かつ高機能です。
ただし、X,Y,Z軸が通常と異なりますので、注意してください。

なお、テクスチャは、相対パスを崩さないようにフォルダ内に入れてくれれば、そのまま使えます。

3:CSVファイルについて

では、性能を決めるうえで一番重要なCSVファイルのその中身について解説します。

基本的に、データの名前が最初に、コロンを挟んだ右側に実際の値があります。

基本データ

AirshipClassShowName, Dreadnought
 空中艦船の艦級(アイオワ級など)の表示名です。
 上の例では、「Dreadnought」という名前になります。

AirshipShapeShowName,
 同一の艦級で、マイナーチェンジがあった場合の表示名です。
 シキシマ級のミカサ型と言った風に使われます。

AirshipTypeShowName , Battleship
 艦種の表示名です。

AirshipMass , 12000
 全体そのものの重量です。これに、砲塔やモジュールの重量が足されます。

ZRotResilienceRate , 0.3
XRotResilienceRate , 1.5
 Z軸とX軸の回転に対する抵抗です。大きいほど抵抗が大きくなります。

AirResistanceZ , 4
AirResistanceXY , 40
 Z軸およびXY軸の空気抵抗です。大きいほど抵抗が大きくなります。

船の当たり判定

船の当たり判定を設定している部分です。

AirshipCollider
    Collider ,0.000,-0.007,0.365,0.192,0.120,0.242
    Collider ,0.000,0.002,0.450,0.125,0.142,0.334
    …

当たり判定は四角形で、左からその四角形のX,Y,Z座標とその四角の大きさです。1につき100mです。
Collider ,0.000,-0.007,0.365,0.192,0.120,0.242の場合、X座標0m、Y-0.7m、Z36.5mの場所を中心に、X19.2m,Y12m,Z33.4mの四角を作るという意味です。
複数行に分けてColliderを記載した場合、複数の四角を作れます。

砲座種類

砲座のスロットの種類です。
「BarbetteType」から続く一連の記述で設定を行います。

BarbetteType
    BarbetteTypeID ,1
    TurretType ,1
    Size ,10
    RotateMax ,120
    CannonDownAngle_FrontMax,0
    CannonDownAngle_SideMax ,10
    AmmoStorageCapacity ,800

BarbetteTypeID,1
 その砲座種類のIDです。他の砲座種類IDと重ならないようにしてください。

TurretType,1
 砲座のタイプです。
  1なら上部タレット
  2ならケースメート式タレット
  3なら下部タレットです。

Size,10
 タレットのサイズです。
 このサイズは、ターレットリングの直径を示します。

RotateMax,120
 砲塔を左右に回せる角度です。120の場合、左右にそれぞれ120度回せます。
 180に設定すると、一周ぐるっと回せるようになります。

CannonDownAngle_FrontMax,0
 砲塔のうつむき角の制限です。
 数値が大きいほど、大きなうつむき角を取れます。
 下部タレットの場合、仰ぎ角の制限になります。
 砲塔が砲座に対して正面(0度)を向いている時の制限です。なお、砲座の正面であり、船の艦首方向ではないことに注意してください。

CannonDownAngle_SideMax ,10
 砲塔の、側面(90度)を向いている時の制限です。

AmmoStorageCapacity ,800
 砲座に蓄えて置ける弾薬の容量です。
 発砲するごとに消費され、なくなると発砲不可となります。

また、BarbetteTypeから続く一連の記述を複数回することで、複数の砲座種類を設定する事が出来ます。

砲座

砲座をどこに配置するかの設定です。
「Barbette」から続く一連の記述で設定を行います。

Barbette
    BarbetteID ,0
    Position ,0.000,0.081,0.377
    Rotation ,0,0,0
    BarbetteTypeID ,1
    InitTurretName ,Turret_UC_VE_1900_305

BarbetteID ,0
 砲座のIDです。他の砲座IDとかぶらないようにしてください。
 なお、砲座種類IDとは被っても問題ありません。

Position ,0.000,0.081,0.377
 砲座の位置です。船の中心を0,0,0とし、そこからどの程度離れているかです。
 数値1=100mです。上の場合、X=0m、Y=8.1m、Z=37.7mとなります。

Rotation ,0,0,0
 砲座の回転角度です。それぞれ、X軸角度、Y軸角度、Z軸角度です。ただし、Y軸以外の変更はお勧めしません。
 例えば0,180,0を指定すると、艦尾を向く砲座が作られます。

BarbetteTypeID ,1
 使用する砲座種類のIDです。
 上で設定したBarbetteTypeのIDを指定してください。

InitTurretName ,Turret_UC_VE_1900_305
 最初から積み込まれている砲塔の名称。
 名称は、タレットのファイル名を指定してください。

また、Barbetteから続く一連の記述を複数回することで、複数の砲座種類を設定する事が出来ます。

射撃指揮所

最初から設定されている射撃指揮所のデータ。
射撃指揮所は、攻撃すべきターゲットを選定したうえで、管理している複数の砲塔に対しそのデータを渡します。
「InitFDC」から続く一連の記述で設定を行います。

InitFDC
    InitFDCName , Please name it
    LaunchAngle_Center_Y , 0
    LaunchAngle_SwingAngleLimit , 180
    LaunchAngle_DramaticAngleLimit , -45
    LaunchAngle_DepressionAngleLimit, 10
    PermissibleFiringDistance , 200
    InitControlBarbetteIDList , 0,1,2,3,4

InitFDCName , Please name it
 射撃指揮所の名前です。

LaunchAngle_Center_Y , 0
 射撃指揮所の見ている方向です。

LaunchAngle_SwingAngleLimit , 180
 左右にどれだけ旋回できるかです。
 例えば90を設定した場合、LaunchAngle_Center_Yを中心に、左右にそれぞれ90度の間からターゲットを選びます。

LaunchAngle_DramaticAngleLimit , -45
LaunchAngle_DepressionAngleLimit, 10
 仰ぎ角と俯き角の制限です。
 0度を中心に、この範囲内からターゲットを選びます。
 この場合、自身から見て仰ぎ角45度~俯き角10度の間で選ばれます。

PermissibleFiringDistance , 200
 攻撃を始める距離です。
 200の場合、20000mから発砲を開始します。
 ただし、戦隊情報の方で発砲が禁じられている場合、そちらが優先されます。

InitControlBarbetteIDList , 0,1,2,3,4
 制御する砲座のIDです。
 上で設定した砲座のIDを設定してください。

また、InitFDCから続く一連の記述を複数回することで、複数の砲座種類を設定する事が出来ます。

モジュールスロット

モジュールを積むスロットです。
砲塔に対する砲座のようなものです。
「ModuleSlot」から続く一連の記述で設定を行います。

ModuleSlot
    SlotName , CoalStorage(Right_Front)
    Position , 0.11,-0.05,0.25
    Size , 420
    Armor , 279
    InitialModuleName , CoalStorageData_420
    Collider , 0.0 , 0.0 , 0.0 , 0.03 , 0.07 , 0.2

SlotName , CoalStorage(Left_Front)
 スロット名。分かりやすい名前を付けてあげましょう。

Position , -0.11,-0.05,0.25
 モジュールの中心座標です。
 艦の中心を0,0,0とし、1=100mとして設定します。

Size , 420
 スロットのサイズです。
 このサイズは、スロットの容積を表します。

Armor , 279
 そのモジュールスロットの装甲厚です。

InitialModuleName , CoalStorageData_420
 初期に搭載されているモジュールの名前です。
 モジュールのファイル名と同一にしてください。

Collider , 0.0 , 0.0 , 0.0 , 0.03 , 0.07 , 0.2
 そのスロットの当たり判定です。
 最初の3つは位置ですが、これは0,0,0で大丈夫です。
 次はサイズで、Xサイズ、Yサイズ、Yサイズの順です。
 これも、1=100mとなります。

また、ModuleSlotから続く一連の記述を複数回することで、複数の砲座種類を設定する事が出来ます。
複数用意し、石炭庫、ボイラー、浮遊機関、推進機関などのモジュールを搭載できるようにしましょう。

ボイラー駆動音

ボイラー駆動音の設定を行う部分です。
「ModuleSlot」から続く一連の記述で設定を行います。

BoilerSound
    BoilerSoundName , Default
    Position , 0.0,0.0,0.1
    Volume , 1.0

BoilerSoundName , Default
 ボイラー駆動音として再生する音の種類です。
 現状では、Default以外の選択肢はありません。

Position , 0.0,0.0,0.1
 音を再生する、その中心座標です。1=100mです。

Volume , 1.0
 再生時のボリュームです。1=100%です。

艦橋視点

艦橋視点にした時、カメラがどこに移動するかの設定です。
「CameraPoint」から続く一連の記述で設定を行います。

CameraPoint
    Position , 0.0 , 0.20 , 0.285

Position , 0.0 , 0.20 , 0.285
 カメラの座標です。それぞれX,Y,Zです。1=100m。

煤煙

煙突から出る煙の設定です。
「DirtySmoke」から続く一連の記述で設定を行います。

DirtySmoke
    DirtySmokeName , Default
    Position , 0,0.225,0.204
    Size , 1

DirtySmokeName , Default
 煤煙の種類です。
 現状では、Default以外の選択肢はありません。

Position , 0,0.225,0.204
 煤煙の場所です。
 それぞれ、X,Y,Z座標です。1=100m。

Size , 1
 煙の大きさです。1=100%であり、100mを意味しませんのでご注意を。

舵(方向舵=ラダー)の設定です。
「Rudder」から続く一連の記述で設定を行います。

Rudder
    Position ,0.000,-0.011,-0.799
    MaxHP ,500
    Mass ,10
    RotatePower ,30
    RudderRotateSpeed ,70
    Collider ,0.0,0.0,-0.025,0.006,0.1,0.05

Position ,0.000,-0.011,-0.799
 舵の座標です。それぞれX,Y,Z軸です。
 X,Z座標は、舵の回転軸の座標を設定してください。
 1=100mです。

MaxHP ,500
 最大HPです。

Mass ,10
 舵の重量です。
 現状では船体の重量に統合されます。もう0でいいんじゃないかな。

RotatePower ,30
 舵を最大まで回転させたときの回転力の強さです。

RudderRotateSpeed ,70
 舵を回転させたとき、1秒でどれだけ回転できるかです。
 とりあえず70にしとけば大丈夫。

Collider ,0.0,0.0,-0.025,0.006,0.1,0.05
 舵の当たり判定です。
 最初の三つはX,Y,Z軸座標、後の三つはX,Y,Zサイズです。1=100m。

スクリュー音

スクリューが回転したときの音の設定です。
「ScrewSound」から続く一連の記述で設定を行います。

ScrewSound
    ScrewSoundName ,Default
    Volume ,1.0
    Position ,0.000,-0.056,-0.596

ScrewSoundName ,Default
 スクリューの音の名前です。
 現状では、Default以外の選択肢はありません。

Volume ,1.0
 スクリュー音の大きさです。1=100%。

Position ,0.000,-0.056,-0.596
 スクリュー音の座標です。それぞれX,Y,Z座標です。1=100m。

スクリュー

艦尾にあるスクリューの設定です。
なお、ゲーム的には設定しなくても船は進みます。
「ScrewObject」から続く一連の記述で設定を行います。

ScrewObject
    ScrewModelName ,Default
    Position ,-0.058,-0.056,-0.596
    Size ,0.2
    Reverse ,false

ScrewModelName ,Default
 スクリューの形状のタイプです。
 現状では、Default以外の選択肢はありません。

Position ,-0.058,-0.056,-0.596
 スクリューの場所です。
 X,Y座標は、スクリューの回転X軸を指定してください。

Size ,0.2
 スクリューのサイズです。
 1=100%で、100mではないことに注意してください。

Reverse ,false
 モデルを反転させるかどうかです。