2011年11月2日水曜日

Maintenance : Blender Scripts


Face Bone Tool : ノーチェック。但し、以下の問題が発生すると思われる*
Deform Bone Aid @ Face : Rotation-Matrixのバグ修正に伴う修正を行った。但し、以下の問題あり*
Deform Bone Aid @ Body : 上に同じ
Blend Pose : Rotation-Matrixのバグ修正に伴う修正を行った。
Others : ノーチェック。最近のBlenderの変更による影響は無いと思われる。

*問題点 : 現在、バンドル関数によるエディットボーンへのカスタムプロパティの登録が行えない。これにより、カスタムプロパティで対象ボーンをマーキングしているため、各削除、リセット機能が使えない。

もともとBone Edit Modeで新規作成したBoneはEdit Modeを抜けないとData Boneにアクセス出来ないが、Edit Boneに設定したプロパティはそのままData Boneに引き継がれていた。これが引き継がれなくなったためと思われるが、確認は後日行う。




Face Bone Tool : Not developed. However,it may have the following trouble*
Deform Bone Aid @ Face : Fixed the fix of rotation-matrix bug,but there is the following trouble.
Deform Bone Aid @ Body : Same as above
Blend Pose : Fixed the fix of rotation-matrix bug
Others : Not developed,but I think those are not influenced by recent change of Blender

*Trouble : Edit Bone's Custom property can't be set by bundled function. By this trouble,the function of remove and re-set can't work because I marked those bones by custom properties.
The new bones in Bone Edit Mode couldn't be taken from Data Bone Set until finishing Edit Mode from the first,but the properties of edit bones were taken to the data bones. So I think it is because that was to be impossible,and I will test it after.

2011年10月11日火曜日

Blender Add-on : BlendPose (4)


これのdriver_namespaceのエントリーがうまく行ったりいかなかったりで、いまいちまともに動かなかった原因が解った。
サンプルコードの多くがdriver_namespaceの登録をスクリプト起動時に行っているが、テキストエディタにコードを書いて動かすならそれでいいのだが、Add-onとして動かすにはそれでは問題があった。
API wikiによるとファイルをオープンするとリセットされる・・・つまり、Blenderを起動して新規にリグを組む場合はうまく行くが、それ以外はnamespaceがリセットされるのでドライバーでエラーになる。
 実際には常に動いていたこともあったのだが、動いていた方がバグで、2.59.4ではファイルをオープンすると必ずエラーになる。
そんな訳で、コールバック処理にnamespaceのチェックを行って無かったら再登録するように修正した。

There were when this add-on's namespace could be given,but it couldn't at another time. I didn't know that causes.
The entry of namespace is written at register section at the many sample codes,but it is right when it is started from Blender-TextEditor,but it has the trouble for add-on.
API wiki says,reset when open file...so,it can go well when making new rig after starting Blender,but in other cases,the driver errors are happened because the driver namespace is reset. In the real,there were when it could always work,but it was bug,and it always makes error when opning files at 2.59.4.
So I fixed it with adding the re-entry in callback function.

Blend Pose Add-on


2011年8月23日火曜日

2.59svn

うちのスクリプトの多くが最新ソースで動きません。
原因は、(Vector*Matrix)が削除されているからで、Vector*MatrixとMatrix*Vectorが同じになると再三言われていたのが修正に入った模様。
2.6になったらこっちも修正するか。

The most of my Blender scripts can't work in the latest builds.
It is because (Vector * Matrix) process have been removed.
It was said that the result of (Vector * Matrix) and (Matrix * Vector) became same and it was bug.
It seems they are fixing it now.
I'll fix my script since 2.6.

2011年5月15日日曜日

Blender Add-on : Deform Bone Aid @Face


VSQ Importerがあるので、少ないコントローラーでの操作や、本体以外一切触らない胴体用デフォーマーとか、一見、MMDのインポートを目的にしているように見えるかもしれないが、kinectも出たことだし、本命はこっち系。

