VRMスクリプトを研究したい人に対しては、「この「減少メソッド」が典型的な「センサーチェーン構造」の使用例だよ」と伝えておくだけにしておきます。
当然ながら、これはcVssへの導入予定機能のテストです。閉塞運転制御のためには、コレ以外に、
・レイアウト スクリプト(VRM4のみ)
・ATS-P(5灯式閉塞編成動作)センサー スクリプト
・5灯式信号機 スクリプト
・cVss編成 改
が必要ですので無理して使わないように。そのうち何処かでサンプルレイアウトを公開するつもりなので。
//----------------------------------------------------------------------
//閉塞構築センサー スクリプト
//----------------------------------------------------------------------
//変数宣言
//一般変数宣言
Var VarStatus
Var VarBlockadeZoneStatus
//(VRM5/ONLINE)
//Var VarBlockadeZoneNo
//オブジェクト変数宣言
VarTrain ObjTrain
VarSensor ObjThisSensor
VarSensor ObjPreviousSensor
//(VRM4)
VarLayout ObjLayout
//イベントID変数宣言
Var SensorEventID
//----------------------------------------------------------------------
//ユーザー設定項目
//使用信号機-1(5灯式:4、4灯式:3、3灯式:2、2灯式:1)
set VarBlockadeZoneStatus 4
//共通ステータス番号(VRM5/ONLINE)
//set VarBlockadeZoneNo 1
//----------------------------------------------------------------------
//スタート
//レイアウト取得(VRM4)
getlayout ObjLayout
//自分取得
get ObjThisSensor this
//センサーが編成を発見したらメソッドへ
SetEventSensor MethodSensorEvent SensorEventID
//メソッド
//閉塞メソッド
BeginFunc MethodSensorEvent
GetSenseTrain ObjTrain
//(VRM4)
mov ObjLayout VarBlockadeZone01 this VarBlockadeZoneStatus
//(VRM5/ONLINE)
//SetCommonStatus VarBlockadeZoneNo VarBlockadeZoneStatus
mov this ObjPreviousSensor ObjTrain ObjBZoneSensor
ifeq VarBlockadeZoneStatus 4
call ObjPreviousSensor Method4to3
endif
ifeq VarBlockadeZoneStatus 3
call ObjPreviousSensor Method3to2
endif
ifeq VarBlockadeZoneStatus 2
call ObjPreviousSensor Method2to1
endif
ifeq VarBlockadeZoneStatus 1
call ObjPreviousSensor Method1to0
endif
mov ObjTrain ObjBZoneSensor this ObjThisSensor
EndFunc
//減少メソッド
BeginFunc Method4to3
//(VRM4)
mov this VarStatus ObjLayout VarBlockadeZone01
//(VRM5/ONLINE)
//GetCommonStatus VarBlockadeZoneNo VarStatus
ifeq VarStatus 4
//(VRM4)
set ObjLayout VarBlockadeZone01 3
//(VRM5/ONLINE)
//SetCommonStatus VarBlockadeZoneNo 3
call ObjPreviousSensor Method3to2
endif
EndFunc
BeginFunc Method3to2
//(VRM4)
mov this VarStatus ObjLayout VarBlockadeZone01
//(VRM5/ONLINE)
//GetCommonStatus VarBlockadeZoneNo VarStatus
ifeq VarStatus 3
//(VRM4)
set ObjLayout VarBlockadeZone01 2
//(VRM5/ONLINE)
//SetCommonStatus VarBlockadeZoneNo 2
call ObjPreviousSensor Method2to1
endif
EndFunc
BeginFunc Method2to1
//(VRM4)
mov this VarStatus ObjLayout VarBlockadeZone01
//(VRM5/ONLINE)
//GetCommonStatus VarBlockadeZoneNo VarStatus
ifeq VarStatus 2
//(VRM4)
set ObjLayout VarBlockadeZone01 1
//(VRM5/ONLINE)
//SetCommonStatus VarBlockadeZoneNo 1
call ObjPreviousSensor Method1to0
endif
EndFunc
BeginFunc Method1to0
//(VRM4)
mov this VarStatus ObjLayout VarBlockadeZone01
//(VRM5/ONLINE)
//GetCommonStatus VarBlockadeZoneNo VarStatus
ifeq VarStatus 1
//(VRM4)
set ObjLayout VarBlockadeZone01 0
//(VRM5/ONLINE)
//SetCommonStatus VarBlockadeZoneNo 0
endif
EndFunc
---*---*---*---
・・・要するに、このスクリプトを使いまわす上で、「赤の部分全部」と「黄色の部分一箇所」を直すのではどちらが楽ですか?という、あまりにも馬鹿馬鹿しい比較。
共通ステータスによって「VRMのオブジェクト間通信は次の時代に移行した」というだけのお話。
最新の画像もっと見る
最近の「VRMスクリプト」カテゴリーもっと見る
最近の記事
カテゴリー
- 重要記事(18)
- HDR写真(91)
- VRM-NX(243)
- NX-TOMIX(121)
- VRM入門(82)
- VRM動画(75)
- VRM自動センサー(10)
- 天球テクスチャー(62)
- 編成(115)
- Pythonスクリプト(93)
- VRMoNLINE(25)
- VRMノンジャンル(187)
- VRMの日(22)
- 鉄道模型レイアウター(28)
- Trainz(181)
- A9(10)
- 鉄道模型(111)
- VRM4CV(69)
- cVss(20)
- VRM-Nietzsche(28)
- めっけ(8)
- 無理矢理ストラクチャ(29)
- VRM4GIS計画(仮)(12)
- VRM用技術(25)
- VRMスクリプト(21)
- 参考写真・参考書籍(26)
- 3DCG(92)
- サウンド(5)
- 単なる雑談(79)
- ノンジャンル(9)
- 双極性障害(2)
- 生活(2)
- グルメ(0)
バックナンバー
2017年
人気記事