【Processing】camera()関数の使い方【立方体の見え方を変える】

【Processing】camera()関数の使い方【3D空間でのカメラの位置や向きを設定する】
  • URLをコピーしました!
ワタタク

今回の記事の目的はProcessingの「camera()関数」を理解し、自分なりに使ってみること。

記事内のProcessingのバージョンは4.3。

目次

【Processing】camera()関数について

camera()関数について
  • cameraは英語で「カメラ」という意味
  • camera()関数は、3D空間でのカメラの位置や向きを設定するための関数。3Dオブジェクトをいろんな角度から見ることができます。

【Processing】camera()関数の主な書き方

camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
  • eyeXeyeYeyeZは視点
  • centerXcenterYcenterZは中心点(表示している図形の場所?)
  • upXupYupZはカメラの方向を決める値
    • ここは数値は-1.0(下の方向), 0.0, 1.0(上の方向)を主に使う

【Processing】camera()関数の使い方【コード】

【視点】eyeX, eyeY, eyeZの数値を変えてみる

eyeX, eyeY, eyeZの数値を同じに

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

eyeYを0に

void setup() {
  size(400, 400, P3D);
  camera(200, 0, 200, 0, 0, 0, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

eyeZを0に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 0, 0, 0, 0, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

【中心点】centerX, centerY, centerZの数値を変える(図形の場所?)

centerXの数値を変える

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 100, 0, 0, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

centerYの数値を変える

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 100, 0, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

centerZの数値を変える

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 100, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

【カメラの上方向】upX, upY, upZの数値を変えてみる

upXを1に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 1, 0, 0);
}

void draw() {
  background(255);
  box(100);
}

upXを-1に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, -1, 0, 0);
}

void draw() {
  background(255);
  box(100);
}

upYを1に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 0, 1, 0);
}

void draw() {
  background(255);
  box(100);
}

upYを-1に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 0, -1, 0);
}

void draw() {
  background(255);
  box(100);
}

upZを1に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 0, 0, 1);
}

void draw() {
  background(255);
  box(100);
}

upZを-1に

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 0, 0, -1);
}

void draw() {
  background(255);
  box(100);
}

upXとupZの数値を変えてみる

void setup() {
  size(400, 400, P3D);
  camera(200, 200, 200, 0, 0, 0, 1, 0, -1);
}

void draw() {
  background(255);
  box(100);
}

【Processing】camera()関数はどんな表現で使えそうか

立体的な表現の見え方を変えるときに使えそう。

【Processing】camera()関数を使ってみた感想

ちょっと視点。難しいですね。

見え方を理解しようと頑張ってみたのですができなかったので、とりあえず数値を変えたパターンと画像をいくつか載せておきました。

保留問題です。

ワタタク

それでは今日もレッツワクワクコーディング。

ワタタク(Watataku)
クリエイティブコーダー/アーティスト
AIと共に、「人の心に寄り添う、機能するアート」を探究しています。

ここは、その思索と創造の全記録を記す、思考の実験室(アトリエ)です。

僕の創作の源泉は、人生経験そのものです。
不当な出来事や、精神的な支配の中で、私の心は何度も粉々に砕け散りました。しかし、その一つ一つの破片をどのようにすれば鮮やかな絵の具にできるかを考え、ゆっくり心のパレットに色を整えていきました。その、長い、長い、自身との対話の果てに「人の役に立つアートを作りたい」という考え方にたどり着きました。

かつて、僕の武器は、アコースティックギター弾き語りと、カメラでした。
オリジナルソングの演奏でお客様投票1位となった「物語の力」。
世界20カ国の旅で培った、多様な「視点」。

今、僕は、それら全ての経験を、「コード」という、新しい言語で、世界に問いかけています。

このブログでは、作品の制作過程や、日々の発見、そして、僕自身の上達の軌跡を記録していきます。

僕の旅が、あなたの日常を、ほんの少しでも豊かにするための、光になることを願って。

クリエイティブコーディングロード運営者 ワタタク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次