第11章 ツールを作ろうか


現時点で特定できた情報は、下記である。




まだまだ不明なデータが多いが、この情報だけでもかなりのカメラ動作に自由度が増す。
今まで見たことがないダイナミックな動きで、見たこともないカメラアングルのアウトブレイクが楽しめるのである。
決して簡単ではないが、今までの調査によって、その特性と設定方法については、かなり学べた。

例えばこんな感じのこともできた。




この動画(GIFだが)は、再生時間が短いが、実はかなり苦労して設定をしている。
3つのINDEXのX1,H1,Y1,X2,H2,Y2,焦点X,H,Yをそれぞれ変更しているが、それぞれ値の増減加減の調整の感覚がつかめず、微調整に戸惑うのである。

画面を見て「どっちがX?こっちがY?」で戸惑い、さらにその値を増やしすぎたり減らしすぎたりすると、途端に壁を突き抜けてとんでもないところからそれを映すのである。

また、X1,H1,Y1の値は、下記ツールで設定できるのだが、



X2,H2,Y2および焦点X,H,Yは、手打ちでバイナリエディタで設定しないといけない。
これが面倒なのである。
また、上記は死守のホールであるが、カメラのINDEX数は21である。
つまり、21種類のカメラワークがあり、自分が変更したい場所のINDEXがどれなのかは、とりあえずどれかを変更してみて、変わったところを確認して、どこのアングルがどのINDEXかを特定していかなくてはならない。
これらの手間を考えた場合、少なくとも手打ちでバイナリエディターを編集するより、上記のツールの発展型を作ったほうが後々のためでもある。


なにで作ろうか?



私はWindowsソフトなど作ったことがない。


VisialCやC++やVisialBasic,Javaなどちんぷんかんぷんです。
どうやったらソフトなど作れるのかはわかりません。
辛うじてできそうなのはExcelのVB Scriptです。
仕事の関係でそれならば、ある程度のものは作ったことはあります。

またデータベースとしてシナリオ単位でRDTファイルをExcelのシートに一覧を作成してあるので、やはりExcelが都合が良いわけです。

今現在、Excelシートに次のような形式でRDTファイルの一覧がすでに作成されています。



このシートをデータベースにするためには、RDTファイル内にあるカメラのINDEX数を全て洗い出し、一覧に追加する必要があります。
このINDEX数によって、カメラの情報が格納されているアドレスが求まるからです。
恐らくRDTファイル内のどこかにINDEX数が格納されていると思うのですが、それがどこなのかはわからないので、素直に〇〇さんが作ったツールからそのINDEX数を書き写したほうが良さそうです。
時間がかかりましたが、RDTファイルを一つ一つ確認し、そのINDEX数をこのシートに追加しました。



これをベースにインターフェースの仕様を考えます。
まぁデザイン重視よりも機能重視で考えて、まずはこんな感じのものを作ろうかと…




大雑把な仕様で実現できるかは置いといて、こんなことを考えた。


表示
形式
機能
初期状態
@
FILE1へ
FILE2へ
トグルボタン
FILE1とFILE2の切り替えボタン。
Aのシナリオ選択が切り替わる。
活性
FILE1
A
シナリオ選択
リストボックス
@で指定されたシナリオがリスト表示される。
シナリオを選ぶことができる。
選ぶとBが活性化する。
活性
B
エリア選択
リストボックス
Aで選ばれたシナリオのエリアをリスト表示する。
エリアを選ぶとCのRDTファイル名とDの総INDEX数が表示される。
活性
C
ファイル名
テキストボックス
AとBで選ばれたエリアに対するRDTファイル名を表示する。
活性
入力禁止
D
総INDEX数
ラベル
AとBで選ばれたエリアに対するRDTファイル内のカメラINDEX数を表示する。
活性
E
RDT読み込み
ボタン
AとBで選ばれたRDTファイルを実際にバイナリ形式でデータとして取り込む。(ファイルを選ぶ)
指定されたファイル名が異なる場合は、警告表示をして再指定するよう促す。
正常に読めた場合は、HIJKが活性化する。
活性
F
キャンセル
ボタン
確認の問い合わせボックスを表示し、指定されたシナリオおよびエリアおよび変更などもキャンセルして初期状態に戻す。
活性
G
終了
ボタン
確認の問い合わせボックスを表示し、変更されていても書き換えせずにツールを終了する。
活性
H
INDEX選択
リストボックス
Eで読まれたRDTのカメラINDEXをリスト表示し、選ばれたINDEXに対して、Iの現在値(変更前)の焦点,X1,Y1,H1,X2,Y2,H2の値を表示する。
変更されていない場合は、Jにもその値がコピーされる。
変更されているINDEXの場合は、Jは変更された値を表示する。
非活性
I
現在値
フレーム内
Hで選択されたINDEXの現在値が表示される。
非活性
J
変更値
フレーム内
Iの現在値に対して、変更することができる。
非活性
KL
座標描画
ボタン
IとJの座標をExcelのグラフ表示機能を利用して座標点を描画し、カメラがどこからどこへ移動し、どこを見ているかをビジュアル的に表示する。
非活性
M
やり直し
ボタン
Jで変更した値をIの現在値に戻す。
非活性
N
RDT書き込み
ボタン
Eで読んだRDTファイルに対して、変更された値を書き換える。
非活性


ふむ…とりあえずは、こんな感じでツールを作り、また謎が解けていけば、少しづつツールをパワーアップしていけばいいだろう。
やってみるか…


などと考え、ちまちまとExcelのVB-Scriptを調べながら組み込んでいました。

そんな2017年12月19日。

急転直下の出来事が‥‥



!?