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

Preview:

Citation preview

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

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

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

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

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

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

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

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

作例紹介

映像仕事多い

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

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

SjQ++

• https://vimeo.com/77019029

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

SDKezzardrix

• https://vimeo.com/160073609

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

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

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

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

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

tTVs1MoR2kA

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

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

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

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

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

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

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

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

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

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

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

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

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

VVVV

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

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

Touch Designer

• http://www.derivative.ca/

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

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

2、コードベース

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

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

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

閑話休題

プログラミング言語の話

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

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

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

Processing

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

Processing

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

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

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

openFrameworks

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

Cinder

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

Cinder

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

Three.js

• http://threejs.org/

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

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

openFrameworks

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

openFrameworks

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

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

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

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

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

Unity

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

Unreal Engine

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

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

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

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

Recommended