2016.Aug.25
具体性に欠けた形をした食べものはかわいい。「料理」というよりは「材質」みたいな、なんかそういうボワッとしたもの。
ジェネレーティヴに何かする時、意識すること
- 直交座標以外の座標系に変換してみる (極座標、球面座標など)
- RGB以外の色空間に置き換えてみる(HSB、LUVなど)
- 値自体ではなく、値の変化量に操作を加える(速度にlerpを適用)
- Robert Penner氏のそれ以外の、別のイージング関数を考えてみる
- Add、Screen、Overlay、Multiply以外のレイヤーモードを考える
- 予めPhotoshopでカラーパレットを作っておく。その時、単に色相違いにするだけでなく, 複数のトーンを組み合わせるようにする(肌色と真っ青、テニスボール色と煉瓦色)
- 前の値や描画結果に対して差分を加える
- 前の描画結果全体をテクスチャとしてbindした状態でポリゴンを描画してみる
- リッチ感を出すために加えがちな光学現象のセットを、別の一貫したルールに置き換えてみる(David O’Reilly氏のエッセイ)
- パラメトリックに完結させずに、物撮り素材を使ったり、1つ1つ手打ちしてみたりする
- オイラー法の誤差、Z-Fightingなどの浮動小数の丸め込み誤差に由来するグリッチを逆手に取る
After Effectsに求めること (妄想)
- コンポジション毎にレンダリング設定, 出力パスを保持できる
- ↑に加えて, 静止画書き出しの設定も保持できる
- 出力パスのテンプレート文字列に, 日付フォーマット追加
- コンポジションのレイヤーのフォルダ機能
- Bool値のキーフレームは, 形状や色で真偽を判別できる
- プロジェクトファイルごとに, 連番のデフォルトFPSを設定できる
- レイヤー選択状態でショートカットキーでSpotlight的な小窓が開く. インクリメントサーチでエフェクトを追加できる (C4DのShift+Cに相当)
- エフェクト&プリセット フォルダ名でも絞り込めるように. (ベンダー名の検索にも対応)
- レイヤーインスタンス機能. エフェクトを加えた調整レイヤーなどを, そのままインスタンスとして複製でき, 他コンポジションで再利用できる. 元の調整レイヤーを変更すると, インスタンスに反映される.
- AEP同士のDiff, マージ機能
- ExtendScript, ES6とCommonJSのサポート
- コンソールウィンドウ
新しいコンポジションの種類
子コンポジション
普通のコンポジションから, 再利用性を一切抜いたもの. 特定のコンポの中に, 一度のみ使われる.
TCも親コンポに同期していて, プロジェクトパネル上でも親コンポの子要素として表示される. フォルダ機能にも近く, 親コンポのレイヤーパネルの中で, Finderのツリー表示よろしく展開することもできる.
クラスコンポジション
普通のコンポジションは再利用性がある一方, 再利用先のコンポ内でそれぞれに別の見え方になるような設定を個別にできなかった. クラスコンポジションは, よりコンポジションを抽象化することで, そういった問題を解決する. コンポジション自体に, カスタムプロパティを設定できる. 「コントロールエフェクト」をコンポジションに追加できるイメージ. そのプロパティはエクスプレッションを用いてコンポ内のレイヤーのプロパティとひも付けることができる. 再利用先の親コンポから, クラスコンポジションのカスタムプロパティを設定することで, クラスプロパティ内のレイヤーを再利用先から間接的に制御できるようになり, ある種のカプセル化が可能になる.
2016.Jun.18
メディアアートやcreative codingは, ワークフローや技術へのニッチな興味・研究をファッションライクに表現する捌け口になっている側面もある気がするので, コードをコードとして, 論文を論文として発表出来る人は個人的に煩悩を断ち切っていてかっこいい気がする.
WordPressのテーマをJadePHPで開発
最近Web作る調子上がってきたのでポートフォリオを一新したんですが, gulp
, webpack
, stylus
, ES6
, JadePHP
あたり使ってつくりました. Jade自体がテンプレートエンジンなんで, WordPressのphpテンプレート関数との相性が悪かったりしますが. そのあたりメモ.
インストール
npmから. gulpで使ったんで, 僕はこっち使った, gulp-jade-php. 書いてある通りだけど, コンパイルしたら拡張子もjade→phpに変わります.
テンプレート
WP側のテンプレート階層を使わず, index.php
から全切り替えしてる. 考え方としては, JadeになるたけPHPを入れず, こまいのは全部関数として別途phpにまとめる. グローバルヘッダーとか, メタ情報とか, 全ページ必ずインクルードするって分かりきってるとこは, Jade側でまとめてやって, 動的に切り替える部分だけget_template_part()
使う.
index.jade
- require('includes/view.php');
doctype html
html
head
include ./jade/_meta.jade
body
include ./jade/_gheader.jade
.content
- if (is_page('about')) :
- get_template_part('page/about');
- elseif (is_home()) :
- get_template_part('page/work-list');
- else :
- get_template_part('page/post');
- endif;
footer.gfooter
- if (is_single()) :
- edit_post_link();
- endif;
script(src='#{template_path}/js/highlight.pack.js')
script(src='#{template_path}/js/bootstrap.js')
_meta.jade
meta(name='twitter:image:src' content='<?= og_image(); ?>')
title <? title() ?>
view.php
<?
// ...
function title() {
echo wp_title('|', true, 'right') . '麦 : Baku';
}
function og_image() {
if (is_single() && get_post_type() == 'work') {
$path = MultiPostThumbnails::get_post_thumbnail_url('work', 'wide');
} else {
$path = "/wp-content/themes/baku89-2016/img/ogimage.jpg";
}
echo "http://$_SERVER[HTTP_HOST]$path";
}
?>
テンプレート関数使えよ, って感じだけど面倒いからそのまま.
Shortcode
あんま, HTMLの文字列とPHPのコードを "<dl>" . $title . "</dl>"
みたいな感じで繋げたくなかったから, Shortcodeも無理やり分離. 例えば.
functions-shortcode.php
<?
// ...
function shortcode_vimeo($atts) {
extract( shortcode_atts( array(
'id' => '',
'src' => null
), $atts ));
$embed_url = "//player.vimeo.com/video/$id?title=0&byline=0&portrait=0&color=ffffff";
$is_work = get_post_type() == "work";
ob_start();
include(locate_template('partials/vimeo.php'));
return ob_get_clean();
}
add_shortcode('vimeo', 'shortcode_vimeo');
?>
vimeo.jade
一部省略.
a(class='embed embed--vimeo <? if ($is_work) echo "wide" ?>')
img.full(src='<?= $src ?>')
iframe(data-src='<?= $embed_url ?>' frameborder='0' allowfullscreen='' webkitallowfullscreen='' mozallowfullscreen='')
.center-button
.center-button__body
.center-button__text PLAY
phpが公開側フォルダ, jadeがソース系まとめたフォルダに分離しちゃうんは気持ち悪いし, phpもsrc側置いてコピーするのもアリだけど, めんどかったからそのままにした.
OUT OF DOTS
3年振りのOUT OF DOTSでPARKGOLFさんのVJさせて頂きました。DOMMNUEでSetsuya Kurotaniさん、Beyond Code #2でlycoriscorisさんのVJもしつつ, ちょくちょくバージョンアップさせてった感じです。
最近実験していたFeedback Displacementを無理やりVJしてます。基本VJ用の動画素材作るのが苦痛なので、僕のiPhoneに入ってた写真を適当に投げ込んでます。どんな画像でも、いい感じに抽象的なグラデーションになるんで面白い。
仕組み的にはoFとGLSL、カメラワークや3DモデルはC4Dから書き出してる。GLSLのビルドをGlslifyってWeb向けのツールでやってみた。Web向けなんで、oFのGLSLで動く組み込み関数で弾かれたりして、まだちょっとやりづらいけど、stackglのリソース使えるんでデカイ。gulpで監視して, ビルド終わったらgulp-oscでoFに通知出してofShaderでリロードしてたら、比嘉さんに, 普通にファイルの最終更新日時引っ張ってた方が早いって教えてもらった。
VJネタとしてシンプル過ぎてキツかったんと、もっと照明的に気持ちよく効いてくるような作り方をしたいって反省はあるけど、もう少しこの手法を発展させて形にしたいなー思ってます。
Twitter投稿してくれてる人いた。
https://twitter.com/keiji_307/status/725701367851937792
https://twitter.com/keiji_307/status/725699646362816513
2016.Apr.10
世の中の結構な割合のマナーが, 「別に知らなければ守られなかろうが何とも思わなかったけど, そういうものだと教えられて表面的に従っているうちに, 感情としてマナー違反を見るとムカつくようになってしまった人達」をムカつかせないために維持されているし, それがマナーを守る根拠たりえるのがこわい.
結構な割合の性的魅力が, 「 天敵にくわれない程度に足が速い」みたいな実利的効用以上に, 「その形質がその社会において性的魅力としてみなされている」ということ自体がそれを性的魅力たらしめている, ってのも似てる気がする.
こういうのをうまく抽象化して説明できる知識がないから辛いのだけど, なんてか, 最初は何か直接意味のある所から始まった概念が, フィードバック性を持ってその概念を補強し続けるうちに形だけが残って一人歩きしていくような現象が全体的にこわい.
非常識な行為を, 「非常識である」ということを根拠に批判するのとか, よくよく考えたらすごく奇妙なことで.
とはいっても, クチャラーへの嫌悪感が, たまたまそういう文化に生まれたから後天的に形成されたものに過ぎないんよって説明されたとしても, クチャラーが嫌なんは変わらないけど.
Moodhut
MoodHutのライブイベントでVJ。 Cloudfaceと、Powder。
I did vjing with with normal fluorescent tubes at our office pic.twitter.com/sulIrP6hZS
— Baku 麦 (@_baku89) March 29, 2016
オフィスでやったので、オフィスらしさを活かす方向で。group_inou – EYEの制作でも活躍した、ENTTEC DMX USB PROを使って、DMX経由で強引に蛍光管の電源をオンオフする。ジリジリする感じが面白かった。
事務所中のモニターや散乱するiPadも光らせた。グラデーションなどのシンプルめな映像素材でVJしつつ、それぞれのモニターが映像中のどのピクセルをサンプルするかを指定する。あとは、VJ用Macからブラウザを全画面表示させた各モニター向けて、WebSocketで色情報を送るだけ。考え方的にはステージ照明の制御でもよくやるやつ。
ビジュアル・プログラミング
Final CutもAdobeもCinema4Dも、コードを介さないビジュアルプログラミング環境とみなせば、デザイナーも映像作家もある意味でプログラマーだ。本業のプログラマーとの違いは、どこまで低レイヤーまで自分でコントロールしたいと思うか、の精神性の違いでしかない。
映像をつくるためにアセンブラから書くのは流石にしんどいので、誰かが作ったプログラムのうち、GUIとして表示された限定的なパラメーターを調整することに留めている。つまるところ、デザイナーとしてのぼくらは日常的に「低次の特徴量を弄り倒す自由度と、高次の特徴量チューニングの容易さ」との天秤で、どちらかというと後者に重きを置いている。局どの部分をカプセル化して, どの部分をデザイナーがコントロール出来るようにUIに落とすかは、ツール設計者の恣意に委ねられている。
一番怖いのは、そうとも知らずに、そうして外部化されたパラメーターだけがコントロールできる全てだと勘違いしてしまうことだ。それってのは、開発者都合で設定されている制約を、制約として意識すらしないことだ。
映像ソフトの殆どは、並列処理がし易いよう、現在のフレームを生成するために前後のフレームに依存するような処理を許さない仕様になっている。ゆえにクレイアニメのような作り方や、ビデオシンセサイザーのフィードバック回路のような仕組みをそもそも選択肢として思いつかないように習慣づけられている。UVリマップやディスプレイスメントマップについて考えてみても、大概ピクセルのオフセットがX, Y軸の直交座標値として解釈される。例えば2つのチャンネルを極座標方向の変形として処理するだけで面白い風合いのグラフィックが出来るのかもしれないのに、その可能性にも気づけない。
そういうちょっとした引っ掛かりがいちいちストレスに感じるので、AEとかCinema4Dを従順に使うのではなく、スクリプトやプラグインを書くことでほんの少しだけ低レイヤーな部分から弄ってやろう、というのが自分の制作態度だ。もちろんそれでも完璧なコントロールが出来ているというわけではなく、openFrameworksだったりThree.jsなど、例レイヤーな仕組みを分かりやすくラッピングしたシステムのごくごく高級な部分を触ってるだけに過ぎない。
「プログラムで映像作るニュージェネ」という印象を持って頂けること自体は別に否定するつもりは無いし、そもそも自分を認知して頂けるだけで有り難い。ただ自分の肌感覚として、プログラミングと映像の融合といったものを意識してるつもりは無いし、そもそも理系と文系、デザイン思考とエンジニア思考を二項対立的に捉えてしまう時点で、なんか筋が違うんだよなぁ、とふんわりと思っている。
2016.Feb.21
形骸化した作法を「そういうものだから」と疑うことなく受け入れること以上に、「理屈の上では無意味かもしれないけれど、『そういうものだから』と考える人もいるから一応はそうすべきだ」っていう考え方こそがそのクソ作法を生かし続けるのにずっと大きく加担してるんだと思う