Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第19章 作品を保存して次の入口を作る

プログラムには、自然に訪れる完成の瞬間がありません。数字はいつでも変えられ、機能はいくらでも足せます。だから完成は「もう直すところがない状態」ではなく、今の興味に区切りを付け、あとから戻れる形を残す判断です。

作る、見る、一つ変える、残すを循環する作品制作の図
図解 19-A 作品は、一つ変えて確かめる小さな循環で育てる。

19.1 一番楽しかった寄り道を選ぶ

最終作品を白紙から考える必要はありません。これまでの章から、次のどれかを選びます。

  • 何度も数字を変えたサンプル
  • 予想外の結果が出て保存したスケッチ
  • もう一つ機能を足したい作品
  • 見た目は単純でも、動かしていて気持ちよかった作品

選ぶ基準は技術の多さではありません。自分がもう一度開きたいものを選びます。

19.2 テーマを自分の言葉へ変える

作品募集や自主制作でテーマが決まっていても、その言葉をそのまま絵にする必要はありません。たとえばテーマが「ルビー」なら、次のように別の入口を選べます。

  • 赤い宝石の形や光を観察する
  • Rubyのコードや記号を図形として扱う
  • 赤から連想した熱、夕方、警告、祝祭を描く
  • 「大切にしまわれたもの」という物語を作る

最初に正しい解釈を探すのではなく、思い付いた言葉を5個書き、その中から画面にしてみたいものを一つ選びます。選んだ言葉へ、第6章の反復、第7章の偶然、第8章の操作など、気に入った仕組みを一つ組み合わせます。

19.3 変更を一つずつ保存する

大きく直す前に、現在の版を保存します。ファイル名には、意味のある短い違いを入れます。

orbit-slow.html
orbit-fast.html
orbit-blue-trail.html

finalfinal2final-final では、あとから違いが分かりません。「速い」「青い軌跡」のように画面の違いを名前へ入れると、比較しやすくなります。

19.4 引き算で主役を確かめる

機能を足す前に、一つを一時的に消してみます。

  • 背景の模様を消す
  • 音を止める
  • スコア表示を隠す
  • 円の数を半分にする
  • 色を 3 色へ減らす

消して寂しくなったなら、その要素は作品の関係を支えています。何も変わらない、または見やすくなったなら、なくてもよい可能性があります。削除は作品を小さくするだけでなく、何が面白さの中心かを見つける実験です。

19.5 時間を置いたセルフレビュー

第三者の講評がなくても、時間差を使って見直せます。

  1. 現在版を保存する
  2. エディタとメモを閉じる
  3. 数時間後または翌日に作品だけを開く
  4. 最初に見た場所、最初に試した操作を記録する
  5. 好きなところを一つ選ぶ
  6. 分かりにくいところがあれば、一つだけ直す

セルフレビューは採点ではありません。「良い作品か」ではなく、「自分はどこをもう少し触りたいか」を探します。何も直したくなければ、その版を区切りにできます。

19.6 最終制作スタジオ「まわる光」

一つの作品が、三つの版を通って変わる過程を見ます。完成画像をそのまま真似るためではなく、一度に一つ選び、採用しなかった案も残す方法を見る例です。

版A: まず動きだけ作る

最初の問いは「同じ場所へ戻る動きを、ずっと見ていたくなるか」です。黄色い円を一つだけ周回させます。

def setup
  createCanvas(500, 320)
  @angle = 0
end

def draw
  background(20, 28, 52)
  @angle += 0.03

  x = width / 2 + sin(@angle + 1.5708) * 110
  y = height / 2 + sin(@angle) * 80

  noStroke
  fill(255, 210, 90)
  ellipse(x, y, 42, 42)
end

この版では、速さ0.03と横・縦の広がり11080だけを試します。作者メモは「円が何の周りを回っているのか分からない。でも、楕円の軌道は残したい」です。

