プログラムで映像をつくるとは?? ~超入門編~

59
ププププププププププププププ プププ ?? !! 神神 神

Upload: ryo-kanda

Post on 14-Apr-2017

885 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: プログラムで映像をつくるとは?? ~超入門編~

プログラムで映像をつくるとは?? 超入門編!!神田 竜

Page 2: プログラムで映像をつくるとは?? ~超入門編~

目次• 自己紹介• 作例紹介• 触ってみよう

Page 3: プログラムで映像をつくるとは?? ~超入門編~

自己紹介• 神田竜• Kezzardrix 名義で活動• フリーランスのプログラマ• VJ• SjQ++• VMO• HEXPIXELS• 展示の手伝いとか

Page 4: プログラムで映像をつくるとは?? ~超入門編~

自己紹介• LINE スタンプなども出しました• ケザドリ

Page 5: プログラムで映像をつくるとは?? ~超入門編~

自己紹介• クリエイターケザドリ

Page 6: プログラムで映像をつくるとは?? ~超入門編~

自己紹介• ヒップホップケザドリ

Page 7: プログラムで映像をつくるとは?? ~超入門編~

自己紹介• ケザジジケザババ

Page 8: プログラムで映像をつくるとは?? ~超入門編~

本日よろしくお願い致します !!!

Page 9: プログラムで映像をつくるとは?? ~超入門編~

作例紹介

Page 10: プログラムで映像をつくるとは?? ~超入門編~

映像仕事多い

Page 11: プログラムで映像をつくるとは?? ~超入門編~

ほぼ全てプログラミングして作る

Page 12: プログラムで映像をつくるとは?? ~超入門編~

プログラミング映像の利点• レンダリング待ちがない!• リアルタイムに色々出来る! → 何かに反応 → パラメータを変更可• かゆいところに手が届く! → 便利な機能を思いついたら自分で作る → デバイスと組み合わせるとか 

Page 14: プログラムで映像をつくるとは?? ~超入門編~

SjQ++

• https://vimeo.com/77019029

• オーディオビジュアルな即興演奏バンド• 楽器を個別にセンシング• 演奏を聞いて映像を変える• 映像を見て演奏を変える→  お互いにフィードバックする

Page 15: プログラムで映像をつくるとは?? ~超入門編~

SDKezzardrix

• https://vimeo.com/160073609

• レーザー担当の Motoi Shimizu 君とのユニット• レーザーと PJ をキャリブレーションして使う

Page 16: プログラムで映像をつくるとは?? ~超入門編~

パフォーマンス• Dividual Plays• 安藤洋子 + YCAM によるプロジェクト• http://special.ycam.jp/ram/

• 自作モーションキャプチャを利用• https://vimeo.com/121890356→ 客ではなくダンサーに見せる映像 →ダンスの動きのアイデアになる情報を作る

Page 17: プログラムで映像をつくるとは?? ~超入門編~

展示案件• 天吊のセンサーカメラ (KinectV2) で人を検知• ネットに出せません案件

Page 18: プログラムで映像をつくるとは?? ~超入門編~

映像制作• LITE の MV• https://www.youtube.com/watch?v=

tTVs1MoR2kA

• 事前に楽器のファイルをバラで貰って解析• リアルタイムで動かしてキャプチャ• Take20 くらい撮った• 初回のを未編集で採用。。。

Page 19: プログラムで映像をつくるとは?? ~超入門編~

まとめ• 普通の映像制作じゃ無理なこと→  インタラクティブ、他セクションとの連携• 普通の映像制作じゃめんどいこと→ 事前解析、データベース、ランダマイズ

Page 20: プログラムで映像をつくるとは?? ~超入門編~

んじゃ、実際どんな感じで作るの?

Page 21: プログラムで映像をつくるとは?? ~超入門編~

何使うの?&どんな流れで作るの?

Page 22: プログラムで映像をつくるとは?? ~超入門編~

プログラミング環境の種類• 色々あります• ビジュアルプログラミング• コードをガリガリ書くもの• ゲームエンジン              ↓        それぞれ特性が違う!

