2009年9月29日火曜日

blender - PMDImporterも更新前(2)

頭痛い。出すもん出してから寝ます。
皆様風邪には気をつけましょう。

PMDImporter(uimac版)最新
http://patsuko.net/pmd_importer.py


↑右クリックから保存

モデルの読み込みは大体完璧のはず。
Armatureは、別に前のと同じでいいかーと思って、コピペして書き換えてる途中。
早く使いたい人は、前のでArmatureだけ読み込んでなんとかしてください。


---------------------------------------------------------

自前Blender更新しました。
コンポジットノードにGLSLのZバッファ出力できます。
下のほうの日記に書いてあるやつ。
本体の改造とか余りやりたくないんですけど、できちゃったものは仕方ない。出しますよ出しますよ。


起動画面が面倒なので、これになりました↑

ご覧の通り2.48aですよ。2.49でpython変わるとか聞いてるので、華麗にスルーですよ。

ダウンロードはこちらから
http://sites.google.com/a/render.jp/vmdimporter/Home/hontai-to-tsukaikata

2009年9月27日日曜日

etc - 東京ゲームショー

土曜・・・午後7時まで睡眠後、江波と合流。ロストプラネットの昔のやつの体験版をプレイして、すげーすげーと言う。

日曜

午前8時出発。
気づいたら横浜に到着。
ほったらけ(映画)が見たい。
空気人形(映画)も見たい。
「フラグッ!!!」という画像が見たくなった。
などと話しながらひたすら電車。黒ストッキング率が半端なくて良い。

気づいたら東京ビックサイトに到着。



人少ないなーーー・・・って場所違う!

結局午前12時ごろ、幕張メッセ到着。
全部企業の出展だし、個人的にゲームあまりやらないので、そんなに面白くはなかったかなぁ。



ロストプラネット相変わらずすげえーーーー!!!ってくらい。
あとFFの周り人多すぎて通れない。


今日一番のベストショット。アワードにて。


で、戦利品ですが・・特に売ってるわけじゃないので、全然なし。

一番の戦利品はこちら。CGWORLDのフリーペーパー。
フリーなのにカラーでこの量!お得でした。

2009年9月23日水曜日

etc - 例のツールが公開されてた



さっそくDL。ソースはGPLかー

etc - PMDImporterどうなってんのか

今日で休日終了だから、とりあえず解説でも書いておく。

遥か昔、したらばのこのスレ
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1236262653/
でBlender用のPMDImpoterを作っている俺じゃない人が居た。


どんだけクソややこしいかについては、その人の書き込み↓を見ればわかる。
たぶんこの人の言うエッジというのは、辺のことではなく、頂点インデックスが3つペアになっている、面を表すものである。

42 :36:2009/03/19(木) 01:56:30 ID:HTvkhXFs0
連投ごめんなさい。

>>39
実は、シェイプキーを含まないマテリアルの判定が、いちばんきついかと。
メッシュの分割点を決める時に、ここ、結構悩みました。
PMDでは、関係するデータがマテリアル、バーテックス(頂点)、エッジ、シェイプキーに分かれて記録されていますが、
エッジ情報から頂点のリストをつくらないと、シェイプキーを含まないマテリアルの判定ができません。

参考:シェイプキーを含むマテリアルを判定する処理する流れの例
1.シェイプキー情報から、シェイプキーで使用する頂点のインデックスのリストを作成(または、表情の種類ごとに分割)
2.マテリアル情報から、各マテリアルが使用するエッジのインデックスの範囲を計算
3.エッジのインデックスの範囲から、各マテリアルが使用する頂点のインデックスのリストを作成(←大きなメモリ消費と重い処理が発生)
4.作成した各マテリアルの頂点リストの中に、シェイプキーの頂点が「全て」含まれるか判定(←これも重い処理)
5.シェイプキーのリストが部分的に含まれる場合は、同一シェイプが分割されないように、マテリアルをまとめる(←これも重い処理。ここで16マテを超えたらアウト)
(3の工程は検索のみで代替もできますが、5で再利用するために作成。)

という事で、シェイプキーの分割判定は、かなり大変です。(実質的に不可能。)

