
せっかく作成した花火も空中にいつまでも静止したままでは、いただけません。大空で開き消えていく様を忠実に再現できずとも、花火に変化をつける、せめて花火が開いた状態と消えた状態とを交互に入れ替えることができれば、気持ち少しはましかもしれません。
【変化させる】
かつて飛行機にランプをもうけ点滅させてみた経験がいかせそうです。そのときは2つのランプを交互に点滅させるものでした。そこでここでは花火の各段階ごとに、花火の玉がのぼっていく様子、開いた瞬間、広がっていくところのパーツをもうけて、順番にそれらを点滅させることで、花火に変化を与えることにしました。
かつて飛行機にランプをもうけ点滅させてみた経験がいかせそうです。そのときは2つのランプを交互に点滅させるものでした。そこでここでは花火の各段階ごとに、花火の玉がのぼっていく様子、開いた瞬間、広がっていくところのパーツをもうけて、順番にそれらを点滅させることで、花火に変化を与えることにしました。
【実際】
・3Dモデルのパーツをふやす。
blenderにてconeを用いて、上昇する花火の光の尾を模します。パーツの名称はCone。白いpngファイルを用意し、これにテクスチュア貼り付けをしました。
広がる様子は、元の花火の開いたパーツ(Plane)を一回り大きくして作成します。名称はPlane2。
・xmlファイル(hanabi.xml)への書き加え
<type>timed</type>を使い、各パーツを順次点滅させるように記述します。
前回で触れた<spherical type="bool">はfalseにします。光の尾は立体として作成したので、平面のように常に正面に向ける効果は必要なく、逆におかしなことになります。falseにすることで、立体にはこの効果が及ばないようにできるようです。
・3Dモデルのパーツをふやす。
blenderにてconeを用いて、上昇する花火の光の尾を模します。パーツの名称はCone。白いpngファイルを用意し、これにテクスチュア貼り付けをしました。
広がる様子は、元の花火の開いたパーツ(Plane)を一回り大きくして作成します。名称はPlane2。
・xmlファイル(hanabi.xml)への書き加え
<type>timed</type>を使い、各パーツを順次点滅させるように記述します。
前回で触れた<spherical type="bool">はfalseにします。光の尾は立体として作成したので、平面のように常に正面に向ける効果は必要なく、逆におかしなことになります。falseにすることで、立体にはこの効果が及ばないようにできるようです。
hanabi.xmlは以下のとおりです。
<?xml version="1.0">
<PropertyList>
<path>hanabi.ac</path>
<animation>
<type>billboard</type>
<object-name>Plane</object-name>
<object-name>Plane2</object-name> ←追加
<object-name>Cone</object-name> ←追加
<spherical type="bool">false</spherical> ←変更
</animation>
<animation>
<type>material</type>
<object-name>Plane</object-name>
<object-name>Plane2</object-name> ←追加
<object-name>Cone</object-name> ←追加
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
<texture>hanabi.png</texture>
</animation>
<animation> ←追加部分の先頭
<type>timed</type>
<object-name>Plane</object-name>
<object-name>Plane2</object-name>
<object-name>Cone</object-name>
<duration-sec>1</duration-sec>
</animation> ←追加部分の末尾
</PropertyList>
画像は作成した花火のgifアニメです。3パターンを順次点滅させていることが確認できます。gifアニメでは左右2つの花火はともに単調な点滅を繰り替えしていますが、別々のxmlファイルですので、<duration-sec>をわずかに違えるだけでまるで花火大会のような様相になります。