第2回 ランダムな大きさの花を、たくさん咲かせていく | デザインってオモシロイ -MdN Design Interactive-

第2回 ランダムな大きさの花を、たくさん咲かせていく

2024.5.17 FRI

【サイトリニューアル!】新サイトはこちらMdNについて


Lesson2 花咲くActionScript -試行錯誤を楽しむ-


Lesson2となる今回からはあらかじめ決まった完成形を求めるのではなく、制作の過程を楽しみながら ActionScriptに親しんでいただきたい。通常の制作現場ではクライアントの要望に沿った仕様に基づき、納期に追われながらひたすら完成形を求め て仕事を進めているはずだ。もちろん私もそうした一人である。多くの仕事をこなすことでFlashのスキルはアップし、作業スピードも上がる。

しかし、何か釈然としない気持ちや焦りが芽生えてきている人もいるのではないだろうか?その多くは自分が習 得・チャレンジしてみたいことと、クライアントから求められる内容との“隔たり”から発生しているように思う。それを払拭するためには、やはり自分なりの 実験、研究を続けていくことが大事だ。そうして身につける技術が現状では要求されていないものでも、いずれ求められることになる。よい研究の成果が出れ ば、逆にクライアントに提案することもできる。チャレンジ精神がおもしろい作品を生み出すのだから。

それでは、楽しみながら実験を始めよう!

(解説:茅原 伸幸)

第2回 ランダムな大きさの花を、たくさん咲かせていく





上はLesson2で目標としているサンプル。下が第1話で使用した【サンプル2】

前回はサンプルを通して、クリックすると一輪の花が咲くところまでを解説した。同じ形の花がひとつだけだとやはり寂しいので、今回はクリックするたびに花が追加で描画されていくようにしてみよう。第1話に登場した【サンプル2】でクリックするごとに、先に描画した花が消えるのは「attachMovieメソッド」で毎回同じ深度に配置しているからだ。そこで、ActionScriptを次のように変更する【図1】。

【図1】黄色の箇所が前回からの変更点だ

【図1】黄色の箇所が前回からの変更点だ

for文の外に変数nを追加し、attachMovieするたびに+1ずつカウントアップしている。この変数nをインスタンス名と深度に指定することで、毎回カウントアップされた深度にインスタンスが配置され、どんどん追加で描画できるようになる【サンプル1】。


【サンプル1】同じ形状の花を複数描画するサンプル

花びらの枚数や大きさをランダムにする


クリックする度にどんどん描画され、にぎやかになってくるがまだまだもの足りない。同じ大きさ、同じ形で単純すぎるからだ。そこで花びらの枚数や大きさをランダムで変えてみることにしよう。

■Point 「Math.random メソッド」で複雑さを加える


「Math.randomメソッド」は0以上1未満の乱数を返してくれるメソッドで、Flashコンテンツに変化や複雑さを簡単に与えることができる。飽きさせない表現にもとても有効なので、進んで活用しよう。ランダムさを加えたActionScriptは【図2】となる。

【図2】変数nPetalは花びらの枚数だが、回転の角度を求める際に、整数のほうが美しいため、「Math.roundメソッド」を用いて四捨五入して整数にしている

【図2】変数nPetalは花びらの枚数だが、回転の角度を求める際に、整数のほうが美しいため、「Math.roundメソッド」を用いて四捨五入して整数にしている

これを実行すると【サンプル2】となる。


【サンプル2】花びらの枚数、大きさをランダムに描画

ランダム性を加えただけでかなりの複雑さを表現でき、思わずカチカチと何度もクリックしてみたくなる。アルファの重なりも美しく、ファイルサイズに関しては1KBに満たない。たった1枚の花びらでこれだけの表現ができるFlashは、やはりすばらしいツールだ。

Trial and Error -花びらの枚数や形状を工夫する


次に、花びらの種類をランダムで変更すれば、当初の目標に近づくのだが、少し遊んでみよう。

