3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2017年2月25日土曜日

Blogger Templete 変えてみた


すごい!

本ブログは、GoogleのBloggerを使用してますが
使い始めてもう2ヶ月、見た目を変えてみることにしました。

テンプレートをダウンロードして適用するだけ。
BTempletesの使用手順はこちら



今まで投稿した内容が、バシッ!と反映されてる。
テンプレートも種類いっぱいあって、気にいるのがあってよかった。

ちなみにこちらのテンプレート使わせてもらいました。
写真がいっぱいの投稿だったらビジュアルメインのスタイルがかっこいいけど、僕のはテキストメインなので適度に文字の説明もあるのにしました。

とにかく、投稿するのが楽しくなりそうです。
いやーやっぱり「とにかくやってみる」ってブログ始めた2017年ですが、大正解でした。
まずやる。最初は質素でよくて、徐々に精錬していく。
それを実感してきました。


これからもとにかく投稿!
しょ〜もないことでも、恥を捨ててアップしていこう。

2017年2月24日金曜日

Processingでサイン波 


超基本(?)ですが、いまさらながらサイン波

そのままではおもしろくないので、X方向に明るさのことなる点を作成して
それをサイン波で動かす。



さらに、マウスの位置でインタラクティブに変動するように。


実行結果↓



ちなみに今回からGist使ってみました!
プログラムを載せるのに便利、色変わるのとか、行番号とか!
こちらのブログを参照させてもらいました。

正直、GitHubのアカウント作ってたけど全然活用してなかった。
でもこれからはBlog用にGist多用すると思われます。
便利なものがたくさんありますね。

2017年2月23日木曜日

Processing openCVで内臓カメラ初テスト


processing で openCV を試す
ノートパソコンのカメラからリアルタイムに認識させる。


はじめにProcessingのライブラリインポートからopenCVを検索、
openCV for Processing があったのでDLするが・・・
エラーで内蔵カメラが使用できず困っていました。

「hypermedia が見つかりません」


調べてみたら、openCVをインストールしたら行けるとのこと。
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.2.0/
openCV本体を入れるのは必須★

手動DL&インストール


・内蔵カメラを使ったサンプル
http://www.d-improvement.jp/learning/processing/2011-b/06.html

全然できない。

失敗です!!!汗
これも経験(涙)!
以上、失敗メモでした。。。

Processing で音連動サイン波


綺麗な映像作りたい!ということで



これ。
「Houdini、NUKE、Aftereffects、Processing使ってるよ」って書いてるけどどこをどうやってるのかわからず悩んでたら、以下の動画で解説してくれてた。




要は、、

Processingでグレースケールのサイン波を作成(音連動)

サイン波素材から、AftereffectsのForm(プラグイン)でパーティクル作成


おーFormってOBJファイルからもパーティクル読み込めるみたい。
さらにOBJシーケンスも行けるとのこと。
使ってみたいなぁ。



というわけで今回は、グレースケールのサイン波素材を作ります。
音に連動したやつ、もろに参考のような動きを目指して☺️


2017年2月20日月曜日

pythonで簡易ダンピング処理


スクリプト作成メモ

C4DでのXpressで、音素材の音量変化を穏やかにする目的で作成。

##===============
## ダンピング
##===============
# FFT処理で音量出力の際、フレームごとに変化が大きすぎて困るときのダンピング処理。変化を穏やかにします。
# 内容としては、現在のフレームから遡って値の和&平均を取る。
# 何フレーム前までの和をとるか、任意に設定できます。
#

#任意の値
recNum = 5 #何フレーム前まで保存するか
newValue = 1 #フレームごとに記録する値(Input)を指定。例では定数にしています。

#初期設定 最初のフレームでのみ実行
recList = [0.0 for i in range(recNum)] #記録する配列の初期値

#処理
recList.pop(0) #一番古い値を削除
recList.append(newValue) #現在のフレームの値を追加
recAvg = sum(recList)/recNum #平均値計算

#アウトプット
#Output = recAvg

2017年2月15日水曜日

Processing で3D描画


日頃、3DCGソフトのビューポートで、空間をぐるぐるしてますが、自分で改めてプログラムすることでカメラの基礎トランスフォームを再認識。

あとopenGLを使うということにゾクゾク!

リアルタイムにぐるぐるするのって、
単純でもやっぱり楽しい!

processing_line3D from dekapoppo on Vimeo.

