クリエイティブコーディングとは?メディアアート・インタラクティブアートなど音響・映像表現をする為のプログラミング環境のまとめ

投稿日:2017-06-17



ナカジ(@cp_nakajun)です。

当サイトは、メディアアート・インタラクティブアートなどを「自分でも作ってみる」という人を多くしこの分野を盛り上げていけるような情報を発信したいと思っています。

とは言え、メディアアート・インタラクティブアートの作品作りには作品規模に大なり小なりありますが表現手法によっては幅広く、専門的な知識と技術が必要なことがあります。

そこでまずは多くの作品作りの「コア」になってくるプログラミングについて触れることが必要になります。

プログラミングと言うと理数系のエンジニアをイメージしたりしてハードルが高いように感じるかもしれませんが
今は「アーティストやデザイナーが、コンピュータ・サイエンスやプログラミングの知識がなくても簡単なコードを書くことによって創作することができる」環境・ツールが非常に洗練された状態で多数存在します。

最近はこういったアーティストやデザイナーがコードを書くことによって創作することを「クリエイティブコーディング」と呼びます。

元々プログラミングの知識がなかったとしてもクリエイティブコーディングの経験を積むことでアーティストやデザイナーもプログラミングの知識が深まっていきます。

表現をする人にとってクリエイティブコーディングに取り組むということは表現の幅を多いに広げることになります。

また、「これからやってみたい」という人はクリエイティブコーディングから手をつけるべきものだということになります。

今日は

  • クリエイティブコーディングとは
  • クリエイティブコーディング環境の紹介

です。

クリエイティブコーディングとは

クリエイティブコーディングとは
「プログラミングによって創造的な表現を生み出すこと」
です。



wikiには

Creative coding is a type of computer programming in which the goal is to create something expressive instead of something functional. It is used to create live visuals and for VJing, as well as creating visual art and design, art installations, projections and projection mapping, sound art, advertising, product prototypes, and much more.

と書いてあります。

Googleに訳してもらうと

クリエイティブコーディングは、何か機能的ではなく表現力のあるものを創造することを目的としたコンピュータプログラミングの一種です。 ライブビジュアルやVJingの作成、ビジュアルアートとデザイン、アートインスタレーション、投影と投影マッピング、サウンドアート、広告、プロダクトプロトタイプなどの作成に使用されます。

です。

そして先にも書きましたが、今は表現に特化したプログラミング環境がいくつもあります。

クリエイティブコーディング環境の紹介

クリエイティブコーディング環境にも得意・不得意があり
表現したい方向性、たとえば音なのか映像なのかハードウェア制御なのかによってざっくり分類されます。

openFrameworks


C++の知識が必要であるため、敷居が少し高い。

常設展示作品やクライアントワークなど規模が大きいものになると実行速度の速さや安定性でとても優秀。

「作り込んだものを」という用途にはとても向いています。
逆に言うと、リアルタイムコーディングはできません。

習得すると応用範囲もかなり広い。

【openFrameworks】メディアアートを作るプログラミング環境!オープンフレームワークス編





書籍

Pure Data (Pd)


  • 主にサウンドを扱うためのビジュアルプログラミング環境
  • MaxMspの兄弟
  • マルチプラットフォーム
  • OpenGLにより映像も扱える
  • https://puredata.info/
  • 日本語サイト
  • リアルタイムでプログラミング結果を実行

僕自身がメインとして活用している環境。

パッチングと呼ばれる命令同士を線で繋いでいく方法でプログラミングをします。

気に入っている点はMac・Windows・Linuxで動作する上に無料!!
仕事で使っても「無料」

感謝してます!

ただし、弱点があって

  • オブジェクト(=命令?)が少ない
  • 複雑すぎると実行速度が遅い
  • 画面描画が弱い

命令が最低限しかないので、なんでも自分でつくることになります。

例えば音楽に必要な「テンポ」の制御ですが
MaxMspならそのまま[tempo]という専用のオブジェクトが用意されていますが
PureDataはこんな感じで自分でつくる必要があります。

リアルタイムでプログラミング結果を実行できるのでライブパフォーマンスなどリアルタイム性が必要なものは大得意ですが
openFrameworksのようにコンパイルしない分、全体的な実行速度は遅くなります。
おそらくですがオブジェクトが少ないことがPd上でする量を増やすため、そのあたりの分の処理分も遅くなるのかもしれません。

あとはパッチのGUI描画が弱いです。

ステップシーケンサーのようなものを作ると、大した描画量じゃなくても表示落ちします。


それでも僕は使ってますけどね。

【PureData】音楽・メディアアートを作るプログラミング環境!ピュアデータ編



作品例


書籍

