MCAコミュニティ

MTC2 開発者向け説明書

初めに

本説明書は車両開発者向けです。

本説明書は初期設定のままのTBTK for MTCをベースとした説明書になります。

目次

MCAモデルとの相違点

MCAでは1両目と2両目の中間が車体中心ですが、MTCはどの号車も車両後方の車端部が車体中心です。

MTCはMCAよりモデルが0.2m高く表示されるため、モデルをMCAよりも0.2m低く設計する必要があります。

車体傾斜と台車回転

車体傾斜への対応方法

MTC2に対応していないモデルでは車体傾斜機能がご利用いただけません。

車体傾斜を利用する場合は、モデル全体をmtc_bodyという名前の回転と位置がすべて0のグループを作成し、そのグループ内へ移動してください。

台車回転への対応方法

MTC2に対応していないモデルでは台車機能がご利用いただけません。

台車傾斜を利用する場合は、モデルの前側の台車のグループ名をmtc_dhに、後ろ側のをmtc_db変更してください。

車体長の設定方法

ビヘイビアパック内の車両アドオンの関数ファイルを変更することで車体長の定義を変更できます。

先頭車カーブ追従位置

curve.mcfunctionファイルの2行目の17.5という値が先頭車のカーブ追従距離(m)です。

後方の車端部から前方の台車までの距離に設定してください。対応する追従距離は4m以上です。

車体長

tick10.mcfunctionの8行目とtraceAdj.mcfunctionの11行目の20という値が車体長(m)です。

車体長の長さに設定してください。

加速度の設定方法

ビヘイビアパック内のinitTrain.mcfunctionを変更することで加速度を変更できます。

