ネクストステージ表現

身体表現のためのプログラミング入門:Processingとp5.jsで始めるインタラクティブアート

Tags: Processing, p5.js, インタラクティブアート, 身体表現, プログラミング入門

はじめに:プログラミングが拓く身体表現の新たな地平

ライブパフォーマンスにおいて、デジタル技術の活用はもはや特別なことではなくなりつつあります。特に、身体の動きや存在とリアルタイムに連携するインタラクティブな表現は、観客に深い没入感と驚きを提供し、クリエイターに新たな表現の可能性をもたらしています。

しかし、「プログラミング」と聞くと、難解で自分には縁がないものと感じるパフォーマーの方もいらっしゃるかもしれません。高度な技術や専門知識が必要なのではないか、どのように始めれば良いのか分からない、といった不安があることは自然なことです。

この記事では、そうした技術初心者の方々に向けて、身体表現とプログラミングを結びつけるための入り口として、Processingとp5.jsという二つのツールをご紹介します。これらはアーティストやデザイナー向けに開発されたもので、視覚的な表現を扱いやすく、初心者でも比較的取り組みやすいという特徴を持っています。これらのツールが、どのようにあなたの身体表現を拡張し、観客との新しい対話を生み出す手助けとなるのか、具体的な可能性と共に解説してまいります。

Processingとp5.jsとは:アーティストのためのコーディング環境

Processingは、マサチューセッツ工科大学(MIT)で開発された、プログラミングを学びながら、視覚的な表現やインタラクティブアートを制作するためのオープンソースのプログラミング言語と開発環境です。Java言語をベースにしていますが、よりシンプルに記述できるよう設計されています。

一方、p5.jsは、Processingの思想を受け継ぎ、JavaScriptをベースに作られたライブラリです。ウェブブラウザ上で動作するため、特別なソフトウェアのインストールが不要な上、ウェブ技術との連携が容易という利点があります。インターネットがあればどこでも開発・実行が可能で、作品をオンラインで共有しやすいことも特徴です。

これらのツールが身体表現の分野で注目される理由はいくつかあります。

身体表現との連携を考える:入力としての身体、出力としてのデジタル

Processingやp5.jsを使って身体表現にデジタル要素を取り入れる際、「身体」をプログラムへの「入力」とし、「デジタル表現(映像、音響、照明など)」を「出力」と捉えることができます。

1. カメラ入力を活用する

最も手軽に始められる方法の一つが、ウェブカメラの映像をプログラムに取り込むことです。

例えば、p5.jsとml5.jsを組み合わせることで、ダンサーの肘の動きに合わせてパーティクル(小さな点)を発生させたり、片足立ちになったら背景色が変わるといったプログラムを作成できます。

// 簡単なp5.jsとml5.js (PoseNet) の連携イメージ
let video;
let poseNet;
let poses = [];

function setup() {
  createCanvas(640, 480);
  video = createCapture(VIDEO);
  video.size(width, height);

  // PoseNetを初期化
  poseNet = ml5.poseNet(video, modelReady);

  // ポーズ検出時に呼ばれるコールバック関数を設定
  poseNet.on('pose', function(results) {
    poses = results;
  });

  // カメラ映像を隠す
  video.hide();
}

function modelReady() {
  console.log('Model Loaded');
}

function draw() {
  image(video, 0, 0, width, height); // カメラ映像を表示(デバッグ用、本番では非表示でも良い)

  // ポーズが見つかったら関節を描画する例
  drawKeypoints();
}

// 検出された関節を描画する関数
function drawKeypoints() {
  for (let i = 0; i < poses.length; i++) {
    let pose = poses[i].pose;
    for (let j = 0; j < pose.keypoints.length; j++) {
      let keypoint = pose.keypoints[j];
      // 検出の確信度が高い場合
      if (keypoint.score > 0.2) {
        fill(255, 0, 0); // 赤色
        noStroke();
        ellipse(keypoint.position.x, keypoint.position.y, 10, 10); // 関節の位置に円を描画
      }
    }
  }
}

// ※これは基本的なコード例です。実際にパフォーマンスに応用するには、
// 関節の位置データを使って独自のグラフィックや音響生成ロジックを記述する必要があります。

このコードはカメラで捉えた人物の関節に円を描画する簡単な例ですが、poses配列から得られる関節の座標や速度データを利用して、様々なインタラクティブ要素を生成することが可能です。