2011年5月14日土曜日

Blender Add-on : Deform Bone Aid @Body


原則肩周りと股関節、膝のみ。
bvhのサンプルデータに初期姿勢で四肢がロールしているものがあったので、回転用のダミーBoneを使ってそれを基準にデフォーマーを動かしているが、特殊なケースであれば本体を基準にしたい。

基本骨格の12個のBoneを選択することで、人型Boneであれば基本何にでも対応。
[Generate]ボタン2度押しでConstraintをリセットするのはいつものパターン。

2011年5月12日木曜日

Blender Add-on : Deform Bone Aid

Auto Face RigDeform Bone Aid @Face
Fixed Roll Problems

Making Now : Deform Bone Aid @Body
・For deforming around shoulder with upperarms
・For deforming around hip joints with thighs
・Any name,any roll axis,but top axis must be global Z or global Y
・Select the bones of ribs,hips,arms and legs.
・The dialog notes the selected bones list.
・Alert short list,but less accurate(If not selected spines,all bones not listed).

2011年5月6日金曜日

Blender Add-on : Body Deform Bones (1)

Append deform bones around ribs and pelvis,on knees
Prerequisite/前提条件
Direction
UP:Y/FRONT:Z or UP:Z/FRONT:-Y
Construction
Human Rig

ribs
selected > shoulder.L/.R > upper_arm.L/.R
head.x = 0
pelvis
selected > thigh.L/.R
head.x = 0
knee
head.x ≠ 0
Status
Making now
基本的に最初のAuto-rigアドオンはメンテナンスせず、Rigifyにも依存しない方向性。
Facialのようにベースボーンの回転を考慮せずにグローバル座標で、Z-UPかY-UPにしているのは、Rigifyは+X回転が関節の内側と決まっているが、その保証は勿論、リグ全体で回転方向が定まっている保証もなく、それを逐一パラメータでセットするのはかえって手間がかかるからで、初期姿勢で人型を前提としているので傾斜を意識するのは腕~手だけで十分。
胸・肩から上腕への接続は上腕の回転を考慮する。

今日のcycles?
jpeg読み込みOK(目だけ)

2011年5月2日月曜日

cycles First View

Blenderの開発中の新レンダラーcyclesをお試し。
ネットでOpenCLがどうとかNVIDIAでないとどうとかと言う話もあったようだが、Intelオンボードでも問題なく動作。多分、CUDA対応の話と混じってたんでは無いかと予想。
プレビューの動作はうちのノートパソコンでも速く、全然実用レベル。
実際のレンダリングは初期値のpass=10でも内臓レンダラーの2~3倍の時間がかかるが、LuxRender等は一見シームレスでもエクスポーターを介して動いているからか更にHDDをガリガリ回すので、それらに比べればかなり軽いと言える。

アナウンスでUV未対応とあったが、ヘアー/パーティクルも未対応で、マテリアルじゃなくてパーティクルの設定でエミッターを非表示にしても消えない。
ヘアーやプロシジャーテクスチャの外部レンダラーの対応状況はあまりよろしくないので、Blender用に開発されているのであれば、それらにしっかり対応してくれれば非常に有難い。
試していないが、ノードを見る限りはプロシジャーテクスチャには対応、もしくは対応予定(UVもノードはあるが正常に動かない)。
カラーマップは動作確認。但し、PNG画像は正しく読み込めないため、マッピングできないように見えた。JPGは正常動作。
レンダーシーン内にカーブがあると、メッシュへのコンバートに失敗したエラーメッセージを吐いた後、セグメンテーション違反(Windowsのアクセス違反だと思う)で落ちる。

レンダービューのまま作業しているとCPU使用率が高いが、コンポジットを含まないとは言え、実際のレンダリング結果に近い状態をリアルタイムに見れるため、かなりいい感じではある。
Blender用として作っているのであれば、是非とも内部レンダラーがサポートするパーティクルやヘアーを含む全ての機能をサポートして貰いたいものだ。