この関数ファイル内のスコアボードの値は下記のパラメータを表しています。

  • mtc_accN:ニュートラル時の加速度(km/h/sの500倍,マイナスの値)
  • mtc_accDA:加速ノッチ1段当たりの加速度(km/h/sの500倍)
  • mtc_accDB:減速ノッチ1段当たりの減速度(km/h/sの500倍)
  • 計算方法

    mtc_accDA = ( [加速度(km/h/s)] × 500 - mtc_accN ) ÷ mtc_notAM

    mtc_accDB = ( [非常減速度(km/h/s)] × 500 + mtc_accN ) ÷ mtc_notBM

    ※数値の正負に注意してください

    ※mtc_notAM、mtc_notBMの値もこの関数ファイル内のスコアボードの値です。

    計算例

    加速度を2.0km/h/sに変更する

    [加速度(km/h/s)]=2.0,mtc_accN=-100,mtc_notAM=4なので、

    mtc_accDA = ( 2.0 × 500 - (-100) ) ÷ 4 = 275

    となり、275に設定すれば良いことになります。

    定格速度の設定方法

    ビヘイビアパック内のinitTrain.mcfunctionを変更することで定格速度を変更できます。

    定格速度は、この速度を超過すると徐々に加速度が低下していく速度です。

    この関数ファイル内のスコアボードの値は下記のパラメータを表しています。

  • mtc_Rspd:定格速度(km/hの2000倍)
  • ※定格速度を設定しない場合はmtc_Rspdの値を0にしてください。

    アニメーション

    アニメーションは以下の物が実行されます。

  • open_left:左ドア開
  • open_right:右ドア開
  • close_left:左ドア閉
  • close_right:右ドア閉
  • mode〇:幕のモード〇
  • wiper:降水時
  • revinv:進行方向反転時
  • ani〇:カスタムアニメーション〇
  • ani〇e:カスタムアニメーション〇の終了時アニメーション
  • v_〇:時速〇km/h(飛行機の場合はkt)
  • tasc_on:定速機能・自動走行機能が設定されている場合のアニメーション
  • ats_〇:速度制限が〇[km/h]の場合のアニメーション
  • ato_〇:定速機能・自動走行機能の設定速度が〇[km/h]の場合のアニメーション
  • atc_〇:サブメーター設定が〇[km/h]の場合のアニメーション
  • e_〇:飛行機用・エンジン出力[%]
  • a_〇:飛行機用・高度[feet]
  • h_〇:飛行機用・対地高さ[feet]
  • d_〇:飛行機用・方位[deg]
  • p_〇:飛行機用・ピッチ[deg]
  • r_〇:飛行機用・ロール[deg]
  • ※v_〇、ats_〇、ato_〇、atc_〇は、アニメーションを1km/h・5km/h・10km/h(飛行機の場合はkt)間隔で用意することが可能です。

    ※d_〇は、アニメーションを1°・2°・5°間隔で用意することが可能です。

    ※a_〇、h_〇は、アニメーションを10feet・50feet・100feet・500feet間隔で用意することが可能です。

    カスタムアニメーション

    カスタムアニメーションはアニメーション開始時にani〇という名前のアニメーションが、終了時にani〇eという名前のアニメーションが実行されます。

    また、ビヘイビアパック内の[functions/mtc〇〇〇〇]内に[ani]という名前のフォルダを作成し、その中に[ani〇.mcfunction]という名前の関数ファイルを導入すると、アニメーション実行時にそのコマンドが実行されます。

    また、[ani〇e.mcfunction]という名前の関数ファイルを導入すると、アニメーション終了時にそのコマンドが実行されます。

    幕・カスタムアニメーション・ループ音声・サウンドの表示名について

    これらの切り替えメニューにおいて表示名を変更することができます。

    リソースパックのtextsフォルダ内のja_JP.langを編集します。

    その中に

    mtc:mtc〇〇〇〇.Mode△=表示名 #
    mtc:mtc〇〇〇〇.Ani△=表示名 #
    mtc:mtc〇〇〇〇.Sound△=表示名 #
    mtc:mtc〇〇〇〇.Horn△=表示名 #
    という行があると、それに合わせた表示がされます。

    カスタムアニメーション・ループ音声・サウンドの最大数について

    カスタムアニメーションの追加

    カスタムアニメーションを追加する際は本説明書のアニメーションの項目に従うようにアニメーションを定義した上で、ビヘイビアパック内の[functions/mtc〇〇〇〇/initTrain.mcfunction]ファイル内に

    scoreboard players set @s mtc_max_ani 〇
    という行があるので〇部分を搭載したいカスタムアニメーションの数にしてください。 この行が無い場合はこの行を他のscoreboardコマンドに続くように追加してください。

    ループ音声の追加

    ループ音声を追加する際はリソースパック内の[sounds/sound_definitions.json]ファイルにmtc〇〇〇〇_sound△(△はサウンド番号)となるように音声を定義した上で、ビヘイビアパック内の[functions/mtc〇〇〇〇/initTrain.mcfunction]内に

    scoreboard players set @s mtc_max_sound 〇
    という行があるので〇部分を搭載したいループ音声の数にしてください。 この行が無い場合はこの行を他のscoreboardコマンドに続くように追加してください。

    サウンドの追加

    サウンドを追加する際はリソースパック内の[sounds/sound_definitions.json]ファイルにmtc0507〇〇〇〇_horn△(△はサウンド番号)となるように音声を定義した上で、ビヘイビアパック内の[functions/mtc〇〇〇〇/initTrain.mcfunction]内に

    scoreboard players set @s mtc_max_horn 〇
    という行があるので〇部分を搭載したいループ音声の数にしてください。 この行が無い場合はこの行を他のscoreboardコマンドに続くように追加してください。

    走行音の変更

    リソースパック内のsounds/[車両ID]/runフォルダ内に

    [a 〇.ogg]

    [b 〇.ogg]

    [n 〇.ogg](オプション,ない場合あり)

    というファイルがあります。このファイルを任意の音源に差し替えると変更できます。

    走行音の推奨は0.6~0.8秒程度です。走行音を中央0.5秒をそのままにその外側をフェードイン、フェードアウトするとより自然な音になります。

    MTC音源分割器を使用して走行音を分割することをお勧めします。

    〇は〇km/hの音です。

    SIV音の変更

    リソースパック内のsounds/[車両ID]フォルダ内に

    loop.ogg

    というファイルがあります。このファイルを任意の音源に差し替えると変更できます。

    CP音の変更

    リソースパック内のsounds/[車両ID]フォルダ内に

    sound1.ogg

    というファイルがあります。このファイルを任意の音源に差し替えると変更できます。

    ドア開閉音の変更

    リソースパック内のsounds/[車両ID]フォルダ内に

    door_close.ogg

    door_open.ogg

    というファイルがあります。このファイルを任意の音源に差し替えると変更できます。

    ブレーキ緩解音の変更

    リソースパック内のsounds/[車両ID]フォルダ内に

    break1.ogg

    break2.ogg

    というファイルがあります。1は停止状態からの緩解音、2は走行中の緩解音です。

    このファイルを任意の音源に差し替えると変更できます。

    最高速度の設定方法

    120km/h以下に設定する場合

    ビヘイビアパック内のinitTrain.mcfunctionの以下のスコアボード値を変更してください。

    mtc_spdMax:最高速度(km/hの2000倍)

    例えば最高速度を60km/hにする場合はmtc_spdMaxの値を120000に設定すると良いです。

    余計な速度計アニメーションは削除して構いません。

    120km/hを超過する設定の場合

    速度制限の変更

    ビヘイビアパック内のinitTrain.mcfunctionの以下のスコアボード値を変更してください。

    mtc_spdMax:最高速度(km/hの2000倍)

    例えば最高速度を60km/hにする場合はmtc_spdMaxの値を120000に設定すると良いです。

    ※最高速度の上限はありませんが、負荷に注意してください。

    ※旧版の操作アイテムを使用する場合は最高速度が130km/hに制限されます

    アニメーション・走行音を追加する場合

    1.リソースパックのアニメーションを編集

    リソースパック内のanimationsのファイル内に、

  • animation.[車両ID]_1.V_〇
  • というアニメーションが0~120まで存在します。これを追加する速度分追記してください。

    2.走行音の追加

    リソースパック内のsounds/[車両ID]/runのフォルダ内に、

  • [a 〇.ogg]
  • [b 〇.ogg]
  • [n 〇.ogg]
  • というファイルが1~120まで存在します。これを追加する速度分追加してください。

    aは力行時,bは減速時,nは惰性時の走行音です

    〇が時速に対応しています。

    ノッチ段数の設定方法

    ※ノッチ段数が変わると加速度・減速度も変わるので、適宜変更してください。

    力行4段、制動8段(含むEB)以下に設定する場合

    ビヘイビアパック内のinitTrain.mcfunctionの以下のスコアボード値を変更してください。

    mtc_notAM:力行段数
    mtc_notBM:制動段数(含むEB,マイナスの値)

    例えば力行を3段にする場合はmtc_notAMの値を3に設定すると良いです。

    余計なマスコンアニメーションは削除して構いません。

    力行4段、制動8段(含むEB)を超過する設定の場合

    ノッチ段数制限の変更

    ビヘイビアパック内のinitTrain.mcfunctionの以下のスコアボード値を変更してください。

    mtc_notAM:力行段数
    mtc_notBM:制動段数(含むEB,マイナスの値)

    例えば力行を3段にする場合はmtc_notAMの値を3に設定すると良いです。

    マスコンのアニメーション追加する場合

    ※非常に複雑ですが,以下で指示されてる箇所のP4~B8(EB)分を拡張することが全体の流れです。

    1.リソースパックのアニメーションを編集

    リソースパック内のanimationsのファイル内に、

  • animation.[車両ID]_1.Mas_〇
  • というアニメーションがP4~B8(EB)まで存在します。これを追加する段数分追記してください。

    2.アニメーション定義の追加

    リソースパック内のentityのフォルダ内のファイルに、

  • "mas_〇": "animation.[車両ID]_1.Mas_〇"
  • という要素がP4~B8(EB)まで存在します。これを追加する段数分追加してください。

    ファイルは車両分あるのですべて変更してください。

    方向幕の種類の設定方法

    8種類以下に設定する場合

    ビヘイビアパック内のinitTrain.mcfunctionの以下のスコアボード値を変更してください。

    mtc_makuM:幕の数

    余計な速度計アニメーションは削除して構いません。

    8種類を超過する設定の場合

    ※非常に複雑ですが,以下で指示されてる箇所の8種あるところを拡張することが全体の流れです。

    1.幕数制限の変更

    ビヘイビアパック内のinitTrain.mcfunctionの以下のスコアボード値を変更してください。

    mtc_makuM:幕の数

    2.リソースパックのアニメーションコントローラを編集

    リソースパック内のanimation_controllersのファイル内に、

  • "mode〇": "query.mark_variant==〇"
  • という要素が8個存在します。これを追加する幕数分追記してください。

    3.リソースパックのアニメーションを編集

    リソースパック内のanimationsのファイル内に、

  • animation.[車両ID]_1.mode〇
  • というアニメーションが8個存在します。これを追加する幕数分追記してください。

    4.アニメーション定義の追加

    リソースパック内のentityのフォルダ内のファイルに、

  • "mode〇": "animation.mcsample1_1.mode〇"
  • という要素が8個存在します。これを追加する幕数分追加してください。

    ファイルは車両分あるのですべて変更してください。

    5.コンポーネントとイベントの追加

    ビヘイビアパック内のentitiesのフォルダ内のファイルに、

    "cp_mode〇": {
    "minecraft:mark_variant": {
    "value": 〇
    }
    },
    "mode〇": {
    "remove": {
    "component_groups": []
    },
    "add": {
    "component_groups": [
    "cp_mode〇",
    "cp_seat_[up/dw]"
    ]
    }
    },

    という2種類の要素ががそれぞれ8個存在します。これを追加する幕数分追加してください。

    後者の[up/dw]は、modeが奇数ではup、偶数ではdwになります。

    ファイルは車両分あるのですべて変更してください。

    6.関数ファイルの変更

    ビヘイビアパック内のfunctions/[車両ID]のフォルダ内のファイルに、mode.mcfunctionという関数ファイルがあります。

    これを開き,内部に

    execute if score @s mtc_maku matches 〇 as @e[scores={mtc_calc1=0},family=mtc_body] run event entity @s mode△

    というコマンドが8個並んでいます。これを追加する幕数分追加してください。

    スコアボード値は0スタート、モード番号は1スタートであることに注意してください。