左右と上下の両方にsinを使っています。ただし左右側だけ、角度へ1.5708を足しました。これは円の4分の1周ほど変化の始まりをずらす数字です。二つの波の始まる位置をずらすと、円が斜めに行ったり来たりせず、中心の周りを回ります。11080を掛けることで、横長の軌道になります。0.5.1で本文と同じコードを使えるよう、ここでは新しいcosを増やさず、第7章で確認したsinだけで組み立てます。

濃紺の500×320のキャンバスに黄色い円だけがあり、見えない中心の周りを回っている版Aの実行結果
図 19-3 版Aは動く黄色い円だけで、軌道の中心は描かない。

版B: 中心を見えるようにする

次の2行は変更部分です。版Aのdrawの最後のendより前へ足します。

fill(120, 190, 255, 80)
ellipse(width / 2, height / 2, 120, 120)

中心へ半透明の青い円を置くと、黄色い円がその周りを巡っているように見えます。採用しなかった案は、背景へ星を50個足すことでした。試すと中心より星へ目が移ったため、この版では外しました。削除も制作上の選択です。

濃紺の500×320のキャンバスで、半透明の青い円の周りを黄色い円が回る版Bの実行結果
図 19-2 版Bでは中心を描き足し、二つの円の関係を見えるようにした。

図19-3と図19-2は、中心の青い円があるかどうかだけが大きな違いです。小さな追加でも、黄色い円を「一つで動く形」と見るか、「何かの周りを巡る光」と見るかが変わります。

版C: 速さと題名を選ぶ

@angle += 0.03@angle += 0.015へ変えると、待つ時間が長くなります。速い版と遅い版を別名で保存し、見比べます。ここでは遅い版を選び、題名を「まわる光」としました。

最終メモは次の3行です。

暗い場所の中心を、黄色い光が見回る作品です。
中心を半透明にして、物ではなく気配に見えるようにしました。
速い版は落ち着かなかったため、動きを半分の速さにしました。

この過程で重要なのは、版Cが正解だからではありません。版Aで動きを確かめ、版Bで関係を足し、版Cで比較して一つ選びました。自分の作品では、色、数、入力、音など別の一項目を選べます。

19.7 単一 HTML を別の環境で開く

rbCanvas/p5 は、プログラムと素材を単一の HTML ファイルとして保存できることを特徴にしています。保存したファイルは、エディタを介さずブラウザで実行できます。

エディタの保存ボタンを押すと、ブラウザが HTML ファイルをダウンロードします。保存場所が表示されない場合は、ブラウザのダウンロード一覧を確認します。もう一度編集したいときは、その HTML ファイルを rbCanvas/p5 エディタへドラッグ&ドロップします。画像や音声を取り込んでいた場合も、同じファイルから復元されます。

rbCanvas/p5 0.5.1エディタで軌道を回る円のコードと実行結果が並び、左上に下向き矢印の保存ボタンが見えている画面
図 19-1 左上の下向き矢印が保存ボタン。押したあと、作品の違いが分かる名前を入力する。

保存後は次を確認します。

  • エディタを閉じてもブラウザで開けるか
  • 画像や音声が欠けていないか
  • キーボードとマウスの操作が反応するか
  • 音声開始にクリックが必要なら、画面に説明があるか
  • 強い点滅や急な音量変化がないか

ブラウザごとに保存や読み込みの挙動が異なる場合があります。Chrome で動いても、別のブラウザで同じとは限りません。公開するなら、少なくとも自分が対応対象と決めた環境で確認します。

19.8 工夫を短い文章にする

作品募集では、テーマをどう考え、どこを工夫したかを書くことがあります。立派な解説を書くのではなく、制作中に実際に選んだことを書きます。

テーマを「暗い場所で見つける赤い光」と考えました。
同じ形を並べ、マウスに近い形だけ明るくなるようにしました。
赤が強すぎると光に見えなかったので、周囲を暗い青へ変えました。

「何を考えたか」「コードで何を変えたか」「試して何を選んだか」の3点があれば、制作の過程が伝わります。うまく見せるために、していないことを書く必要はありません。

