Godot 音シュー05「キューブ、置く。俺、進む。 1/2」
体ば、重び。そんな中、30分だけ考えて「音シュー」ちょっと進めてみた。とりあえず、リズムに合わせてトンネルの中を進む。最初はキューブの方を自分に向けて飛ばそうと考えてたけど、キューブはトンネルの中に(直線上に)ズラーって置いて、自分(カメラ)がその中を進めばいいじゃんと気が付いた。生成するんじゃなくて、3D空間上に全キューブをただ置くだけ。力技。
1ビートは2メートル
キューブを置くんだが、何メートル間隔に置くのがいいのか分からないので、今回は、適当に 2メートルとする。キューブの大きさは 1辺60cm。これも適当。
だが普通にベタに置いちゃうと、今回使用する曲のBPMは113なので、1分やるだけで113個地道に配置しないとイケナイ。ちょっと1個ズレたら、もう地獄。(ちなみに「なんでしょう? by KK」は5分もあるので、キリのいい所で途中終了させないとちょっと辛い感じだな。。。)
というわけで、1小節毎にコピペ出来るようにしてみた。ほんの少しだが、こっちの方が楽出来るだろ。
3Dビューで真上から見た感じだと、こう。
普通に置いてあるだけのようにみえるが、シーンパネルでは、
こんな感じに1小節毎に「Spatial」ノードでカタマリを作って [Ctrl] + [D] で増やせるようにした。今回の曲は、1小節4ビート。
1ビートは2メートル間隔なんで、1小節目は0mの所からスタートさせ、2小節目は8mの所から、3なら16だ。一般化させるとn小節は、"(n - 1) * 8"mの所に置けばイイ。確認するのも修正するのも、ちょっと楽なはず。
ビートの部分は、いつもの「スタティックボディ魔法の組み合わせ」で出来ている。
秒速何メートルで進めばイイ?
ゲームで使うスピードといえば、当然秒速だよね。で、キューブは2m間隔。つまり、ビート間隔が2mの空間を、自分(カメラ)は秒速何メートルで進めば、リズムに合った前進が出来るか?
これすげー悩んだんだけど、のりまき巻き食べてたらなんか気が付いた。実は、めちゃくちゃ簡単だった。算数の範囲。
BPMが113じゃん。これは60秒(1分)で113ビートあるって事。1ビートは2m。つまり、60秒で226m。(226mとは、"BPM * 2" のことな。) これ、60で割れば、秒速になるべ。
結局、秒速は"BPM * 2 / 60" = "BPM / 30"で求められるって事だ。出たな。のりまきパワー。
では、スクリプトしてカメラを動かそう。
カメラ側の準備とスクリプト
と思ったが、やっぱり体が重い。明日にする。
一応動いてるんだけど、これで合ってるかどうか。。。