2011年4月30日土曜日

Ubuntu11.04でGMA950だけどGLSL

Core2時代のインテルオンボードGPUであるGMA950は、不完全ながらOpenGLシェーダーを使えるものの、本来GLSLには対応していない筈・・・と言うか元々表示出来なかった。
GLSLがOpenGLに標準搭載されたのは確か2.1以降で、GMA950はOpenGL1.4。
Intel i8xx/i9xx用XドライバがGLSLに対応したと言うことか?
まぁ、極めて遅くてちょっと複雑になると返ってこないしOpenGLレンダリングはエラーを吐きまくって出来ないんだけど・・・。

Unityでしか試してないがクラシックでもおそらく同じだろう。
出来ないのがなぜ出来るようになったと気付いたかと言うと、VirtualBoxを設定し直していて、DirectXアプリがネイティブドライバーでないと動かなかったり、元々Blender起動時に画面が変な色になったりしたので、モードを切り替えていたら表示が出来て、GMA950はその上で動いている仮想ドライバーにも負けたか・・・と一瞬思ったが、そんな訳は無いだろう、と試したら出来たと言う次第。

上はノーマルマップによる影が判り易いようにコントラストを変えたスクリーンショットで下がレンダリング結果。
ランプはSunとHemiのみで、角膜と眼鏡がRayTransでヘアーと背景、服の色のまだらはプロシジャーテクスチャ。

2011年4月29日金曜日

Ubuntu11.04

Unityは微妙過ぎるが、クラシックだとサラッと見ただけだが、Compizが正しく動作しないと言うか、compiz-setting-managerで設定を変えると変になる感じ。

UnityはKDEやGnomenu、Windows等、メニューは1層め迄で2層め以降はウィンドウ方式(※)と言う時代の流れを考えれば、まぁ、そんなものか、と言ったところだが、元々、ウィンドウ切り替えメニューが嫌いなのでGNOMEを使っていたのもあって、カスタマイズ性が殆ど無いのと合わせて不便なところではある。
※Windowsはメニューとショートカットを切り替えられるがデフォルトはショートカット

Compizのサムネイルが使えないのが、やはり微妙に不便なのだが、その代わりにフルスクリーンを維持したままその前面にウィンドウを出せるようになっている。

ブラウザもファイルマネージャーもテキストエディタ(gedit)もタブウィンドウになっているので、基本、フルスクリーンで使って+αおまけみたいな設計しそうなのかもしれない。
デフォルトのワークスペースが以前は2だったのが4になってるし、フルスクリーンで使いながら切り替えてねってことなのかもしれないのだが。

2011年4月24日日曜日

Maintenance : Blender Scripts


Auto Face Rig
Bug Fix : Syntax Error

Blend Pose
Not work in Blender2.57a,because driver namespace can not be written.

VSQ Importer[New]
Test not enough.

Not use NLA,but shapekey or "blend pose".
The way to select track is by playmode or track numbers.

Create empty Shapekey : OK
Create empty Pose library : OK
Original UTAU data as single track : OK
CV03 DEMO data:
Import playmode=1(Vocal) data : OK
Import playmode=-1(Hamo) data : OK
Import track #1(Japanese vocal) : OK
Import track #3(Breath) : OK
Import track #5(Hamo2) : OK
Adjust to blend curve : Yet

My Scripts

2011年4月11日月曜日

VSQ Importerのお話

前回BlenderのAutoFacialRig Add-onにおまけとしてVSQ Importerを付けたが、本体側を修正しようとしている一方で、この機能の維持に消極的だ。

喋らせるためにVSQデータを作るぐらいなら、2.49bのAudioWindowのようにSin波を表示してそれに合わせてキーを打つ方が手っ取り早く自由度も高いからである。
更に言えば、140US$程度でbvhの吐けるフェイスキャプチャーソフトが存在する以上、台詞作りのためにわざわざDTMソフトを使う意味が見当たらず、結局のところ、ボカロユーザー向け以上のものにはならず、ボカロユーザーから特に反響もない以上、続けても仕方ない(まぁ、アピールもしてないけど)と言う判断。