###
そこで考えた別の方法。(現行仕様は、こちら。)
これはメッシュ分割にも関わって来るのですが、「とりあえず登録。あとで移動」する方法です。

PMDでは(メッシュ分割の概念がないので)頂点リストがメッシュごとに分割されていません。(マテリアルごとにも分割されていません。)
なので、Blenderでメッシュを作成する時、第一段階として「全ての頂点」を登録したメッシュを作成しています。(そうしないと頂点のインデックスが変わって、面が貼りづらいので)

参考:処理の流れ(概略(未実装項目を含みます))
1.ボーン登録
2.メッシュ作成(1個だけ)
3.全頂点をメッシュに登録(頂点のインデックスはPMDのインデックスが維持されます)
4.1番目のメッシュのマテリアルを登録(この時点で、マテリアルのインデックスはBlender用のインデックス(0~15)に変換されます)
5.1番目のメッシュのマテリアルに対応した面を貼ります(面はPMDのインデックスを維持)。各面にマテリアルのインデックスを設定します(メッシュごとに0~15。マテリアルのインデックスはPMDと変わります。)
6.メッシュに頂点グループの設定を入れます(骨の影響度の設定)
7.マテリアル数が16を超える場合は、1番目のメッシュ(の頂点、グループなど)をコピーして、2番目以降のメッシュを作成します(メッシュの分割点変更(16マテ毎以外に設定)は未実装。)
(ここまで繰り返し)
8.メッシュの作成が終わったら、全メッシュにシェイプキーを打ちます。(未実装。7と順番を入れ替えるかも)
※シェイプキーは、対応する頂点が存在すれば打てます(最初に全頂点を登録した理由の一つ)
9.各メッシュで、使用していない頂点を削除します(未実装。手動でも(選択方法は少し変わりますが)比較的楽に操作できます。)
→(1)全頂点選択 (2)各マテリアルの頂点の選択を解除 (3)選択されている頂点を削除
→→この時点で、メッシュのマテリアルが使用していない頂点が削除されます(頂点のインデックスが変わる可能性があります)

この方法であれば、比較的楽にシェイプキーが作成出来ると思います。
ただし、メッシュの分割点をまたがる時は、同一シェイプキー(表情)が複数メッシュに分割されます。
(実装予定はありませんが、NLAなどで操作はまとめられるかも。分割点の設定ファイルを読み込む形にした方が無難な気がします。)
スクリプト側で難しい場合でも、手動なら楽な例だったり・・

参考になれば。


で、全然参考にしてないんだけど、要は恐ろしくめんどくさいのである。


次に、俺の実装だが、簡単に書くと

1.全頂点をメッシュに登録(頂点のインデックスはPMDのインデックスが維持されます)
とか簡単にやると、PMDの頂点インデックスが3頂点全部同じ場合失敗するので、なんとかする
(これがモデル製作者のせいということで無視したいところなんだけど、標準で入ってるメイコでもあるんだよな~)
2.マテリアルごとに、次のマテリアルの最初の頂点が、現在のマテリアル範囲の頂点に含まれていた場合、同じメッシュとみなす。(EditモードでCtrl-Lしたみたいなメッシュになる)。ただし、シェイプキーがあるメッシュは、それ用のリストに保持しておいて、無視。
3.メッシュごとに、オブジェクトを作る。最後に、シェイプキーを含むメッシュリストを1オブジェクトにする。


という感じです。

実装の方針としては、できるだけインデックスを使わない実装・・・にしたかったんだけど、結構インデックスだらけに。仕方ないね。

3のシェイプキーを含むメッシュリストが16マテリアル超えてた場合、さらに分割もかけれるけど、16越えないっしょ、たぶん。


あと、まだ微妙におかしいところがあるっぽいので、土曜に直します。

~既知の問題~
・mesh.remDoubles(0.0)
・mesh.recalcNormals()

blender - GLSLMaterials→CompositeNode(4)

GLSLビューのZバッファがコンポジットノードにきたよ!!!



たのしい!!



blender - GLSLMaterials→CompositeNode(3)

