Uncouple 変数1 編成オブジェクト変数2
変数1で指定する車両番号(n番目)から切り離します。車両番号は、進行方向から0と数えます。0番目を切り離すことはできません。たとえば、進行方向の最初の車両(0番目)が機関車で、1番目以降に貨車が連結されている場合は、
set a, 1
Uncouple a b
とします。
※列車編成での号車番号は通常1から数えます。車両番号は、数学的に処理が容易な0から数えます。
号車番号 = 車両番号 + 1
編成オブジェクト変数2で新しく生成された編成を受け取ります。切り離しに失敗した場合は、この変数に0がセットされます。(レイアウトに作成したグローバル変数に保存すると、広範囲で参照できるだけでなく分割の有無を判断するワークとしても利用でき便利です。)
■オブジェクト名
新しい編成には、もとの編成のオブジェクト名にアンダーバー+数字が追加されます。数字は生成順に1からつけられます。
元編成 Train5 新編成 Train5_1
※新しく生成されたオブジェクトの名前でオブジェクトを指定しないようにスクリプトを記述してください。新しい編成オブジェクトを参照するときは、”編成オブジェクト変数2″に保存されたオブジェクト参照を利用してください。
■スクリプトの複製
編成オブジェクトのスクリプトは、もとの編成オブジェクトから複製されます。このとき、イベント、変数も複製されます。複製されたスクリプトともとのスクリプトは、それぞれ異なるメモリーに保存されるため、複製後に同じ名前の変数でもことなる領域をアクセスしています。
※複製されたスクリプトは実行停止状態になります。ローカル変数は、実行が停止されるため消去されます。
車両オブジェクトは、移動します。このため、スクリプトは複製されず、新しい編成に移動します。変数、イベントは、維持されます。
この違いですが、次のようになります。
編成"Train10" : スクリプト"Script10"
分割すると
編成"Train10" : スクリプト"Script10"
編成"Train10_1" : スクリプト"Script10'"
となります。
Script10をもとにScript10’が複製されます。
車両のスクリプトは、車両オブジェクトのメンバーになるため車両と一緒に移動します。編成と異なり、複製はされません。
■連結、分割時のリソース
連結:停止している編成が継続します。移動して連結する側の編成は消滅するため、停止している側の編成のリソースを参照するようになります。
分割:新しい編成にもとの編成に組み込まれていたリソースが複製されます。結果、同じデータの参照を継続できます。
※VRM4は、リソースについて動作不定です。VRM4レイアウトを読み込んだ場合は、スクリプトの調整が必要な場合があります。
■解放後の位置
この命令を実行した編成は、前方に5mm移動します。このとき、十分に移動できるスペースがない場合は、解放は実行されません。解放を行う場合は、スペースが十分にある場所で行ってください。