こんなに簡単に3Dできるなら、
こんな感じのコンテンツ、作ってみたいなぁ。
ただ、身体経験と繋げたい。
「探る余地」を残す。

2017年2月8日水曜日

Processing OPPとクラスのお勉強3


色をランダム、フルスクリーン。
また、スクリーンサイズ丸の数だけ指定すれば、
丸の位置やサイズは自動で計算されるように改良。

見返さずにゼロから作成。。。なかなか覚えられない!
とにかく書いてテクニカルな障壁は早く解消したい。



以下スケッチ

int spotsNum  = 50;


Spot[] spots = new Spot[spotsNum];

void setup(){
  //size(600,200);
  fullScreen();
  smooth();
  noStroke();
  //配列の数だけパラメーた作成
  for (int i = 0;  i  < spots.length;  i++){
    float x = width/spots.length * i;
    float speed = random(1,5);
    color col = color(random(255),random(255),random(255));
    //インスタンス化
    spots[i] = new Spot( new PVector(x,30),width/spots.length,speed,col);
  }
}

void draw(){
  fill(0,12);
  rect(0,0,width,height);
  for(int i=0; i < spots.length; i++){
    spots[i].move();
    spots[i].display();
  }
}

class Spot{
  PVector pos;
  float  diameter;
  float speed;
  color col;
  int direction = 1; //方向
  //コンストラクタ
  Spot(PVector _pos, float _diameter, float _speed,  color _col){
  pos = _pos;
  diameter = _diameter;
  speed = _speed;
  col  = _col;
  }
  //アニメ
  void move(){
    pos.y += speed * direction;
    if(pos.y < height/spots.length || pos.y > height-height/spots.length){
     direction *= -1;
    }
  }
  //表示
  void display(){
    fill(col);
    ellipse(pos.x, pos.y, diameter, diameter);
  }
}

2017年2月7日火曜日

手づかみ離乳食 ライスボール♪



11ヶ月のこども用に
手づかみで食べやすいライスボールです!



レシピはいたって簡単♩
ご飯に、かつお節、青ネギ、いりゴマを混ぜて
醤油を2-3滴たらして、丸めて焼くだけ。

手づかみご飯は
●適度な大きさ!直径2-3センチ
●ベタつかない!
●ポロポロしない!
これ大事です。

というわけで、
焼いた後に水分を飛ばすために
5分ほど網にのせました。
※放置しすぎは逆に固くなりそう!


以上、離乳食レポートでした。



2017年2月5日日曜日

S-log 編集


SONY RX10 m2 で4K、S-log撮影してみた


とにかく階調が穏やかで、くせのない映像はいいですね。
どんなグレーディングにもできそう。
LUTはsony公式の使ってS-log2 gamut から709にしたけど、なんか違う気がする。。

ということで、以下サイトからLUTをダウンロード
https://www.convergent-design.com/preset-luts


あと気になった動画
現場での、s-logでの適正露出確認方法。
➡️カラーチャートの18%GrayをIRE32%として調整





















残念ながらRX10 m2でのゼブラ機能はそこまで調整できませでしたが
これからどんどん「感覚」だけじゃなく、数値で正確な映像が撮影できるようになっていくんですね。デジタルすごい。。

s-logに関するメモ
コントラストとサチュレーションを少し調整するだけで編集に入れる
・明るく撮ると階調にバンディングが、暗く撮るとノイズが出やすくなる
  推奨:明るいとこRec.709、暗いところs-logでデノイズ
LUTでの色調補正は最後に当てる


◾️4K編集ワークフロー
davinciでのワークフロー
※参考サイト 
http://vooook.com/283

D) 4K素材をDaVinci上でオプティマイズ > DaVinciにて編集・カラコレ・マスタリング

そのまま編集しようとしたら、コマ落ちでひどい状況に。
やっぱりプロキシとかオプティマイズは必須です。


あと、こういう解説動画をアップされてる方々には本当に感謝ですね!






2017年2月3日金曜日

Processing OPPとクラスのお勉強2


前回の続きで、yoppaさんの講義を進めてみます!
Processingでオブジェクト志向プログラミング

とりあえず、講義のまま
プログラムを書いて書いて書いて、体で覚える!!!
次のようなステップアップレッスンでした。

①クラス使わずに丸描画
②クラスを使って丸描画
③クラスを使って、移動する丸を描画
④クラスを使って、移動する丸を複数描画
⑤クラスを使って、移動する丸を大量複製描画(for文)






最終的に、
100個インスタンス化して、
色をランダムにしてみた。


