名前がしっくりこなかったので3回ぐらいリネームしてます。(苦笑)
一言で言うと「ビュワーのシステムカメラ位置を自動セーブ&ロードする」スクリプトで、中断セーブみたいな感じで毎回のカメラ移動を省いてくれる機能です。
ここからはPythonなお話。
今回から公開スクリプトはスクリプト同士の重複を避けるように2つのポイントで気を付けています。
1つ目はDict変数の重複回避。
グローバル関数で定義しなくても値を保持できるオブジェクトのDict関数ですが、
他の全スクリプトと共有されるオブジェクトのため、Keyが重複して正しく動かなくなる可能性があります。
Dict['a']等の他でも使われそうなKey名を避けるため、少々名前は長くなりますが頭文字を付与してなるべく重複しないKey名を付けるように考えています。
また、「システムカメラ記憶くん」でも使用していますが、レイアウトファイルに紐付く外部ファイル名でそのままレイアウトファイル名を使ってしまうと色々問題になりそうなため、こちらもファイル名に適当な固定文字を付与して重複回避をしています。
2つ目はイベントのユーザーID定義です。
「SetEventTimer」等のイベント定義は既存イベントがある場合、特定条件でイベントを上書きしてしまうリスクがあります。
そのイベント重複を防ぐために一部のイベントにユーザーIDを定義して区別するようにしています。
今のところ、対象は「SetEventTimer」「SetEventTime」「SetEventAfter」あたりに限定し、「SetEventFrame」「SetEventKeyDown」は(特に根拠ないですが)上書きされて悪化するリスクが低そうなのでそのままにしています。(SetEventFrameはフレーム毎に条件分岐入れたくないなーという気持ちもあります)
イベントのユーザーIDは機能ごとに一意(ユニーク)である必要があるため、Caldia公開スクリプトには「1100001~1100100」あたりのUIDを割り当てようと考えています。
上記2点は「
ベンチマーク」「
パワーユニットくん」にも反映しています。