「科学ミッションカレンダー2024」の10月のミッション「プログラミングでアート作品をつくろう!」で応募してくれたみなさんから、ミッションの報告とともに、質問もいただきました。プログラミングでアート作品をつくることに関するいろいろな質問に、倉本先生に答えていただきました!
1 アートのアイディアについて
Q1 先生はアート作品をつくるために美術館などに行って他の人の作品を良くみていますか。私は美術館が好きで、本で好きな作品を見つけたらどこかの美術館で展示してないか調べて、行けるところだったら連れて行ってもらっています。
はい、よく見に行っています。いろいろな美術館もよく行きますけど、おすすめなのはギャラリーでの展示です。多くの場合無料ですし、今活動している作家さんの作品が見られたり、作家さんとお話もできることがあります。
Q2 先生は子供の頃も綺麗なアートデザインを描くのが好きだったんですか。
僕が子供のときはBASIC(ベーシック)というプログラミング言語がありました。それを使ってグラフィックをつくるのが好きでした。いろんな色の四角がランダムに表示されたり、画面がカラフルにピカピカ光ったりという物や、直線を数学的に並べた線織面で空間的な模様をつくるのが好きでした。
Q3 プログラミングでアート作品をつくるときのアイデアは、どこから来るのですか。教えて下さい。
Scratchのブロックで適当に遊んでいるときに、これを繰り返したら、回しながらクローンしたらどうなるかな? などと試してでき上がることがあります。誰かが別のプログラミング言語でつくった作品を見て、Scratchで再現したくなるときもあります。
2 プログラミングについて
Q4 プログラミングアートをつくるにあたって、一番よく使うブロックはなんですか?
Scratchのクローン機能は結構おもしろいことになるのでよく使います。
また今回のサンプルでは使いませんでしたが、定番はペンブロックです。ペンを使うとステージの解像度に影響を受けてしまうのですが、ペンの色を半透明にすると結構ギザギザが目立たなくなる技を見つけました。
それ以外だとsin、cosは変化をつけやすいのでよく使います。tanも意外な動きをしたりしておもしろいですよ。
Q5 音楽をつけようとしたら、プログラムが変わってしまい、うまくいかなかったのはどうしてですか?
音楽を鳴らすブロックは2種類あって、それぞれ動作がちょっと違いますよね。また音楽のコードをどこで鳴らそうとするかによって、プログラムの動作が変わります。
BGMとして鳴らすようであれば、例えばステージで設定するなど、役割をわけてしまうのもわかりやすいかもしれません。
Q6 複数のクローンはどうやって消しますか。
1つの方法として、メッセージを受け取ったときにクローンを削除をする方法があります。ただしメッセージは全てのクローンが受け取るので全部消えますね。
もう少し工夫をすると「このスプライトだけ」の変数を使うとクローンに特定の値を持たせることができます。そうすると「メッセージを受け取ったとき」の後に「もし<>なら」で選んで消すことも可能です。
Q7 星をななめに動かそうとしてできませんでした。どうすればななめに動かせますか?
応募してくれた作品ですね(こちらの作品)。今の動かし方だと、xとyを同時に変化させるのが良さそうです。星がスプライトなので斜めに向きを変えて10歩動かすのもいいと思います。
Q8 makecodeのmicrobitのGPIOでアナログ信号を出力する方法はどうするのですか。
高度なブロックの「入出力端子」にある「アナログで出力する」を使うとできるでしょう。