color型使い勝手がわからず苦戦!
『new』をつける・つけないの違いがわからない。。
とりあえず解決したからいいか。


参考サイト
color型について

2017年2月2日木曜日

デジタルクリエーティブパイプラインについて


デジタルクリエーティブパイプライン

映像制作っていうことでは
①手描きスケッチ
②クリエーティブコーディング(半自動生成するやつ全般)で具体的なビジュアル
③3DCGでリッチなものに。マルチパス書き出し。
④ポストエフェクト?でより説得力のある画づくり。

Processing OOPとクラスのお勉強


・・・恥ずかしながら、サンプルスケッチがわからん!笑ということで
基礎の基礎のお勉強からしていこうと思います。


yoppaさんの講義でお勉強させてもらいました!(感謝)
Processingでオブジェクト志向プログラミング



・クラスの作成(定義?)
・クラスに動作を実装
・オブジェクトを宣言
・オブジェクトの作成=インスタンス化


PythonはMayaのスクリプト制作でなんだかんだ2年使ってきたので、
今回のOOPの説明は今までよりは理解できたと思います。。


とは言ってもまだまだPythonの方がサクサク使える感じ。
Processing(java)も時間かけて修得していきますか。
最終的にはopenFrameworks(C)で、ガシガシやって速く動くリアルタイムシステム作るようになりたい!!!

2017年2月1日水曜日

Box2d for processing 使ってみた


なかなかProcessing の勉強が進まないので、、
とりあえず物理シミュレーションを「使ってみる!」ということで
Box2Dのサンプルを少し変えてみることから始めてみました。


BumpySurfaceNoiseを使いました。

目標
・box2dのプログラムを理解。落下、衝突、などの基礎部分の理解。
・ノイズの地面を、手描きにカスタマイズできるようになる

進捗
・box2d.step() で落下が始まる
・particles.size() でオブジェクト数が取得できる

やってみたこと
・今回は、初期状態では重力がなく、マウスのドラッッグで文字が書ける。
・g キーを押すと重力が発生して落下する。
・オブジェクト数を画面に表示する




マウスで文字書ける(オブジェクトは落下しない)


gキー押すと一気に落下開始!



ぐわー


ガラガラ!画面上のカウントも変化しています。






以上。
こんなペースで進めていこうと思います(汗)
今年中には何か具体的な作品を作りたいです!!!


=====BumpySurfaceNoise=========
// The Nature of Code
// <http://www.shiffman.net/teaching/nature>
// Spring 2010
// Box2DProcessing example

// An uneven surface

import shiffman.box2d.*;
import org.jbox2d.collision.shapes.*;
import org.jbox2d.common.*;
import org.jbox2d.dynamics.*;
import org.jbox2d.dynamics.*;

//dekapoppo
int grav = 0; //重力のON

// A reference to our box2d world
Box2DProcessing box2d;

// An ArrayList of particles that will fall on the surface
ArrayList<Particle> particles;

// An object to store information about the uneven surface
Surface surface;

void setup() {
  size(500,300);
  smooth();

  // Initialize box2d physics and create the world
  box2d = new Box2DProcessing(this);
  box2d.createWorld();
  // We are setting a custom gravity
  box2d.setGravity(0, -20);

  // Create the empty list
  particles = new ArrayList<Particle>();
  // Create the surface
  surface = new Surface();
}

void draw() {
  // If the mouse is pressed, we make new particles
  if (mousePressed) {
    float sz = random(2,6);
    particles.add(new Particle(mouseX,mouseY,sz));
  }
 
  //dekapoppo
  if(key == 'g'){
    if(grav == 1){
      grav = 0;
    }
     else if (grav ==0){
       grav = 1;
     }
  }
  // We must always step through time!
  if(grav  == 1){
    box2d.step();
  }

  background(255);

  // Draw the surface
  surface.display();

  // Draw all particles
  for (Particle p: particles) {
    p.display();
  }

  // Particles that leave the screen, we delete them
  // (note they have to be deleted from both the box2d world and our list
  for (int i = particles.size()-1; i >= 0; i--) {
    Particle p = particles.get(i);
    if (p.done()) {
      particles.remove(i);
    }
  }

  // Just drawing the framerate to see how many particles it can handle
  fill(0);
  text("framerate: " + (int)frameRate,12,16);
  text("count: "+(int)particles.size(),12,32); //パーティクル数のカウント
  text("press G key  GravityON",12,48); //はじめ重力なし。gキー押すと落下する。
}