ブログトップ
コンピュータと共にある創造的日常
uneoyaji.exblog.jp

メディアアート・プロジェクトにハマったオヤジの日常生活
by une0exct
<   2008年 08月 ( 4 )   > この月の画像一覧
SVG から CGPathRef へ
エージェントの形を任意のパスの塗りつぶしにできるよう、SVG を読み込む方法を埋め込んでみました。Illustrator で作成した図形を SVG 形式で保存しておき、NSXMLDocument を使って読み込み、NSXMLElement、NSXMLNode を使ってパスのパラメータを読み取り、CGPathMoveToPoint とかの関数で CGPathRef を作成。CGContextTranslateCTM などで Affine 変換を設定して、CGContextAddPath と CGContextFillPath で描画します。複数の図形を順に表示して簡単なアニメーションもれきるようにしました。で、早速、人の形で試してみました。こんな感じ。
b0129209_17261223.jpg

新機能とデバッグを含め、来週中には DT4 v 1.6.2 をリリースできると思います。
ダウンロードはこちらから
[PR]
by une0exct | 2008-08-31 17:28
ボール型エージェント追加
Leopard の Core Graphics でグラデーションの高速描画が可能になったことで調子に乗って円形のグラデーションを使ってボール風に見えるエージェントの描画方法を追加してみました。アルファチャネルだけグラデーションをかけてぼんやりした感じのも試してみましたが、これは CGContextDrawImage を使った方が処理が速いようで、導入は見送りました。ボール風エージェントを入れるとこんな感じ。
b0129209_10275922.jpg

[PR]
by une0exct | 2008-08-28 10:28
Leopard で性能アップ?
DT4 をいろいろいじくっていたところ、CGShadingRef 関係の処理方法が変わったようで、DT4 のタブレット型のエージェント表示が、使い物になるくらい高速になったのと同時に、色にバグが発生してることを発見。マニュアルを見ると CGGradientRef なるものが導入されたらしい。DT4 は今のところ 10.4 Tiger もサポートしたいので、これはお預け。とりあえず、バグは回避せにゃということで、いろいろ試したところ、どうも、shading 関数の結果をキャッシュするらしく、エージェントの色がみんな同じになってしまう。で、CGShadingCreateAxial の引数にいれる CGFunctionRef を、これまで最初に一度だけ作って使い回ししてたのを、毎回新しく作っては解放ということに変えたら、バグは直りました。Tiger ではタブレット型の表示が他のタイプに比べて遅いので、ランダム設定スクリプトの中には入れてなかったのですが、スクリプトの中で system attribute "sysv" を使って OS のバージョンを調べ、10.5 Leopard 以上ならタブレット型も候補に入れるようにしました。
こんな感じ。
b0129209_15181456.jpg

[PR]
by une0exct | 2008-08-22 15:18
DT4 1.6 リリース
ブログの更新を1ヶ月もさぼってしまいました。先週、ようやく DT4 Identity SA のバージョンアップしました。リリースした途端にまたバグが見つかって、間もなくバグフィクス版に取り替えの予定。
音楽のパートを記録した音声データのセットを読み込んで、トラックのリミックスのようなことをする機能を新しく追加しました。これは、当方の研究室の修士課程にいるM君が卒研で取り組んだ機能拡張なんですが、卒研では古いバージョンを改造したので、DT4 1.5 には取り込まれていませんでした。で、今回、統合したわけです。
とやってみると1つ問題が発生。デフォールトでフリー素材から組み立てた音声ファイルを入れて配付するという手もあったのですが、急にファイルが大きくなるのも何なので、GarageBand に付いているループトラックを流用しようとしたわけです。で、手元の2年目 MacBook だと GarageBand ver. 3 なので、サンプルトラックのファイルが AIFF なんだけど、新しい iMac で実行してみると、音がならない! 良くみると GarageBand ver. 4 では、ファイル形式が CAF に替わっていて、AAC をデコードしなきゃならない。急遽 Audio Toolbox の Audio File Service についてお勉強いたしました。AudioConverterFillComplexBuffer を使って CAF や MP3 形式を線形PCMに変換すればよい訳ではありましたが、結構パラメータがいろいろあって混乱しつつ、対応完了しました。
こんな感じです。
[PR]
by une0exct | 2008-08-20 11:09