2. 外部センサーデータを活用する

Arduinoのようなマイコンボードと連携させ、センサーデータをProcessingやp5.jsに送ることも可能です。

これらのセンサーからシリアル通信やOSC(Open Sound Control)といったプロトコルを使ってProcessing/p5.jsにデータを送信し、それをトリガーに映像や音響を操作します。例えば、ダンサーの腕の角度に合わせて映像の歪みを変えたり、床を踏み込んだ瞬間に特定のサウンドエフェクトを発生させたりといった表現が考えられます。

3. サウンド・照明システムとの連携

Processingやp5.jsで生成したイベント(特定の動きが検出された、など)を、MIDIやOSCといったプロトコルを介して外部のサウンドソフトウェア(Ableton Live, Max/MSPなど)や照明制御システムに送信することで、身体の動きと同期した音響や照明演出を実現できます。これにより、単に映像を出すだけでなく、パフォーマンス全体の空間演出を身体入力でコントロールすることが可能になります。

Learning Processingとp5.js:学習リソースと最初のステップ

Processingやp5.jsは、初心者向けの学習リソースが非常に充実しています。

始めるためのステップ:

  1. Processingかp5.jsを選ぶ: まずはどちらか一方に集中することをお勧めします。ウェブブラウザだけで手軽に始めたい、ウェブとの連携に興味がある場合はp5.js、デスクトップアプリケーションとしてじっくり取り組みたい場合はProcessingが良いかもしれません。
  2. 開発環境を準備: Processingなら公式ウェブサイトからIDEをダウンロードしてインストール。p5.jsなら、p5js.orgのオンラインエディターを使うか、ローカル環境に簡単なエディターと開発用のサーバーを用意します(難しい設定は不要です)。
  3. 基本を学ぶ: 公式チュートリアルや入門書を使って、図形の描画、色、アニメーション、条件分岐、繰り返しといったプログラミングの基本要素を学びます。
  4. インタラクションに挑戦: マウスやキーボードの入力、そしてカメラ入力を使った簡単なインタラクティブ表現に挑戦してみましょう。ml5.jsなどのライブラリを試してみるのも良いでしょう。
  5. 小さなプロジェクトを作る: 学んだことを活かして、短いダンスの一部分と連携する映像、身体の動きに反応するサウンドスケープなど、具体的なパフォーマンスを想定した小さな作品を作ってみます。最初から複雑なものを作ろうとせず、できることから段階的に進めるのが成功の秘訣です。

技術者との連携:共創の可能性

プログラミングを学ぶことは、表現の選択肢を広げる上で非常に有効ですが、必ずしもパフォーマー自身が全ての技術を習得する必要はありません。Processingやp5.jsを理解することで、技術者とのコミュニケーションが円滑になり、あなたのアイデアを正確に伝え、実現可能な形に落とし込むことができるようになります。

また、Processingやp5.jsを扱う技術者は、アートやデザインに関心がある人が多いため、表現者とのコラボレーションに対してオープンな姿勢を持っていることが少なくありません。アート系大学の技術系コース、メディアアート系のコミュニティ、あるいはProcessing/p5.jsの勉強会やイベントなどで、共創のパートナーを見つけることができるかもしれません。

あなたの表現のアイデアと、技術者の持つ知識やスキルが融合することで、一人では決して到達できなかった新しい表現の形が生まれる可能性があります。 Processingやp5.jsを学ぶことは、単なる技術習得にとどまらず、こうした共同作業への第一歩ともなり得るのです。

まとめ:表現の可能性を広げる第一歩

Processingとp5.jsは、身体表現にデジタル技術を取り入れたいと考えるパフォーマーにとって、非常に魅力的なツールです。直感的で視覚的な開発環境、豊富なライブラリ、そして活発なコミュニティは、プログラミング初心者でも取り組みやすいように設計されています。

カメラ入力や外部センサーを活用することで、身体の動きをリアルタイムな映像、音響、照明へと変換し、観客との新しいインタラクションを生み出すことが可能です。これらのツールを学ぶことは、ご自身の表現の幅を広げるだけでなく、技術者との円滑な連携や共創の機会にも繋がります。

難しく考えすぎず、まずは公式ウェブサイトのチュートリアルに触れてみる、小さなコードを書いて画面に何かを表示させてみることから始めてみてはいかがでしょうか。Processingとp5.jsが、あなたのネクストステージの表現を拓く一助となることを願っています。