【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)
上達の研究家
アナログ絵画(2025.11~) × クリエイティブコーディング(2024.3~)

「不完全な人間(Analog)」が、「完全な論理(Algorithm)」を武器にどこまで行けるか。

手描きの一本の線(One)をコードで無限(All)に拡張し、再び一つの作品へ定着させる。「才能」ではなく「発見」と「システム」で描く、人生をかけた実験記録。

溢れる思考を、独自の脳内OS「Watataku Blueprint」で整理し、初心者から世界で活躍するまでの「激闘」と「攻略本」を公開しています。

▼【創作×上達】思考を「作品」に変える、モレスキン6冊の運用設計図
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次