100日チャレンジ『100日で50弾!』第36回、文字ショットです。一気に撃たれた弾が「か」の字に広がります。動画はこれ。
弾が虹色の尾を引くと次のようになります。
前、弾が「あ」の字を描きながら炎を残す、「ブレイズレターショット」を記事にしました。
同じように文字を残すわけですが、やり方も効果も異なります。今回の文字ショットは、やり方としては「パターン撃ち」です。
「か」の字から座標データを取得し(始まりの点は(-10, 25)、少し進んだところの点は(-5, 28)、……みたいに)、それを元に弾を発射するのです。一応「か」に見えますが、座標データを用意するのに苦労しました。具体的にはPCの画面に指を触れたまま「か」を書きながらタップ位置を検出・記録し、それをクリップボードに出力してChatGPTに渡し、座標を-1~1の範囲に直してフォーマットも整えてUnityで実行、とやりました。やや面倒だったのがタップ位置を検出する頻度の調整でした。ChatGPTに渡せるデータ数に制限がある(?らしい?)ので仕方ありません。また指をゆっくり動かせばデータ数は多く、速く動かすと少なくなってしまいますから、なるべく一定の速さで動かすようにしました。さらに、実際にそのデータで実行してみると字が歪(いびつ)だったりして、数十回やり直しました(涙)。こんなことならもう、「あ」の字のときみたいに方眼紙に字を書いて座標を目で読み取ってデータにする、とした方が速かったです。うう……(涙)。
……と思っていたら、ChatGPTが「Catmull-Rom」というのがある、と。空間内に何点か与えると、その点を通る滑らかな曲線を得られます。しかし例によってChatGPTが教えてくれるコードはそのままではうまく動かず、自分でウィキペディアなどを調べて直しました。その結果、平仮名の「か」の代表的な点を何点かコードに書き込んだだけで次の通り!
おお、これなら使えそうです!