2008年8月31日日曜日

viewer - カメラ

ObjectIPO(loc,rot)アニメーション付きのカメラは、うまくいくんだけど、静止状態でアニメーション無しのカメラがうまくいかん。まぁ静止状態のカメラなんていらないか・・。

BlenderXML_07.zip(10M)

BDxView080831.zip(3M)

video
(モデルやアニメーションはテスト用のためテキトーです。)

レイヤ切り替え(ObjectIPOのLayer)対応。(最初と最後でミクが変わってます)

NLAとShapeKeyは、とりあえず動くようにしたけど、補間については考え中。
デフォルトの補間は重そうなので、Strip間の空白部分を補間しようかなー。
ま、補間なんかなくてもPVは作れるし・・。

それから、昨日早起き(3時)してAlt-Aでリンク付きコピーした場合の対応ってのをやってて、5時間くらいかけて出来たんだけど、ファイル容量が減るだけで、全然意味がない、むしろリスキーということに気づいて、全部元に戻しました・・・。相当寝ぼけてたらしい・・・。

悔しいから書いておくと、DuplicateとDuplicateLinkedの違いは、メッシュのデータのポインタが同じかで判別可能。


あと、影と水面が欲しいなぁ。Frankie良いなぁ~。

2008年8月29日金曜日

viewer - スカイドーム

本当は影を実装しようとしていたんですが、難しくて挫折中です。

で、折角ShaderBindingできるようにしたんだから、パラメーター使いまくる、派手な効果とかエフェクトとかを実装したかった(バグ発見と仕様決めるのにも役立つし)ので、探し回ったところ

DirectXの話 第78回
「Dynamic Skyscape : 動的な空の描画」
http://monsho.hp.infoseek.co.jp/dx/dx78.html


なんじゃこりゃああああ、めちゃくちゃすごいぞ!!!

しかも実行ファイル付きのサンプルまで公開してくれてる。


これだ、これしかない!!

しかも1パスだから、まだ仕様決めかねてる複数パス使わなくてもいける!!


…数時間後…


とりあえず固定パラメーターで動くようになった。
さすがに、そこそこ負荷もかかるみたい。mac miniではキツイ。

あとはBindingすれば、時間による空が変化とか、余裕でできるはずっ!

video

途中で、深刻なバグも1つ発見したし。今日は良い日だ~


-------------------------------------------------翌日


朝っぱらから、雲行きが怪しく、豪雨+カミナリで目覚めました。

昨日の続きで、ShaderBindingのテスト。
任意の値を使うのに、PoseのScaleしか使い物にならなった…。
よく考えてみれば、当たり前なんだけど…。
まぁプラス思考に、任意の値が使えた!任意たん萌え!ってことにしておこう。
(線形グラデーションのときは、任意の値じゃなくて、ボーンの座標使ってた)



さて、parentにしたうえで、任意の値を無理やり入れるもんだから、座標がぐちゃぐちゃなので、Emptyどもを、まとめてレイヤ2に押し込めた。

そもそもBoneをObjectのparentにするなんて、一体誰が使うんだ!?って感じの機能で、parentにしたあと、parentになってるのかどうか確認する手段がありません。