予想通りCLAMP忘れてたらしい。


for (i = 0, size = rr->rectx*rr->recty; i < size; ++i) {
int r = (int)(re->result->rectf[i*4+0] * 255.0f);
int g = (int)(re->result->rectf[i*4+1] * 255.0f);
int b = (int)(re->result->rectf[i*4+2] * 255.0f);
int a = (int)(re->result->rectf[i*4+3] * 255.0f);
int col = 0;
CLAMP(r, 0, 255); //これ
CLAMP(g, 0, 255); //これ
CLAMP(b, 0, 255); //これ
CLAMP(a, 0, 255); //これ
col = (a << 24) | (b << 16) | (g << 8) | r;

re->result->rect32[i] = col;
}


これでGlareとか使った時にRenderImageが変な色になるのが直った。
土曜くらいに、クリーン環境でビルドして再うpします。
ついでに、RenderLayerにZ値とかも持っていきたいなー。

リアルタイムとオフラインの挟間って狙い目だと思うんだよね

etc - IllustStudio等を使った雲テクスチャ編集

IllustStudioというお絵かきソフトが5000円ちょいで売ってるんだけど、
ベクターの線を消しゴムで消せたり、CUDAフィルタ使えたりと、なかなか変態である。

で、そのIllustStudioを入手したものの、結局絵を描かずにペンタブもろとも放置していたんだけど、最近アルファ付きのテクスチャを編集するのに凄い便利なことに気付いた。

アルファだけ水彩とかボカシ利いたツールで、塗り塗りと塗って、RGBは(255, 255, 255)にしたい!という要望もあっさり実現できる。

まずアルファを塗るにはここをクリックである。


次に、RGBを(255, 255, 255)にして、アルファのみ横のスライダーで変えて塗り塗りと塗る。


最後に、この状態のまま(用紙の目を開けちゃダメ)、PNGでRGBAで保存である


終了。


続いて、雲の写真を取ってきて、いい感じに白黒にしたとしよう。


こんなの。

これを、上で手描きで描いたのと、同じようなアルファ画像にしたいとする。


残念ながらIllustStudioにはそういう機能は無さそうなので、
アルファチャンネル抽出機

を使う。
この程度の処理ならプログラムさくっと描くのもありだが、世の中同じことを考えている人が10人はいるはずなので、探せばあるものである。

これを掛けたあと、アルファはちゃんと出るものの、RGB=(255, 255, 255)になっていない。気持ち悪いので何とかしたい。

そこで、「塗りつぶし詳細」で、透明度を変更せず、白で塗りつぶす。



これで、手書きのときと同じように、RGB=(255, 255, 255)となる。

2009年9月22日火曜日

blender - PMDImporter更新前



こんなに手こずるとは。
shapekey部分の合計マテリアル数が16越えたら駄目、という制限にしました。
それでも16越えたら、さらに分割、とかもできるけど、まぁ超えないだろう。
読み込んだあと、少し手を入れてこんな感じ。→手を入れなくても何とかなるようにした
アルファ付きテクスチャも使ってるのかー。

もうちょいかー。
現状でも、ボーン読み込んでないけど、前のインポーターで読み込んでparentにすれば使える。

http://patsuko.net/pmd_importer.py

↑右クリックから保存


使い方。人柱向け。

0.
http://sites.google.com/a/render.jp/vmdimporter/
で配布しているBlenderの、.blender/scripts の中に入っている、「vmddef.csv」を別の場所に移すか、削除してください

1. 上記Blenderの、PMDImporterで、PMDファイルを読み込んで、レイヤ1を消して、Armature(ボーン)のみ残してください

2.
上記スクリプトを右クリックで保存して、Blenderの.scriptに突っ込んでScriptPanelなどから起動するか、BlenderのTextEditorで開いて、実行し、PMDファイルを再度読み込んでみてください。

3. 運よく読み込めたら、下の画像のように、Outlinerを開き、Meshを1つ1つ選択して、Objectパネルのparentに、ArmatureのObject名を入れてください。

4. 動きます→あれ、おかしい、動かねえ・・ウェイトはちゃんと入ってるんだけど・・。