まぁ、英語でVOCALOIDに関して質問されたりして面倒くさくなったのと、日本語版と英語版しか無い筈なのに非英語圏の人がわざわざ台詞を喋らせるために使えないかと考えているのを知って、音源の商用利用は別途ライセンスが必要だし、かえって無駄な労力を強いりそうだし、それで問い合わせとかされても知らんわ、ってのもある。

VSQの問題点

(1)ランセンス
(I)音声データ
音声データの商用利用には別途使用許諾が必要になるが、まぁ、これは何を使ってもだいたいそうなので、商用利用にはハードルが高いですよ、と言う程度の問題。

(II)データフォーマット
音声データの取扱いについては利用規約に定められているが、データその物については何の規程も書かれていない。
実は、ヤマハのHPには問い合わせはディストリビューターへ、とあるのでクリプトンの問い合わせフォームでこのことを質問したが、回答は無いのでデータフォーマット自体の権利範囲が定められているのかと言うことは今もグレー。
日本ではクリプトンが二次創作のお目溢しをメディアのインタビューで語っているので非商用に関しては問題にならないと思われるし、自分自身がほぼ使っていないのでこれ以上追求する気も無いが、BlenderNationでライセンスに触れている人がいたのでちょっと気になって問い合わせてみた。

(2)Blender-shapekeyでマルチトラックデータを扱う問題
AutoFacialRig Add-onはカスタムプロパティでShapekeyをドライブしてカスタムプロパティにキーを打っていたので、UIのかなりをカスタムプロパティが占有すると言う問題がある代わりに、キーそのものについては問題にならなかったが、Shapekeyは少なくとも現時点ではトラック毎に読み込んで後で合成することが出来ない。
と言うのは、Shapekeyはその時点でリンクしているAction以外は利用不可になってしまい、データ構造上は配下にNLAも持っているがActionStripに切り替えた時点でリンクが切れて利用不可になるので、プログラム的に読み込み時に配下のActionにキーを打ってNLA-ActionStripに切り替えても、別のActionを作ってNLAで足しても結果は同じになる。
そのため、1トラックにまとめて読み込む必要があるが、デモデータでもボーカルを複数トラックに分けているケースもあり、主音声とコーラストラック等の主音声以外をどう振り分けるかと言う判断が必要になる。
ネット上にある推定仕様を気にせずデモデータから判断するに、PlayModeでボーカルとハーモニーを分けているように思われるが、じゃぁ、ハーモニーを取り込むことは無いのか?と言う問題もあり、リップシンク用に作られたデータで無い限り、どこかで人が判断する必要がある。
NLAでデータを見た上で合成すると言うのはその答えの一つだが、読み込みデータ自体を最初から制限する方がユーザーがデータ構造を理解する必要があるがBlenderでの取扱いとしてはシンプルになる。

(3)UTAU
AutoFacialRig Add-onではfpsの10%・・・本来の開始位置の0.1秒前から口を開き始め、アクセントを頂点とし、開始位置ではなくアクセントからディケイ分維持して、長さの0.1秒後ろで終了する様になっている。
要するに発声より口の開閉を一回り大きくしている。
UTAUはVSQに殆どのパラメータを吐かないのでそうした調律が出来ず、MIDIには吐くがMIDIの歌詞データは音声記号の方ではなく表記用(つまり、仮名)の方なので、別途対応表を用意しないと母音だけを拾うことは出来ない。

2011年4月7日木曜日

Blender Add-on : Auto Face Rig (1)


単機能&ポジショニング+デフォーマー作成の2ステップ方式で作り直し。