MaxMsp


  • サウンドと映像を扱うためのビジュアルプログラミング環境
  • PureDataの発展系(有料アプリ)
  • Max for Live!によりableton Live!内でパッチを利用できる
  • リアルタイムでプログラミング結果を実行
  • C++コード生成(Gen)
  • 膨大なオブジェクト(命令)
  • ユーザー多数
  • https://cycling74.com/
  • 日本代理店

おそらくこの手の開発環境では一番メジャーです。

ユーザー数も大多数!!国内で最も普及してます。

出来ないことは今の僕では思いつきません。

DAWとの連携は唯一です。

Maxもパッチングと呼ばれる命令同士を線で繋いでいく方法でプログラミングをします。

【MaxMsp】音楽・メディアアートを作るプログラミング環境!MAX編


作品例


書籍

vvvv


  • 主に映像を扱うためのビジュアルプログラミング環境
  • 分散処理・マルチプロジェクションに標準対応
  • 出力解像度に制限がない
  • Windows版のみ
  • 商用以外は無料
  • https://vvvv.org/

映像に関してはMaxMspより特化しており優位。

vvvvもパッチングと呼ばれる命令同士を線で繋いでいく方法でプログラミングをします。

VJ・プロジェクションマッピング・メディアアートで遊べ!ビジュアルプログラミングツールキット「vvvv」を知ってるか!?



作品例


書籍

TouchDesigner


  • 映像を扱うためのビジュアルプログラミング環境
  • ハードウェア制御に高い信頼性
  • ディズニーのアトラクション制御で使われてる(らしい)

今、おそらくこのジャンルで最も盛り上がってる環境です。
日本語書籍の発刊はまだのようなので、習得には英語力があったほうが最初のハードルは越えやすいです。

ただ日本でもユーザーグループが立ち上がっていたり
Vimeoに公式ができたりと今後ますます広がっていく環境だと思います。

プログラミング方法は「オペレーター」と呼ばれる命令を線で繋いでいく方法です。

僕も最近触り始めたのですが、MaxMsp、PureDataと経験してきた僕にとって
同じように「線で繋いでいく方法」ですが、画面に見た目や値の設定方法に少し戸惑いました。

vvvvの方がその意味ではMaxやPDに近い感じです。

【TouchDesigner】映像 特化のインタラクティブアート開発環境!VJ・プロジェクションマッピング・インタラクティブサイネージなどほとんどのことはできるぞ!



作品例


書籍

SuperCollider


  • 音を扱う為のテキストプログラミング環境
  • 音質の良さに定評
  • マルチプラットフォーム

音に特化したプログラミング環境です。

なんと言っても音質の良さに定評があります。
CDとして販売された曲にもsupercolliderの音が使われてたりします。

例えば、ACOのこのアルバムやビョークなんかがそうだと記憶してます。

僕も何度か習得を試みてますが、いまいち理解しきれないでいます。

日本だとtn8さんとコミュニティーが有名です。
(昔、tn8さんと開発者のジェームスマカートニーのセミナーを受けにIAMASまでいきました)

作品例

まとめ

僕の主観でどんな人にオススメかをまとめます。

もちろん、この記事を読んでいただいたり別途情報を集めたりして
自身の目的や方向性で選んでもらえるのが良いです。

  • とにかく初めてで何か作ってみたい初心者:PureData
  • 音楽制作に使いたい(DTMやってます):MaxMsp
  • 音を作りたい、音響系作品:MaxMsp、PureData、SuperCollider
  • 映像系をこれからやってみたい:TouchDesigner
  • プロジェクションマッピングやインタラクティブ映像:TouchDesigner、vvvv
  • 大画面プロジェクトや複数画面プロジェクト:vvvv、TouchDesigner

ここでポイントになるのが「openFrameworks」です。

僕の理解力不足もありますが、openFrameworksは基本なんでもできます。

他の環境は「音楽」や「映像」の知識が必要なのは言うまでもないですが
それがあれば、「とりあえず」なんとかなんらかの作品は作れます。

ただし、openFrameworksは「C++」の知識も必要です。
そして「ビルド」して実行ファイルを作ってから動作しますのでそのあたりのメリットや利便性を考慮しつつ、採用するのがよいと思います。

そういう意味ではプログラミング初心者はレベルの向上にあわせて後からステップアップの為に…という選択もありだと思います。

最終的には作品を作る楽しさや感動は何事にも代え難いものなので楽しんで遊んでみるのがいいと思います。

「Let’s Enjoy Creative coding!!」

TouchDesigner学習におすすめ



PureDataの貴重な書籍



おすすめのクリエイティブ・コーディング関連カテゴリー

クリエイティブコーディング系 講座


ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します