Page 23: プログラムで映像をつくるとは?? ~超入門編~

ビジュアルプログラミング

Page 24: プログラムで映像をつくるとは?? ~超入門編~

ビジュアルのプログラミング?

Page 25: プログラムで映像をつくるとは?? ~超入門編~

ビジュアルでプログラミング!

Page 26: プログラムで映像をつくるとは?? ~超入門編~

ビジュアルプログラミング• GUI を使って開発• 多くの環境が、箱と箱を線で繋いで開発→  パッチング→  動かしながら開発できる• プログラミング初心者でも参入しやすい

Page 27: プログラムで映像をつくるとは?? ~超入門編~

Max7• Cycling74 が開発 → https://cycling74.com/

• 音楽と映像を同時に扱える• 業界標準• 元々は音楽用のソフト → 音響処理が超得意

Page 28: プログラムで映像をつくるとは?? ~超入門編~

Max7• 有料• 昔は高かったけど、今は安い

Page 29: プログラムで映像をつくるとは?? ~超入門編~

Pure data• https://puredata.info/• Max にも関わっていた音楽家が立ち上げ• 無料• 音響処理は強い• 映像も扱える• 編集のこなれ具合でいうと Max には劣る → パッチの整理とか

Page 30: プログラムで映像をつくるとは?? ~超入門編~

VVVV

• https://vvvv.org/documentation/jp.propaganda

• Windows のみ• 有志が開発したプラグインが凄い• DirectX によるレンダリング

Page 31: プログラムで映像をつくるとは?? ~超入門編~

Touch Designer

• http://www.derivative.ca/

• Windows のみ• GUI が独特• 照明の制御などにも使われる

Page 32: プログラムで映像をつくるとは?? ~超入門編~

まとめ• プログラミングの入門にはかなり良い• Max がオススメ• かゆいところに手が届かないことがある→ 自分で箱自体を作ることも可能 → ソースが公開されてるので頑張って書く• GUI を描画しているので、少し重い

Page 33: プログラムで映像をつくるとは?? ~超入門編~

2、コードベース

Page 34: プログラムで映像をつくるとは?? ~超入門編~

コードベース• エディタを使ってコードを書く• コードからアプリケーションを生成

Page 35: プログラムで映像をつくるとは?? ~超入門編~

コードベース• 利点• (ほぼ)なんでも好きなように出来る → 足りない機能は自分で開発可能• 欠点• 全部自分で書かないといけない → カメラの設定、物体の質感 → 設定を保存したかったら保存機能を開発

Page 36: プログラムで映像をつくるとは?? ~超入門編~

コードベース• 多くの環境が開発と実行が分かれている → 動かしながらコードを変えられない → コードがアプリケーションを吐くまで待つ  → コンピュータがコードを解釈  → アプリに固める処理をやる   → コンパイル

Page 37: プログラムで映像をつくるとは?? ~超入門編~

閑話休題

Page 38: プログラムで映像をつくるとは?? ~超入門編~

プログラミング言語の話

Page 39: プログラムで映像をつくるとは?? ~超入門編~

言語は色々あります• C言語• C++• C#• Java• JavaScript → 全部文法が違う → 文法は違うけど、基本は同じ → 英語とか日本語と同じ

Page 40: プログラムで映像をつくるとは?? ~超入門編~

今日紹介するのは• それらの言語で書かれた便利なコード集• アートとかデザイン向けの機能• ツールキット• ライブラリ→  便利な機能は先人が作ってくれている → ウィンドウを作るとか誰が開発しても同じ  → その上で中身のネタを作る• 言語そのものがわかれば拡張可能

Page 41: プログラムで映像をつくるとは?? ~超入門編~

クリエイティブコーディング• oF とか Processing とかをまとめてこう呼ぶ• Cinder がカンヌをとったくらいから?• バズワード

Page 42: プログラムで映像をつくるとは?? ~超入門編~

Processing

• https://processing.org/• 教育向け• Java ベースの言語

Page 43: プログラムで映像をつくるとは?? ~超入門編~

Processing