データ部と処理部を分けると微調整が面倒なので、ベタ打ちしていてコードは長め。
Rollの計算方法がよく解らないのでヤマ勘で結果オーライな感じで、角度によっては破綻するかも知らん。

位置決めが前回のような決め打ちではないので長顎にも出来るけど、基本人間の顔をベースにしているので、顎と耳が離れることは想定していない。
そもそも耳Boneは位置合わせだけでDeformが入っていないので、これを顎の付け根+幅決定用とすれば割と何でもいけるが、顎が前後に薄くて目より狭いスザンヌは無理だった・・・。

2011年3月29日火曜日

Python VSQ Reader Sample


LipSync用に作ったVSQ Readerに入力結果のprintを追加したもの、最下部で入力ファイルを打ち込む必要あり。
ピッチレコード以外、イベントまでは全て読み込み。
但し、**1、**2と言ったキーは**[]のコレクションに格納しているので、元データとのキー名の整合性の保証は無し。
S-JIS変換しておらず単にprintしているだけなので、日本語は文字化けする。

これ以上進めるつもりも無いので、煮るなり焼くなりどうぞ。

2011年3月27日日曜日

Blender Add-on : BlendPose (3)

Interim Publishing

Rest Problems
(1)Key bones can not be constraints' target as locat target space.
(2)I wonder that I used an irreguler way.
(3)I don't understand GameEngine,and have not tested yet.
(4)Hinge : I had forgotten...

2011年3月24日木曜日

Blender Add-on : BlendPose (2)

Problems

Animation

One frame delay


Now,it catch the frame change event by region callback on INFO-Header,3D View-Window,and its Property Panel(UI).
Those can do by only POST_PIXEL,so it can do after starting to draw the frame view.
Property panel is for operation.
3D View is for instance animation.
INFO is for render,so it catch by rendering progresbar drawing.


Using Modal Handler
・Simple Animation ○(Timer Event)
・GL Animation ×
・Render ×
・GameEngine ?

→ It add or override armature object driver when a user operate UI.

Constraint

The target is this pose bone and its target space LOCAL : ×

It is like as the constraints on last place.
Those can select other bones to its constraints' target,but in the opposite case,it may not work.

Specifically,CopyLocation,CopyRotation,CopyScale,Transform,etc...those are to change transform properties.
StretchTo,TrackTo,IK,etc...are right.

Yet


(1)Apply visual pose to bone transform properties.
It is to make new pose to pose library or to make the action strip with bone transform keys,not volume keys.


(2)Check to blend with NLA Editor.

(3)Game Engine

(4)Rotation Axis Angle

(5)Hinge
Inherit RotationExcluded
Inherit ScaleExcluded
Local Location

2011年3月22日火曜日

Blender Add-on : BlendPose (1)

The python sctipt as to blend pose of Armature like as Shapekey.

(1)For any Armature

Not only for facial rig like as AutoFacialRig Add-on.

(2)Keys from Pose Library

Pick only keyframe_points in the frame,not influenced other frame keys.

(3)Blending REPLACE and ADD

REPLACE override bone transformations with all bones having Pose Library's keys,ADD add bone transformations on current pose from Pose Library.

(4)Transform only selected bones(Only in POSE mode)

As same as that you can animate just selected bones with L-key + Mouse wheel.
But you need to make key from bone transformations,not from blending volume.

Problems

(1)How to catch frame change event?

Now this program run the callback procedure from 3D View redraw and INFO header redraw.
The reason catching from INFO is that 3D View redraw event can not be catched while rendering,so from INFO header's progress bar.

(2)Can not make pose volume key and bone transformation key at each bone

It looks to be possible by using PoseBone.bone.matrix and .head.
But it is possible by matrix and impossible matrix_local when the bone has parent,possible by matrix_local and impossible by matrix when not have parent.
What reason is this!?

(3)Need threading?

2011年2月13日日曜日

新マウス

今年はこっちでまったり書いていこうと、年の初めに書いたけど、超 放 置