今までの調査で理解できたものは「X1,H1,Y1」である。理解できていない「不明」のデータがなんであるかを調べていかないといけないわけです。進捗があれば、下がりきったモチベーションも少しは上昇していくだろうと思うようになりました。現段階では、「X1,H1,Y1」の値とその場所が特定できている状態です。「X1」の「1」という数字がある以上「2」があるのではないかと予測できます。それは、まだあやふやですが、「カメラの初期位置」と「カメラの移動範囲」を示している値であることが漠然とわかっています。X1,H1,Y1の値があるので、その対となるX2,H2,Y2のデータがあるはずである。それはどこなのかを調べ、その特性を理解することから始める。1.H2の特定とH1とH2の関係を調べるまずは理解しやすそうな「H1」の情報を元に「H2」特定することにした。下記は、初心のINDEX0のエリアです。H1の「222」の値を「10」に変更したら右記のようにカメラがクレーンダウンすることがわかっている。変更前のINDEX0変更後のINDEX0H1=222H1=10ケビンが奥に移動したり手前に移動してもカメラの高さに変化を感じない。ケビンが奥に移動するとカメラがクレーンアップする。ケビンが手前に移動するとカメラがクレーンダウンする。変更前は、クレーンダウンしなかったものが変更後は、クレーンダウンするようになったわけである。従って「画面の手前」の高さがH1であり、「画面の奧」の高さがH2であると推測できる。変更前は、カメラの高さは変わらないように見える。変更前は「H1とH2」の値が同一である可能性が高い。ケビンが奥に移動しても手前にしてもカメラの高さは変化がしない。H1の222の数値は10進数である。これを16進数にして4バイトで表すと「000000DE」である。00」と上位バイトと下位バイトが逆になる。この値と同じものが対で格納されている可能性があり、それを見つければよい。それはすぐに見つかった。そこで確認を取るため、今度は次の実験をした。左は、H1の値を下げ、H2は222のままとする。右は、H2の値を下げ、H1は222のままとする。H2=10ケビンが奥に移動するとカメラがクレーンアップする。ケビンが手前に移動するとカメラがクレーンダウンする。ケビンが奥に移動するとカメラがクレーンダウンする。ケビンが手前に移動するとカメラがクレーンアップする。上記の実験により、H2の特定と、H1とH2の関係が理解できた。ポイントH1やH2の値を大きくすると、カメラが上にあがるが、上げすぎると天井を突き破ってしまう。下げすぎると、今度は床を突き破ってしまう。Y2の特定とY1とY2の関係を調べる今度はY2である。Yとは、XとYの判断は難しいが、Y1は、カメラ焦点からの直線距離と考えると理解しやすいようだ。下記は、変更前のINDEX0のケビンの動きとカメラの動きである。変更前のINDEX0Y1=12682ケビンが奥に移動したり手前に移動するとカメラも一緒に前後に移動する。ケビンが画面奥に進むと、それにあわせてカメラも画面奥に移動し、ケビンが画面手前に進むと、それにあわせてカメラも画面手前に移動していることがわかる。ケビンの動きとそれを追従するカメラの移動を見比べと、ケビンよりもカメラの前後の動きがやや遅いことがわかる。ケビンが奥に進むと、カメラも奥に進むが、ケビンとの距離が離れ、ケビンが小さくなっていく。逆にケビンが手前に来ると、カメラも手前に進むが、ケビンとの距離が近づき、ケビンが大きく見えるようになっている。ケビン移動距離よりもカメラの移動距離が短いといえる。ケビンの移動距離よりもカメラの移動距離を長くした場合、ケビンが画面奥に進んだ場合に、ケビンを追い越すか、またはケビンが大きくなるといえる。Y2の場所の特定は、Y方向に対してカメラ移動がされないインデックスで、Y1の値と同じ値が設定されている場所がどこかを調べれば良いことがわかり、すぐにY2の場所を特定できた。今度はY1とY2の値の具体的な関係を調べる必要があるが、今一つY1の機能が理解しにくかった。そこでY1の値を変化をさせることによって何が起きるのか理解することが重要のようだと考えた。下記は、Y1の値を変化させた時の結果である。実験1Y1=12682Y2=13067Y1=12682→12582Y2=13067Y1を-100してみるどうなるか?結果、ケビンが手前に移動した時にカメラが変更前より後ろに引いて、ケビンとの距離が広がった。ケビンが小さくなった。Y1をもっと小さくすると手前の壁を突き抜けてしまう。実験2Y1=12682Y2=13067Y1=12682→12882Y2=13067Y1を+200してみるどうなるか?結果、ケビンが手前に移動した時にカメラが変更前よりケビンにちかづいていて、ケビンとの距離が縮まった。ケビンが大きく見えるようになった。Y1をもっと大きくするとケビンを通りこしてしまい、ケビンが画面内に収まらなくなる。奥の壁を突き抜けてしまう。Y1については理解できたような気がするが、どうしても腑に落ちない。Y1という値は、何を基準とした値なのだろうかが判らなくなったのである。はじめは、カメラ焦点を基準にしたそこからのY方向の距離(奥行き)。相対的な距離だと解釈していたのだが、どうも違うようだ。距離ではなく座標なのかもれしないそう考えるとしっくりしそうである。X,Y,Hは、座標であり、0,0,0の場所からの距離といえる。Hは、地面(つまり0)を基準にした値であると考えられる。このMAPのどこかが、X=0,Y=0の場所と考えられる。カメラの焦点もX,H,Yの形式の座標としてデータがあると考えるとしっくりする。それを先に調べるほうがこれから先の調査のためになりそうである。X2の特定をするX,Y,Hは、距離ではなく座標と考えると、しっくりする。座標0,0,0を知りたいところだが、X2の場所も特定しておく必要がある。これは、横方向には変化しないカメラアングルのINDEX0で、X1の値と同じ値が、設定されている場所特定すれば、良いと考えられる。その結果、X2の場所は特定できた。こんな感じでX1,H1,Y1,X2,H2,Y2がそれぞれ格納されていることが理解できた。