つよくなりたいなあ

地に足をつけず世界を生きぬくブログです

アクセ数が減りつつある

2018.10.16

ブログを始めてから数ヶ月経つけどなんとか月に4回、週に1回の更新ができている。 しかし社会人になってからというもの、圧倒的に自分の時間が足りない。 ゆえにインプットとアウトプットのバランスが崩れている。

自分が興味もったことについてなんでもやって分からないところは先生に質問していた学生時代がなつかしい。 ていうか先生に会いたい。なんか先生に会ってお話したい。

社会人つらい。

181010

/*
 * 2018/10/10
 * invisible wind.
 */
import processing.pdf.*;

boolean savePDF = false;

int octaves = 4;
float falloff = 0.75;

color arcColor = color(100, 0, 75, 100);

float tileSize = 30;
int gridResolutionX, gridResolutionY;
boolean debugMode = true;


void setup() {
  size(800, 800);
  colorMode(HSB, 360, 100, 100);
  gridResolutionX = round(width/tileSize);
  gridResolutionY = round(height/tileSize);
  smooth();
}

void draw() {
  background(360);

  noiseDetail(octaves, falloff);
  float noiseXRange = mouseX/100.0;
  float noiseYRange = mouseY/100.0;

  for (int gY = 0; gY <= gridResolutionY; gY++) {
    for (int gX = 0; gX <= gridResolutionY; gX++) {
      float posX = tileSize*gX;
      float posY = tileSize*gY;

      // get noise value
      float noiseX = map(gX, 0, gridResolutionX, 0, noiseXRange);
      float noiseY = map(gY, 0, gridResolutionY, 0, noiseYRange);
      float noiseValue = noise(noiseX, noiseY);
      float angle = noiseValue * TWO_PI;

      pushMatrix();
      translate(posX, posY);

      if (debugMode) {
        noStroke();
        ellipseMode(CENTER);
        fill(noiseValue*360);
        ellipse(0, 0, tileSize*0.25, tileSize*0.25);
      }
      //arc
      noFill();
      strokeCap(SQUARE);
      strokeWeight(1);
      stroke(arcColor);
      arc(0, 0, tileSize*0.5, tileSize*0.5, 0, angle);
      popMatrix();
    }
  }
  if (savePDF) {
    savePDF = false;
    endRecord();
  }
}

void keyReleased() {
  if (key=='s') saveFrame("wind-###.png");
  if (key == 'p') savePDF = true;
}

void keyPressed() {
  if (keyCode == UP) falloff += 0.05;
  if (keyCode == DOWN) falloff -= 0.05;
  if (falloff > 1.0) falloff = 1.0;
  if (falloff < 0.0) falloff = 0.0;

  if (keyCode == LEFT) octaves--;
  if (keyCode == RIGHT) octaves++;
  if (octaves < 0) octaves = 0;
}

f:id:heyassy:20181011001848p:plain

C4Dでカメラを一周させてターゲットオブジェクトを撮る

cinema4dでオブジェクトの周りをカメラで一周させたいと思った時のメモ

【CINEMA4Dカメラアニメーション編】ダイジェスト映像 - YouTube この動画でやってたことが参考になりました。

カメラを用意して、円形のパスに沿って移動させればできます。

f:id:heyassy:20180917194857p:plain

サークルオブジェクトをレンダリングしたいオブジェクトの周囲を囲むように配置します。この場合はZ軸にしています。

つぎにカメラを配置して、右クリックでcinema4d tagからAlign to SplineとTargetを使います。 カメラのSplign Pathにサークルオブジェクトを、ターゲットにキューブを配置すると、レンダリングしたいオブジェクトにカメラが向けられ、かつスプライン上に配置されます。

f:id:heyassy:20180917195448p:plain

こんな感じ。これでカメラのPositionを0%から100%にしてキーフレームアニメーションさせればオブジェクトの周りを一周するカメラのできあがりです。

複合モジュール #01

/*
 * 2018/09/10
 */

float tileX = 12;
float tileY = 12;
float tileWidth, tileHeight;

int count = 0;
int colorStep = 15;
int circleCount;
float endSize, endOffset;

int actRandomSeed;


void setup() {
  size(800, 800);
  tileWidth = width/tileX;
  tileHeight = height/tileY;
}

void draw() {
  noFill();
  stroke(125, 0, 170,86);
  background(255);
  randomSeed(actRandomSeed);

  translate((width/tileX)/2, (height/tileY)/2);

  circleCount = mouseX/20 * 4;
  endSize = map(mouseX, 0, width, tileWidth/2, 2);
  endOffset = map(mouseY, 0, height, 0, (tileWidth-endSize)/2);

  for (int gridY = 0; gridY <= tileY; gridY++) {
    for (int gridX = 0; gridX <= tileX; gridX++) {
      pushMatrix();
      translate(tileWidth * gridX, tileHeight * gridY);
      scale(0.8, tileHeight/tileWidth);

      int toggle = (int)random(0,4);
      if (toggle == 0) rotate(-HALF_PI);
      if (toggle == 1) rotate(0);
      if (toggle == 2) rotate(HALF_PI);
      if (toggle == 3) rotate(PI);

      for (int i = 0; i < circleCount; i++) {
        float diameter = map(i, 0, circleCount-1, tileWidth, endSize);
        float offset = map(i, 0, circleCount - 1, 0, endOffset);
        ellipse(offset+1, 2, diameter, diameter);
      }
      popMatrix();
    }
  }
}

void mousePressed() {
  actRandomSeed = (int) random(100000);
}

f:id:heyassy:20180911011042p:plain

マウスの位置で円の動きを変える

/*
 * 2018/09/09
 */

float tileCount = 40;
int circleAlpha = 80;
int actRandomSeed = 0;

void setup() {
  size(640, 640);
}

void draw() {
  translate(width/tileCount/4, height/tileCount/4);
  background(0);
  smooth();
  noFill();

  randomSeed(actRandomSeed);

  stroke(250, 125, circleAlpha);
  strokeWeight(mouseY/60);

  for (int gridY = 0; gridY < tileCount; gridY++) {
    for (int gridX = 0; gridX < tileCount; gridX++) {
      float posX = width/tileCount * gridX;
      float posY = height/tileCount * gridY;

      float shiftX = random(-mouseX, mouseX)/35;
      float shiftY = random(-mouseX, mouseX)/40;

      ellipse(posX+shiftX, posY+shiftY, mouseX/15, mouseY/15);
      if(mousePressed){
      rect(posX+shiftX, posY+shiftY, mouseX/15, mouseY/15);
      fill(250,200,200);
      
      }
    }
  }
}

void mousePressed() {
  actRandomSeed = (int) random(100000);
}