• 難易度は比較的低め• 開発環境の導入がしやすい → 落としたらすぐに動く• Java で動いているのでちょっと重い

Page 44: プログラムで映像をつくるとは?? ~超入門編~

openFrameworks• http://openframeworks.cc/ja/• 通称 oF• 日本では恐らく一番人気

Page 45: プログラムで映像をつくるとは?? ~超入門編~

openFrameworks• 様々なオープンソースのコードを利用→ 映像生成→ 動画再生→ サウンド→ デバイスなど• これらを繋ぐ「糊」のようなもの• アドオンと呼ばれる拡張機能を有志が開発→ http://ofxaddons.com/

Page 46: プログラムで映像をつくるとは?? ~超入門編~

openFrameworks

• 利点• C++ ベースなので速い• 日本のユーザー多めでコミュニティもある → 質問がしやすい• C++ が難しい• C++ は果てしない

Page 47: プログラムで映像をつくるとは?? ~超入門編~

Cinder

• https://libcinder.org/about• oF と同じく C++• モダン OpenGL など、新しい機能を積極的に取り入れる

Page 48: プログラムで映像をつくるとは?? ~超入門編~

Cinder

• 映像のかなり深いところまで開発しやすい• oF よりもエンジニア向けに色々設計されてる• 初心者向けではない →  example も難しめ → 映像プログラミングの深いところを知らないと意味不明なコードが多い

Page 49: プログラムで映像をつくるとは?? ~超入門編~

Three.js

• http://threejs.org/

• Javascirpt ベースのツールキット• WebGL が動く → スマホでも3 D が表示できる 

Page 50: プログラムで映像をつくるとは?? ~超入門編~

ちょっと oF 書いてみます?

Page 51: プログラムで映像をつくるとは?? ~超入門編~

openFrameworks

• void 〜 () というブロック• 関数と呼ぶ → 仕事毎に役割分担するようなもの• それぞれの関数に処理を分けて書く

Page 52: プログラムで映像をつくるとは?? ~超入門編~

openFrameworks

• setup→ アプリ全体で使う設定 → アプリ起動時に一度だけ呼ばれる• update→ 毎フレームの更新処理• draw→ 描画処理

Page 53: プログラムで映像をつくるとは?? ~超入門編~

まとめ• 細かいことは色々出来る• リッチな表現などをやろうとすると大変そう

Page 54: プログラムで映像をつくるとは?? ~超入門編~

ゲームエンジン• ゲームを開発する用途に作られたもの• GUI で操作• コードもかける• 便利な機能が盛りだくさん• デザイナーでも作業できる• 自分で拡張するのも可能• 出来ないことは出来ない 

Page 55: プログラムで映像をつくるとは?? ~超入門編~

ゲームエンジン• 昔はゲーム会社だけが大金払って使用• モバイルゲームなどの普及でゲーム開発も個人へ• 個人でも使えるようにライセンス緩和• 売り上げが少なければタダで使える

Page 56: プログラムで映像をつくるとは?? ~超入門編~

ゲームエンジン• ゲーム作んないけどアートとか展示に便利そう• oF で全部作ると→  最新のレンダリングテクニックの実装大変

Page 57: プログラムで映像をつくるとは?? ~超入門編~

Unity

• http://japan.unity3d.com/• 最新バージョンは 5• 昔は有料だった機能もタダで使えるように• デスクトップアプリ、モバイルアプリ、 web 開発など幅広く対応• アセットストアが充実 → 金の力で解決だ

Page 58: プログラムで映像をつくるとは?? ~超入門編~

Unreal Engine

• https://www.unrealengine.com/ja/what-is-unreal-engine-4

• ゲーム業界での実績が凄い• 立ち上げた瞬間から絵が綺麗 →ハイスペックの PC でないと動かない

Page 59: プログラムで映像をつくるとは?? ~超入門編~

Unity を体験してみる• GUI で操作• マテリアルの設定とかすぐ• コードも書ける → 外部エディタで書く  → 言語は C# か JavaScript

• draw がないので描画は Unity任せ → 拡張しようとすると色々めんどい  → でも、僕ら的にはそこが一番楽しい