2009年9月20日日曜日

blender - GLSL→CompositeNodeでブルーム

3Dグラフィックス・マニアックス - HDRレンダリング(10)~HDRブルーム/グレア処理
http://journal.mycom.co.jp/column/graphics/050/index.html

を参考にやってみた。

こうか・・?

元画像



結果


元画像


結果


そういえば今日は調布に行かないといけないので、結果も載せてしまおう

自ビルドのBlenderでは、GLSL表示結果からは、RGB値を適当にRenderLayerにぶち込んでるので、CompositeNodeのCompositeノードは、ピクセルのRGB値が1.0超えると、ちょっとおかしくなるっぽい。ので、File出力にする。
こっちのほうが、Nodeなしの画像が普通にRenderImageとして出てきて、CompositeNode有りの画像が、ファイルに出力されているので、比較には良い。



輝度は適当に0.8~1.0くらいにして、(ColorRamp)
輝度画像を縮小して、ブラーかけて拡大、あとは適当に合成。

前に、レンダリングはスキャンラインですか?と聞かれたんだけど、OpenGLはZバッファだそうです。

2009年9月19日土曜日

etc - core2duo買った

待ち中



どたどた




http://sites.google.com/a/render.jp/vmdimporter/

なんか久々に書き込み来てた(掲示板とyoutube)
38個もマテリアルあるので根本的に無理かと・・・。
マテリアルごとに処理して完璧に何とかしようとしたモノがあるんだけど、
あと確かshapekeyのみ読込み出来てないんだよなー(5月の連休頃のもの)

明日起きて4時間くらい粘ってみよかな・・



pmdのインポート、起きて粘ったらあと1歩ってところまでいった。
あんまりやる気ないけど、2か月後くらいに使う可能性があるので、もうちょい粘ってみる


core2duo(E7500)届いたので、普通にceleron取り外して、core2つけて、グリースとかいうの塗ったら、普通に認識して普通に動いた。
シングルコア→マルチコアの移行なのに、vistaが勝手に何とかしてくれたらしい。

vistaの計算のスコアが3.8から5.5になった。
BlenderのGLSLがぬるぬるになった。

完全にCPUが足ひっぱてたらしい。


ローポリ化ONで、日本で一番重い(かもしれない)3D萌ゲーが、ぎりぎり遊べそうなFPSになった!なんだってー!4も引き続き出るらしい。相変わらずモデリングすげえ

etc - Googleが新言語

Publickeyβ - 速報:グーグルが新言語「Noop」を公開。JavaVMで動作
http://www.publickey.jp/blog/09/noopjavavm.html
より引用

Dependency injection in the Language
依存性注入が言語に組み込まれている

Testability
テストしやすい
Immutalbility
オブジェクトの不変性
Readable code is more important than any syntax feature
読みやすいコードはあらゆるシンタックスよりも重要
Executable documentation that's never out-of-date
ドキュメントが実行可能ならば、そのドキュメントが古くなることはない

Properties,strong typing,and sensible modern stdlib
プロパティ、強い型付け、実用的な標準ライブラリ


と聞いて、仕事ぶん投げて帰ってきました。(連休中に拾いに行くこと確定ですけどorz)

私は若干というか、かなり、Google厨で、しかもJava畑出身なので、
こういった方向性は歓迎です。

Googleには確かEffectiveJavaの人がいるはずで、GoogleAppEngine(俗に言うクラウド)は、Java対応してます。JVMの上に、この言語が載るというこは、何%かの確立(5%未満だと思うけど)で、将来のWEBを握る可能性があるかもしれません。

それより重要なのは、現在の時代を握っているIT企業が作った言語が、これだということです。
私はコンパイラ周りは全然詳しくないのですが、DIのような機構を言語的に取り入れていくのが、今後主流になる可能性は十分ありそうです。

で、俺が学ぶべきは、NoopじゃなくてExcelであると。
実行可能なドキュメントの必要性は、現在進行形で、ひしひしと実感しております。

2009年9月18日金曜日

etc - Dance x Mixierの初音ミク



