Rosso Laboratory

Rosso Laboratory

主に鉄道模型シミュレーター(VRM)などの仮想鉄道アプリを扱うブログです。またHDR写真の記事も書いています。

追跡カメラ・キルスイッチ


前回ご覧いただいたような連続する追跡地上カメラを置いた場合、カメラに何も仕込んでおかないとずっと追跡カメラに切り替わっていってしまい作業とか出来なくなるので、切り替えを一斉にオン・オフするためのPythonスクリプトを作りました。

#追跡切替カメラ
#OBJID=9464
import vrmapi
def vrmevent_9464(obj,ev,param):
    di = obj.GetDict()
    if ev == 'init':
        obj.SetTraceMode(False) #初期値は追跡オフです
        obj.SetInViewMode(False) #初期値は追跡オフです
        obj.SetTraceRange(1500) #追跡距離1~2000
        obj.SetTrainFilterMode(3)
        obj.SetTrainFilterID(3606) #追跡対象編成ID
        di['switch'] = 0
        obj.SetEventKeyDown('O',100) #追跡切替キー
    elif ev == 'broadcast':
        dummy = 1
    elif ev == 'timer':
        dummy = 1
    elif ev == 'time':
        dummy = 1
    elif ev == 'after':
        dummy = 1
    elif ev == 'frame':
        dummy = 1
    elif ev == 'catch':
        dummy = 1
    elif ev == 'active':
        dummy = 1
    elif ev == 'view':
        dummy = 1
    elif ev == 'keydown':
        if param['eventUID'] == 100:
            if di['switch'] == 0:
                obj.SetTraceMode(True)
                obj.SetInViewMode(True)
                di['switch'] = 1
            elif di['switch'] == 1:
                obj.SetTraceMode(False)
                obj.SetInViewMode(False)
                di['switch'] = 0

カメラのプロパティを弄らなくてもよい様に対象編成IDとかの指定も出来るようにしています。デフォルトの作動キーは数字のゼロではなくアルファベットのオーです。初期値は作業用に追跡オフ。一度押すと撮影用に追跡オン。もう一度押すとオフという様にトグル式になっていますが、キーでオフにするとグローバルカメラが固まる現象が起こったので作業をする時は一度も追跡オンにしない方が良いだろうと思います。

PVアクセスランキング にほんブログ村