今までは、数枚の花びらの花だったが、例えばタンポポのような花だったらどうだろうか。単純に花びらの形状を変え、花びらの枚数を増やすだけだと【図3】のようになりとてもタンポポだとは思えない(実はタンポポは花びらが多いのではなく花が集まっているらしいのだが、ここでは花びらとしておく)。

【図3】あまりタンポポには見えない……
【図3】あまりタンポポには見えない……

タンポポは内側ほど花びらがちいさいので、大きさをだんだん小さくしていったら良いのでは……という想像の下、試してみる。するとどうだろうか【図4】。

【図4】失敗だが、拡大してみるとおもしろい図形になっている
【図4】失敗だが、拡大してみるとおもしろい図形になっている

う~ん……失敗のようだ! だが、これはこれでおもしろい。拡大してみると幾何学的な模様で神秘的な気さえする。もしこれが、オウムガイを作ろうとしているのだったら、案外イイ線いっている。お花畑ではなく「オウムガイの大群が生息する深海」にテーマであれば、このActionScriptを活用できる。

このように、失敗から新たな表現手法のアイデアが導かれることも少なくない。どんどん手を動かして、失敗や回り道を楽しめるようになれば自然とスキルアップしていくのではないかと思う。この“オウムガイスクリプト”でも花びらの形状を変えたり、大きさや角度を変えるたびに、さまざまな神秘的な幾何学模様が現れる。万華鏡のように、時を忘れて楽しむことができるだろう。

黄金角を利用した花びらの配置


では、気を取り直してオウムガイからタンポポに戻そう。タンポポを作るにはやはり詳しい観察が必要だと感じる。

そこでいろいろ調べてみると、今までは円を花びらの枚数で均等に分割した角度で花びらを配置していたが、黄金角137.5°で配置していけばいいのではないか、との案に至る。黄金角とは円(360°)を黄金比(1:(1+√5)/2)で分割して求められる角度のことだ。

(360÷(1+(1+√5)/2)≒137.5)

それを実際に試してみると……【図5】。

【図5】黄金角の利用でタンポポに!
【図5】黄金角の利用でタンポポに!

う~ん……満足! かなりタンポポらしい描画になった。また、花びらの枚数や配置を試行錯誤し調べている中で、「黄金角」や「螺旋」、「フィボナッチ数列」などの言葉と出会うだろう。これらを上手く工夫し活用すれば、単純な数行の同じようなスクリプトで、しかもたったひとつの形状で、タンポポやオウムガイ、ひまわりの種の並び、松ぼっくり、二枚貝、台風や銀河まで表現できるのではないか、と可能性や期待が広がる。

実際の仕事でこのスクリプトをそのまま使用する機会は少ないかもしれないが、試行錯誤のプロセスを経てたどりついた結論は、今後Flashでコンテンツを制作していくさまざまな場面で応用できるだろう。


【サンプル3】タンポポの描画サンプル

また、上の【サンプル3】ができあがったタンポポのサンプルだが、ひとつのタンポポで100ものインスタンスを生成しているため、数回クリックを繰り返すと動きが非常に重たくなってくる。加えて、花びらの影をソフトエッジで描画していることも重さの原因となっている。こういう実験でFlashの動作上の限界をあらかじめ知っておくことも、非常にとても重要なことだと思う。


次回へつづく



[プロフィール]
かやはら・のぶゆき●1972年生まれ、広島在住。広島大学経済学部卒業後、紆余曲折の末、2006年5月に株式会社メディア・パルサーを設立。若手を鍛えながらFlash制作に勤しむ。二児のパパ。
http://www.procreo.jp/


twitter facebook このエントリーをはてなブックマークに追加 RSS
【サイトリニューアル!】新サイトはこちらMdNについて

この連載のすべての記事

アクセスランキング

8.30-9.5

MdN BOOKS|デザインの本

Pick upコンテンツ

現在