« Revision 2011 | メイン | 数年ぶりにログインしたw »

2011年08月23日

Evoke 4k あとがき

ドイツのデモパーティEvoke 2011に参加してきた。

パーティのレポートはこちら

Green Cube by System K (4096bytes)

個人的な今回の4kIntro作品の制作後記を述べる。
今回の製作期間は約まるまる1週間である。
曲データは3週間ほど前から制作していたが、
直前で結構直したし、グラフィックスに関してはほとんどできてなかった。
今回はシンセエンジンは自作ではなく4klangである。
4klangが何か知らない人のために少し解説すると、VSTiプラグインとして動作する
4kIntro制作用の超軽量ソフトシンセである。通常のVSTiプラグインとして動作するため
通常のDTM制作などで利用されるVSTホスト作曲ソフトを利用することが可能である。
4klangは特にヨーロッパなどで利用者の多いデモ版は無料のRenoiseで利用されることが
最も想定されている。(4klangについてくるサンプルとかRenoise形式)
4klangを使って作った曲をエクスポートするとVisualStudioやgccなどで
リンク可能なobj形式で出力される。あとはこれをグラフィックスのコンパイルした
プログラムとともにリンクしてやれば4kIntroの出来上がりである。
やはり4klangはすごい。シンセのインストゥルメントデータはほとんど16バイトに
おさまるし。プリセットでついているサンプルも豊富なので、
自分でシンセがいじれなくとも、迫力のある音を出すことが可能である。
悪い点をあげれば、コンプレッサなどがない(俺がみつけきれてないだけだったらすいません)ので、
音の調整などは各インストルゥメントごとに行う必要がある。音が大きすぎると音が割れる。
(もしかしたらやり方があるのか?)
また、シーケンスデータは直接保存しているようなので、
圧縮率が良くない。この辺りは他のTracker系統に近いデータ保持形式を
採用している4k用シンセのほうがシーケンスの繰り返しパターンが多い場合は
有利ではないだろうか。
グラフィックス周りは、シェーダでシーンの構築、シーン遷移を行えるようにした。
今まで4kGfxMonitorをツールとしてつくったが、shaderだけで4kのデモを作るのは
今回が初めてである。
案外サイズは余裕かと思っていたがそうでもない。
開発初期のころはよいが、4kにサイズが収まりにくくなってくると、
shaderコードをいかに短くするかというCodeGolfのようになってくる。
実際には単純に短くしても圧縮率が悪くなるだけということもあり得るが、
とりあえず文字数を短くすれば順調にサイズは減っていった。
(といっても30文字減らして10バイトくらいしか減らない)

実際のshaderコードの圧縮率は1351/2937 (圧縮後/圧縮前)なので46%の圧縮率である。
バイナリコードだと50%程度なので多少はよいよいだが、
shaderコードが複雑化してくると、最終的には同じ圧縮率にむかうのだろうか・・?
このあたりは、同じ変数が出現するようにとか、いろいろ工夫すれば
さらに圧縮率は上げられそうである点ではバイナリコードより有利か。
あとは組み込み関数が多くサポートされているのでそのあたりも有利である。
当初float4などを置き換えない状態では40%程度の圧縮率だったので、
defineしたせいで、圧縮率が悪くなっているのかもしれないが、
置き換える方がよいのか、そうでない方が良いのかまでは調査しきれていない。
開発当初見込んだshaderテキストサイズは3300文字で圧縮率40%なら1300バイト
に収まっていたのだが、圧縮率が下がったせいで2900文字程度のshaderとなった。

全体としては、もっとシーン構成のネタを練るべきだったかと思ったが、
タイムリミットもあったりで、結局あまりまとめられないまま突っ込んでしまった。
今回の結果をみても、4kIntroあまりシーン変化をつけなくとも一発ネタに終始したほうが
ウケる可能性が高いように見受けられる。しかし、単に一発ネタをやるだけだと、
ネタがすべると、だだ滑りになってしまうのでこれがまた難しい。
(というか最初に一発ネタをやろうとして、微妙感がかなりあったので、今回のような
 複数シーン展開にしたのである・・・)
相当に練ったネタじゃないと4kIntro上映中に会場から拍手をもらうのは難しいだろう・・・
まぁ最新のパーティコンペで4kIntroで参加して、何か難しくて何がすごいかは十分に理解できた。
今回の上位の作品も技術レベルとしては不可能な位置にいるようには見えないが、
作品としてあれだけうまく1つの方向にどうやったらまとめられるかはわからない。
やはり、事前に十分な時間をかけてネタを練る必要があるかと思った。
今回のデモは本当に1週間くらいでつくったが、今回のようなある程度ベースがあれば
次作は1週間もかからないだろう。
そうすれば、1週間まるまるはネタをまとめる方向にさけるのだろうか・・・?
せっかく4kIntroベースのシステムができたので、しばらく4kを模索していきたい。
もちろん容量制限なしデモシステムは別途あるのでデモはデモでつくるぜ!!

というわけでまた次回。

投稿者 kioku : 2011年08月23日 01:06