前々からDLCで出るって告知あったけど、いつのまにか出てたっぽい。かわいいぞ!!
割と、うちのと似てる気がする。うちのほうが2歳くらい年上か・・?





んーーやっぱ余り似て無いな・・七葉のメタセコでこっち見んなしてたモデルのほうが似てる・・

2009年9月14日月曜日

etc - パーティーキャッスル(2)

そういえば折角の休日だというのに、服も買ってなければパーティーキャッスルのクライアントソフトも落としていなかった。

早速落としてきて、インスコ→アップデート→起動!!!


例外が発生しました
minidump : E:\UIMAC_~1\AppData\Local\Temp\PTC_editor\20090914-012012-4472-2164-0-1695.dmp
コマンドライン : "C:\ProgramData\SquareEnix\PartyCastle\PTC_editor.exe" 78cb682c16005e8ecff5a892e48f2e94

例外種別 : ACCESS_VIOLATION (code:c0000005)
例外アドレス : 0044DCFB
例外フラグ : 00000000
例外スレッドID : 2164
--- Stack Trace ---


0044DCFB : ? (line:0)





00400000 : ? (line:0)





・・・・。


おーい。

2009年9月13日日曜日

etc - ニコ生

をやってみたんですが、うちのceleron420ごときで3D作りながら配信なんて到底無謀でした…
何かの間違いで来てくださった方すみませんでしたw

ちなみにいつも
http://www.stickam.jp/profile/blender

この中のどこかでコードを組む様を無駄に配信していたりする。


ひとつ気付いたのは・・・


カメラで雲突き抜けるときchild-parentの関係があると、ごっちゃごっちゃになるってこと。
・・・だめじゃん!
ChildOfコンストレイント付けてinfluence0で出来るかな・・・?

2009年9月12日土曜日

etc - DX11待ち中

http://www.4gamer.net/games/085/G008506/20090911057/

>最大16384×16384ドットの“1ビッグデスクトップ”を構成し,これを複数のディスプレイに分割して表示するモードも備えているという。
>16384×16384とは何の数字かというと,答えは簡単。DirectX 11の最大テクスチャ解像度に相当している
>次世代ATI Radeon搭載グラフィックスカード4枚を使って,6画面出力×4枚=24画面出力を実現したATI Eyefinityのデモ。


16384×16384作れるということは、2Dでもいけそうなレベルかもしれませんね。
(もっとも、今でも小さいテクスチャを何枚も作れば、できるといえば出来るのかもしれない)
やはりDX11世代はRadeon優勢なのだろうか・・・。


というわけで、買いましたよ。

ちなみに、右のは、大体ウェブでも見れる内容なんですけど、いつも楽しみにしているので寄付的な感覚で購入。
左のは、大体Javaで書いてありました。(pthreadsも少し載ってるが)

blender - 雲ジェネ(3)

やっつけて、できました。

http://www.edmondho.com/nimbus/


ここのから、『独自形式ファイル出力?イラネ。ここはバグあります?イラネ。』
という感じで、ガンガン削りまくって、
下で書いてるGLSL用のchild-parent関連付け→joinのコンボをかけたものです。
スクリプトのほうは、ライセンスが不明なので、配布するの面倒です・・。
需要あれば問い合わせ、というか欲しい人が問い合わせてくれると非常にありがたい。


箱作って選択して、雲の種類選択して、ボタン一発で生成。
1生成1オブジェクト1マテリアル。
後でまとめて変更しやすいように、同じ雲を複数生成しても同じマテリアルに。


見ての通り、コード消しまくって350行くらい。
今回は、やっつけなので、循環エラーとか出ても無視する方向で。
ただし落ちるとか止まるとか、実行できないとかいうエラーは、当然だけど無し。


ビルボードなのでカメラから見ないと効果なし


調子に乗って1生成で四角形200くらい作るとこうなります。

etc - パーティーキャッスルのクローズドβ

http://www.partycastle.net/
今日当選したお!!!!

ついでに

ニコニコ動画のプレミアム会員になったよ!
なんでって、動画見れるまでリロード押し続けるのが面倒になったから・・・。ただそれだけ・・・。
あと、何か出来そうになったら生放送でもしようかな。