うーん、なんというか、今後解説書いたとしても、俺しか使わないし、俺しか使えないんじゃないか?これ(汗

効果は抜群だけどね。
video

あとは、、建物とかフォグとかが欲しいな。


BDxView080829.zip

sampleに入れて、アップロードしときました。でかい画面で見たい人はどうぞ。
少し加工したシェーダーはともかく、テクスチャは、何もいじってないのにそのまま転載はいかんだろうと思い、入れてません(解像度も足りないし)。とりあえず上記URLのサンプルにはいってるテクスチャをぶち込んでください。

テンキーの5でパースに変わります。パースじゃないとドームの中から見れないので注意。
Alt-Aでアニメーションです。

2008年8月27日水曜日

etc - VocaloMark(β)

http://fakefar.jp/


あ、買えるじゃん、ってことに気づいて、先ほど通販で購入。

ここのミクはかわいすぎる!!
その辺の3DPVと比べても、こっちのほうが作りこみが凄い。

開発日記のポリ数4倍のやつも必見です。
下のほうに2万ってあるから、8万??
8万だと、あと3体はいけるな…。(らぶデス2的に)



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

日記用に撮ってたスクショをついでに放出


アイドルマスター


MikuMikuDance

blender - ウェイトペイント

超久々にモデリング。そろそろ勘を取り戻していかないとヤバイ。
作業記録。

足の靴下?のところが、昔間違えて3角形にしたあとsubsurfかけてapplyしてしまって、どうしようも無くなっていたので、PolyReducer(標準で入ってるscript)かけて、ちまちま修正。
作り直したほうが早かったかも…。

ついでにウェイトもつける。ほどほどに付けたら、面の修正に入る。
Fキー(またはレイヤ横のボタン)を押して、こんな感じに。

突き出るところは面が足りないので、このように選択して、editモードに入って、ナイフでずばっと切る。


ウェイトモードからエディットモードに入って面修正、ウェイトモードでウェイト調整、を繰り返す。
慣れるとサクサクできる。


かなり曲げた状態で、伸びすぎている面が無く、破綻してなかったら多分おk。
あとは、見栄えを重視して微調整。

できたら、スクリプトでウェイト付きミラー。
でも、靴がヘボいので、もうちょいいじる


ブーン。
いい加減このモデルも見飽きたな。
メイコでも作るか・・・。

video
ためしに、viewerでNLAで動かして、、って動かねぇ!
仕方なくアクションで。
ただでさえ変換がクソ面倒なのに、NLAくらいできないと意味無いじゃん。
後で直そう・・・。

2008年8月25日月曜日

viewer - サイト作った

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


作りました。作っただけですが・・・・。

現在あるものを実装するべく奮闘開始。
物理演算とかじゃなくて、もっと普通のものです。

それが出来たら
「俺*****・*******・********・*******実装したんだぜ!」
と自慢できること間違いなしです。
伏字にする必要は特に無いんですが、出来なかったら恥ずかしいので・・・。



----
最近見たもの

・スカイクロラ
エースコンバット好きは是非。

・ピアノの森
ちょっと見ただけで、最後まで展開が読めてしまいますが、王道で普通におもしろかった。

・FREEDOM7
ついにカズマ登場。オープニングがいいよなぁ。ドドドド

・秒5
また借りてしまった。借りるの3回目くらい。

2008年8月23日土曜日

viewer - まだまだ…

video

手を入れなくても使えるレベルになるのは、いつの日か・・・orz
もうすぐだってのは分かってるんだけど、細かい落とし穴が多すぎる。
BDxView080823.zip


とりあえずランプ修正。
ランプは、SUN1個のみ対応してます。(増やしたかったらシェーダーでがんばってという方針。)
サンプルのrampedSphere/rampedSphere2でテスト。
Alt-Aでアニメーションです。

ワンスキンのサンプルは、まだ用意できてませんが、
http://xoomer.alice.it/glabro1/python241.html
ここのExample1だとこんな感じです。

video

2008年8月22日金曜日

etc - FREEDOM

最近見たものの感想とか。

・FREEDOM
カップヌードルの宣伝アニメ(3DCG)ということで、余り期待していなかったんですが、かなり良かったです。1巻に1話しか入っていなくて、レンタルで全6巻借りたんですが、おまけの7巻みないと結末が分からないのが残念。AKIRA大好きな大友ファンは是非。カズマが途中から出てこなくなるのが残念。

・ベクシル
これも3DCGアニメで、押井守っぽい感じのSFなんですが、(多分)顔の影が補正されていて、嫌な影が出てこない。ストーリーは設定負けしているんですが、グラフィックは必見。

・今、そこにいる僕
ジャケで鬱アニメを確信して借りたら、やはり鬱アニメだった。しかも良作。
主人公が昔の少年漫画風の元気な男の子なんですが、ロボットアニメに出てきそうな雰囲気の少女と出会います。1話で日本の町を映す、明るいオープニングだったのに、2話以降全て、オープニングが適当に画像流すだけに変わる鬱っぷり。人もがんがん死ぬ。

・バットマン最新作
押井守監督のスカイクロラを見に行ったのに、受付で間違われてバットマン見ることに。
セリフ間隔短いので、映画慣れしてないと疲れる。

・さよなら絶望先生 序~絶望少女撰集~
絵柄が少し変わってて、新鮮。


漫画とか
・MAJOR58巻まで メジャーな野球漫画。
・銃夢 LastOrder10巻まで 脳みそ等が吹っ飛びまくるSF漫画。3Dを取り入れた作画有。
・ローゼンメイデン 1巻 高い。

これから
・ルネッサンス
・スカイクロラ
・星の海のアムリ

blender - Object IPOの回転

違うっぽいので、とりあえず削除。
えーっと、どうなってるのか全然分からない。
考え中


→クオータニオンでやってるんだけど、途中で逆行列にしてたところあたりがマズかったらしい。
普通に合成して、適当に成分にマイナス付けたりしてたら、なぜかうまく行った。
まぁ、できればいいか。
そもそも俺はリアルタイム3DCG作品を作りたいのであって、3Dプログラミングがやりたいわけじゃないし。

2008年8月20日水曜日

viewer - ソースとか

BDxView080820.zip


早速ですがviewerをちょっとだけ更新しました。

更新内容
・デフォルトのカメラのクリッピングをstart=10, end=200にした。
・shift-左ドラッグ(またはセンタードラッグ)の改善
・Lampが余りにひどかったので、とりあえず正面向くようにした
・AAの設定追加(注意:現在の開発環境のmacminiがAAを使えないため、正常に設定できるかどうかのテストすら出来てません。)
・シェーダーのon/off追加。


--------

石油価格上昇に伴い、電気代節約のためサーバーの電源落としてます。
というのは冗談で、mac miniにubuntu serverが入っているんですが、実家環境で設定するのがめんどくさいので放置しています。

というわけでソースはzipで…。

コンバーターのソース(Java1.4以上 + NetBeans6)
xmlconverter2src080820.zip


エクスポーター(Blender組み込み)のソース。(C++、xersesc)
writeXML080820.zip


エクスポーターのほうの、その他いじったところPythonから使えるようにして、UIはPythonで作ったほうが良さそうですね・・・


・ヘッダファイルに、C++でも使えるように、以下の修正を加える



///-------修正するヘッダファイル------------
///BKE_blenkernel → BKE_scene.h
///BKE_blenkernel → BKE_ipo.h
///BL_src → BDR_drawaction.h
///BLO_loader → readfile.h
///--------------------------------------------------



#ifndef ***_H

#define ***_H



#ifdef __cplusplus

extern "C" {

#endif




//中身


#ifdef __cplusplus

}

#endif




#endif




・GUIにメニューを加えるため、以下のような修正を加える


///DNA_makedna → DNA_userdef_types.hの中

// 前略

#define USER_DONT_DOSCRIPTLINKS    (1 << 22)

// XML export flags
#define USER_XMLDUMP            (1 << 23)

#define USER_XMLONLYACT            (1 << 24)



///BL_src → header_info.c → do_info_filemenu(void *arg, int event)の中



    case 35: /* compress toggle */

        U.flag ^= (USER_FILECOMPRESS);

        break;

    case 36: /* XML dump toggle */

        U.dupflag ^= (USER_XMLDUMP);

        break;

    case 37: /* XML with only action toggle */

        U.dupflag ^= (USER_XMLONLYACT);

        break;




///BL_src → header_info.c → info_filemenu(void *arg_unused)の中



    if(U.flag & USER_FILECOMPRESS) {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Compress File",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 35, "Enable file compression");

    } else {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Compress File",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 35, "Enable file compression");

    }



    if(U.dupflag & USER_XMLDUMP) {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Enable Dump XML",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 36, "Export .xml after .blend saving");

    } else {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enable Dump XML",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 36, "Export .xml after .blend saving");

    }



    if(U.dupflag & USER_XMLONLYACT) {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "XML With Only Act",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 37, "Export .xml after .blend saving");

    } else {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "XML With Only Act",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 37, "Export .xml after .blend saving");

    }




