目次 | 前の話題 | 次の話題

名古屋シーナリの花火(その3):マクロの手直し

1997年9月9日

今日は平成9年9月9日だ。別に数字か揃ったからって、何があるというわけではないのだが、ちょっと嬉しいものである。そういや、平成7年7月7日は記念切符を買った記憶がある。でももうどこかにやってしまった。

さて、今回は花火作成の最終回だ。前回までの説明で、テクスチャを作ることまでは話した。今回はマクロを手直しすることにする。

浜田氏によるマクロは Airportというシーナリ作成用ツールで使用するためのものだ。Airport は Windows 版が出ており、マウスを使ってヴィジュアルにシーナリを作ることができるので、人気が高い。しかもフリーだ。 Airport は内部では SCASM というシーナリアセンブラを使っている。

実は私は Airport は使わず、SCASM を直に使っている。SCASM を直に使う場合は、ビジュアルにシーナリを作ることはできない。テキストエディタを使ってばきばきデータを書き、コンパイルしてシーナリを作成する。だから、およそ初心者向けではない。最初に手をつけるのなら Airport だろう。

にも関らず、SCASM を直に使っているのはなぜか。それは キーボードからマウスに手を移動させるのが面倒だからだ。というのはちょっと嘘が入っている(^^) が、あながち間違ってもいない。普段は UNIX を使っているため、ウィンドウズ用アプリを使うとマウスに頻繁に手を伸ばさなければならないので、結構うざったいと感じるのだ。

もちろん、これ以外にも理由があって、私がシーナリ作成を始めたころは Airport の Windows 版がなかったとか、最初は設定ファイルが一部フランス語だったとか、マクロを書こうと思ったら結局 SCASM を覚えなければならない、といった理由がある。でも最大の理由は名古屋シーナリを全部 SCASM で作ってしまったので、今から Airport に移行できない、ということだったりする。

話を元に戻そう。浜田氏のマクロは Airport 用のマクロで、SCASM で書いてある。これを名古屋シーナリ用にちょっと書き直した。ここでは、マクロの細かい内容については述べないことにするが、詳しく知りたいひとは、名古屋シーナリに入っている fw*.scm というファイルを見て欲しい。

まずは、花火の打ちあがる高さと大きさの調整である。まずは実際の花火の大きさを調べることにした。今回は日本の花火というホームページに行って調べた。ここは花火についての情報が満載されていておすすめ。このページ内に花火玉の大きさのいろいろというページがあって、ここに花火の打ちあがる高さ、花火が開いたときの直径などが書いてある。

花火玉のなかで一番大きいのは3尺玉である。これは 600m あがり、直径 500m も開くそうだ。でかい。早速、名古屋シーナリでは3尺玉をどかどか上げることにした。非現実的なのもいいところだが、あまり小さいと遠くからよく見えないし、それに FS の中ならいくら打ち上げても「ただ」だもんね。あとは、1尺玉と8号玉をちょっと早めの周期で数発上げることにした。

花火のアニメーションはランニング・ビット・タイマというものを使って表現する。詳しい説明は省くが、これを使うと1周期が6秒の16コマのアニメーションを作ることができる。これを使って、3尺玉は6秒周期(16コマ)、1尺玉は3秒周期(8コマ x 2)、8尺玉は2秒周期(5コマ x 2 + 6コマ)にした。あと、自然に見えるように、それぞれの花火の開くタイミングを微妙にずらした。なお、どの花火玉も使っている画像は全部一緒で、大きさだけを伸縮して使っている。

ランニング・ビット・タイマを使うときはビット演算という計算が必要になる。私は中学時代からビット演算をばきばき使っていた(当時はこれを使わないと速いプログラムが作れなかった)ので、全然平気なのだが、ビット演算を初めて使う人には鬼門らしい。一度講座をやってみるのも面白いかもしれない。

そうそう、一つ説明を忘れていた。単なる写真でしかない平板状のテクスチャをどうやって球形に見せるのが、疑問を持たれたかたもいると思う。実は今回作った花火は球形ではない。平板状のテクスチャ2枚を、真上から見たときに十字型になるように組み合わせてあるだけである。こうすると真上と真下以外のどの方向から見てもそれなりに丸く見えるのだ(近くによるとアラがめだつが)。これはいろいろと応用が効く方法で、Airport で作った樹木なんかは全部このタイプだと思う。

あとは、マクロのシェイプアップなどを済ませてほぼ完成であるが、もう一つ重要なことが残っている。花火の打ち上げ地点を決めなければならない。

中部地方の花火というと、長良川全国花火大会や、豊田おいでんまつり花火大会が有名である。が、名古屋シーナリの中に入れるにはちと距離が離れすぎている。名古屋シーナリに入れるとなると、全国選抜名古屋大花火か名古屋みなと祭であろう。全国選抜名古屋大花火は矢田川の川岸で打ち上げるもので、名古屋空港のすぐそばである。この花火マクロでは毎夜花火があがるので、着陸時のことを考えるとちょっとうっとうしいかもしれない。名古屋港の花火は、この前観に行けなくてちょっと残念だったということもあったので、こちらに決定することにした。

それと、前に書いたが花火の画像は魔法株式会社が権利を持っているので、画像の使用許可願いのメールを出した。すると、翌日すぐに返事が来て、快諾して頂いた。感謝。

できた花火を名古屋シーナリに組み込み、ドキュメントを書いて、Ver1.5 として公開。 これで一丁上がりである。スクリーンショットがあるので、ご覧頂きたい。

これで花火マクロの話はおしまい。次はなに書こうかな、、、

そうそう、今年は花火は結局1回しか見に行けなかった。寮のすぐ近くの手賀沼の花火大会である。例によって一番前で観たのだが、正直言ってあまり大したことはなかった。何発くらいあがったのかな。それと、この時は一人で見に行ったのだが、回りはアベックか友達どうしか家族連ればっかりで、浮いているような気がしてしょうがなかった。一人だと面白みも半減である。

教訓:花火は2人以上で行きましょう

今回の内容についてアンケートにお答えください。
とても面白い まあまあ面白い 普通 あまり面白くない 全然駄目


目次 | 前の話題 | 次の話題