2009年9月11日金曜日

etc - 初音ミク立体補間計画的な

企画があるようです。まだ間に合う!!!!!!

http://fg-site.sblo.jp/article/32061359.html

2. [cg] 初音ミク、VOCALOID立体出力展示

募集期間:9月13日23時59分まで。
応募方法:募集作品は完成品、制作中の作品をふくめて、すべてcg上に投稿して、「akiba:F展示イベント参加希望」というタグをつけてください。
募集条件:初音ミクおよびVOCALOID(派生した2次創作キャラを含む)をテーマとした3DCG作品。
選考について:cg内での評価数、マイリスト数によらず、cg運営および本展示イベント運営に参加される企業様で、作品を見て判断いたします。

優れた造形であっても、立体出力が困難な作品は対象から外れます。また、出力にあたっては、関節や髪の毛のような細いパーツを少し太らせて、強度を確保する場合がございます。

専用の編集ツールで3DCGモデルを編集いたしますが、場合によっては、作者さま自身に修正をお願いすることもございます。

立体出力しても、台座がないと立てられないため、台座の制作をお願いします。

また出力後の作品を撮影した写真を、立体出力をおこなった会社のホームページに掲載させていただきます。

blender - NLAも変わるのか

http://www.blendernation.com/gsoc-nla-aok/

>His goal: to rewrite Blender's Non-Linear Animation (NLA) system for Blender 2.5.


まじかよ!

中のデータ構造があまり変わりませんように・・
特にアニメーションの開始終了タイミング関連。結構手こずった気がするので。
startとactstartの違いとか。

NLAStrip間のブレンドとかは変えて欲しいかもしれん。

wiki見たら「Tweak Mode」とかいうのが書いてある。この辺り、嫌な予感がする。(エクスポーター製作的に)

2009年9月6日日曜日

blender - GLSLのアルファ値を何とかする方法

この重なった部分で起こる現象。



GLSLMaterialビューで、アルファ付きテクスチャを重ねて表示すると現れるんだけど、
こいつが中々厄介で、これのせいで色々と汚いことになったりする

なぜこんなことが起こるのか。詳しくは知らないけど、zバッファの都合上、zソートしたものを、順番に描画しないと、綺麗にアルファが抜けないそうだ。順番にといっても、Blenderはそこまで面倒見ない。BlenderはBlender独自の順番で描画しているだけだ。

おk、じゃあBlenderの独自の順番を、z順にしたらどうか?
第一歩としては悪くない選択肢であるはず。

早速やってみた。こうなる。




多分これで問題無さげ。
どうやってるのかというと、手前から奥に、順番に手前→parent:奥、としているだけ。

もう少し分かりやすい例

なんと、joinした後も、このchild-parentの関係が維持されるようだ。
左は、全て独立したオブジェクト
右は、z順で、parentで関連付けた後、全てのメッシュオブジェクトをjointした。


次の問題は、視点(カメラ)は動くということだ。(続く…かも)

blender - 螺旋階段

最近全然Blender触ってないなー

arrayモデファイア+curveモデファイア




etc - なんか1曲作りたい

neCyda - DTMをはじめる時にまず買うもの
http://d.hatena.ne.jp/necyda/20090905/1252163657

>DAWやDTMをはじめるのにまず買うものはオーディオインターフェイス


昨日買ったもので一応合っていたらしい。良かった。DAWは、SynthMaker目当てなので、FLSTUDIOで決定かなーと思ってます。あと、打ち込みが出来て、自作VST/VSTiが動けばおk。VSTはビルドしてsin波鳴らしたことくらいしかないですが・・


あと、
ウノウラボ - iPhoneアプリRjDjのシーン開発入門

で知ったんだけど、iphone用でもいくつかあるらしい。


若干reactableっぽいような・・

reactableは↓こんなの


また、reactable以降、テーブル型の似たようなものが何個か出ている模様。おもろい。



とりあえず何か1曲作ろう・・・!

2009年9月5日土曜日

etc - 阿久女イク を購入したその後

話を1週間前に戻そう。