///BL_src → usiblender.c → BIF_write_file(char *target)の中



        writeBlog();

    } else {

        error("failed to write blend file: %s", err);

    }


    /* xml writting */



    if (U.dupflag & USER_XMLDUMP) {

        int writeflag = 0;

        if (U.dupflag & USER_XMLONLYACT) writeflag = USER_XMLONLYACT;



        if (BLO_write_XML(di, writeflag, &err)) {

        } else {

            error("%s", err);

        }

    }



2008年8月19日火曜日

viewer - パース苦戦中


問題の症状。原因はなんだろう…。


近づくと何とか普通に見れる。キラッ☆


カメラの設定いじったら直った


リアルタイム3DPVだし、パースは要るよなぁ…。
あと、(もうしてるけど)徐々に開発をスローダウンして、モデリングとモーション付けに移行していく予定なんですが、vista on macminiでは、Blenderが遅いので、やる気無くします。なんとか早くならないものか…。開発環境がvistaにあるので、OSXでやるわけにも行かないし…

2008年8月17日日曜日

blender - NLAStrip空白区間と、Blend


↑まず、Strip前の空白区間は、、


↑最初のStripの左端、つまり、最初のStripの最初のPoseになります。


↑同様に、Stripの後ろに続く空白区間は、、


↑Stripの右端、つまりStripの最後のPoseになります。


↑Blendoutした状態は、ClearUserTransformした状態のPoseとBlendされます。


↑Blendout後の空白期間は、Stripの最後のPoseが重み0でBlendされ、ClearUserTransformした状態のPoseが重み1でBlendされるので、ClearUserTransformした状態のPoseと同じになります。


↑同様に、Blendinでも、ClearUserTransformした状態のPoseとBlendされます。

viewer - ひと区切り

アニメーションのブレンドが、なかなか厄介で、結局できてません。
他にもやり残したことは多々ありますが、16日を過ぎてしまったので、ひとまずアップロードしておきます。

Viewer、Converter、Samples (2MB)


それなりに覚悟して、ViewerでSamplesの中のフォルダ(mikuとか)を開いてみてください。
最新のDirectXが入っていて、それなりに最近のPCなら動くと思います。



こっちは製作用のエクスポーター、というかBlender。
BlenderXML_06(2.46base, 10MB)



ちょっと眠いのでソースとか使い方は、また改めて・・・。