19.9 公開しない選択と公開する責任

作品は公開しなくても完成です。自分の端末に保存し、あとで見返すだけでもかまいません。

公開する場合は、コード以外の条件も確認します。

  • 写真、音、フォント、3D モデルを公開できるか
  • 必要な作者名とライセンスを表示したか
  • 他人の個人情報が含まれていないか
  • 操作方法を短く書いたか
  • 動きや音を止める手段が必要か

タイトルや制作意図は、長い説明でなくてかまいません。「マウスの速さを色にしました」のように、何を試したか一文あれば、未来の自分も作品へ戻りやすくなります。

借りた素材や参考にしたコードがある場合は、制作メモや応募文へ出典を残します。必要な内容は利用条件によって異なりますが、迷ったときは次の項目を記録します。

画像: 作者名「作品名」
入手元: (素材を入手したページのURL)
ライセンス: CC BY 4.0
変更: 色を青へ変更し、背景の一部として使用

コードの参考: 作者名「スケッチ名」
URL: (参考にしたスケッチのURL)
参考にした点: 円を等間隔へ並べる考え方

URLだけでなく、誰の何を、どのように使ったかを残します。本書のコードを改造した場合は「『Rubyで描く、動かす、遊ぶ — rbCanvas/p5ではじめるクリエイティブコーディング』第6章をもとに改造」のように書けます。

19.10 作品募集へ出す前の確認

単一HTMLファイルを提出する形式なら、次を上から確認します。

  1. 0.5.1のエディタからHTMLファイルを保存した
  2. 保存したHTMLをブラウザで直接開けた
  3. 画像や音が作品内に含まれている
  4. 操作方法が作品内または応募文で分かる
  5. テーマの解釈と工夫を自分の言葉で書いた
  6. 借りた素材の利用条件と作者表示を確認した
  7. 提出するファイルが最後に確認した版と同じである

この段階まで来れば、乱数配置、敷き詰め、フラクタル、図形を組み合わせたモチーフ、アニメーション、操作へ反応する作品のいずれかを、自分で選んで完成させられます。すべての技術を一作品へ詰め込む必要はありません。

19.11 作品を見つけ、仕組みを一つ持ち帰る

p5.jsやProcessingの作品には、JavaScriptやJavaで書かれたものもあります。コード全体をrbCanvas/p5へ移す前に、次の順で観察します。

  1. 画面のどこが、どのように変化しているかを言葉にする
  2. 位置、速度、色、反復、入力のどれを使っていそうか考える
  3. 作品全体ではなく、気になった変化を一つだけ別のスケッチで試す
  4. 同じ機能名が0.5.1のリファレンスにあるか確かめる

見つけた作品は、作品名、作者名、見たページのURL、気になったところ、自分で試したところを制作ノートへ残します。画像やコードを使う場合は、作者が示した利用条件も確認します。考え方から刺激を受けた場合も、制作意図で元の作品に触れると、自分の発見がどこから始まったかを伝えられます。

19.12 終了ではなく分岐

ここまでで、形、時間、入力、Ruby の構造、音、3D、ゲームを通りました。すべてを覚えている必要はありません。気に入った章へ戻り、別の数字を試せれば、本書の目的は達成されています。

次に進む道は一つではありません。Ruby の言語機能を深く知る、p5.js の作品から発想を借りる、音を録る、絵を描く、ゲームのルールを考えるという別々の入口があります。今いちばん気になった章へ戻り、その章の「もっと探すなら」「もっと育てるなら」から一つだけ選べます。

この章の小さな区切り

  • 自分がもう一度開きたい作品を一つ選んだ
  • 変更前と変更後を別名で保存し、違いを比べた
  • 好きなところ、変えたところ、選んだ理由を一文ずつ残した
  • 公開するかしないかを自分で選び、公開する場合は素材と操作方法を確認した

作品を公開しなくても、この本は完了です。保存した作品を後日もう一度開き、数字を一つ変えたくなったなら、次の入口はもうできています。

参考資料