インフルになるのが怖くて、ひきこもっていた俺は、DL販売に手を出した。
そして、ついに買ってしまったのである。

阿久女イクを。(↑ハマるきっかけとなった神曲)

続いて作曲を試みた。

大学の頃は、ZOOM707(エフェクタ)と、DR-5(ドラムマシン)を、それぞれ2台ずつ所有して遊んでいたのだけど、全部実家に置いてきてしまったので、今ある楽器でやろうと思った。楽器、、そんなものは持って無いけど、どう考えても目の前にあるGPU付きミニノート(N10JC)は楽器である。

恐らく現在でも+1万くらいでタブレットPC化は出来る。GPU搭載でマルチタッチ可能なタブレットPCとかが出れば、CUDA使ってVSTiとかで、完全に楽器にしてしまえる可能性がある。

まぁ妄想はその辺りにしておいて、現実的に考えてみる。おそらくmax/mspがGPUに対応しそうな変態なアプリ(使用者含む)であるが、まだ対応してないようである。jitterという映像用の追加アプリのみshaderで対応している様子。Blender以上に変態で、3DもプログラミングもMIDIもオーディオも外部ハードも、複雑に絡めたシステムが作れるようなので、欲しいんだけど、5万は・・・結構キツイ。


そこで、ググったところ、なんとFL STUDIO 8($260)にSynthMakerとかいう、似たようなモジュラーが付いている模様。FL STUDIOは、本家でDL購入すると、死ぬまで永久にアップデート出来る権利が付いてくるらしい。ちなみに現在FLSTUDIO現行製品は8だけど、9月9日(4日後!)にFLSTUDIO9が発売予定のようだ。

さっそく体験版をN10JCにインスコしたけど、ASIO4ALL入れても全然ダメぽ。Atomじゃあさすがに非力だったか。でもこのASIOとかいうのが何とかなればOKなんしょ?ということで、再びヨドバシまで行ってUA-1Gを購入。11,800円なり。帰って繋いでみると全然音違い過ぎワロタwww今まで俺は何を聞いていたんだ…。


(↑FLSTUDIO8のDemoでもSynthMakerが試せる)

もう少し試して、いけるっ!と思い次第DL購入する予定。

etc - 進捗

アニメーションのエクスポートが3倍速くなった。
どるどる10秒→3秒くらい。

ただ、その残り3秒のうちの、2.7秒くらいは、Blenderの内部関数の計算時間。
早くするにはBlenderの中身書き換えるしかないレベル。

ちなみに、その内部関数ってのも、Armatureに絞ったのをピンポイントで使ってる。
途中でコメントアウトしてるscene_update_for_newframeすると、さらに遅くなる。
(ただしIKがメッシュ参照してるときは必要…だったような気がする)


for (KeyPoseMap::iterator it = key_pose_map.begin(); it != key_pose_map.end(); ++it)
{
float key = (*it).first;

// do pose
G.scene->r.cfra = (int) (key);
//if (optimize & BLO_WRITEXML_CALC_MESH) {
// CLAMP(G.scene->r.cfra, 1, 300000);
// scene_update_for_newframe(G.scene, (1<<20) - 1);
//}
// この2つが重い↓・・・が仕方ないか。
extract_pose_from_action (pose, action, bsystem_time(arm_obj, G.scene->r.cfra, 0.0));
where_is_pose(arm_obj);

// if channel had the key, append a pose channel
std::vector<bPoseChannel*>& poses = (*it).second;
for (int n = 0, n_size = poses.size(); n < n_size; ++n)
{
bPoseChannel *channel = poses[n];
bActionChannel *action = pose_action_map[channel];
if (!action) continue;
append_bposechannel(bdx_channel_list[n], channel, key);

}
}

2009年9月3日木曜日

etc - メモ

珍しく早く起きたので、昨日寝る前に思ったことをメモ。

Blenderでエクスポートする前に、Mesh(Object)とArmatureの関係を、全て切り離しておけば、アニメーションを高速にエクスポート出来るのではないか?と思った。今度試す。(もちろんIKtargetにMeshとか指定していたらダメだけど。)

ダメだった。