2008年02月19日

360度回転レンダリング画像 - 34

rot080218.swf

今回のくるるさんは、tentmanさんの「RollerSkates for Kururu」でかっこよく滑っているところ...ではなくて、誰か止めて〜という感じにしてみました。
服の方もtentmanさんのもので、「Camisole for KURURU」「Denim skirt for KURURU」を使わせていただいてます。
服、ローラースケートともtentmanさんのブログで入手可能です。
服はPoser Clubからも入手可能です。

ここからBlenderの記事です。
今回はPoserの「.pz2」ポーズファイルををBlender上で使用することが可能なPythonスクリプトをご紹介したいと思います。
※サンプルデータ(sample_data082018)の中で指の部分のボーン、頂点グループの名前にミスがあったのを修正しました。(2008/02/20)
このスクリプトは2006年にBlender Ver2.42用に作成され、その後更新されていませんので、最新バージョンで動かすと一部の機能が動作しないようですが、それでもBlenderでPoserのポーズデータを利用できるとても便利なスクリプトです。
pic080218_02.jpg

スクリプト「PoseLib16d.zip」は、「Blenderartists.org」のフォーラムの以下の投稿部分にあります。
http://blenderartists.org/forum/showpost.php?p=730199&postcount=63

このスレッドの中でスクリプトが改良される状況などが細かく書かれていますので、興味のある方は初めの方から読んでみてください。

このファイルをダウンロードし、解凍すると「PoserLib16d.py」というファイルが入っています。
これをBlenderのpythonフォルダにコピーしてください。
Windowsでは「C:\Program Files\Blender Foundation\Blender\.blender\scripts」というフォルダになります。
pic080218_03.jpg

このスクリプトを使用するとPoserの「.cr2」ファイルからBlenderのボーン(Armatureといいます)を自動的に作成することもできます。
対応するWavefrontOBJファイルを読み込んで、作成したボーンに合わせてメッシュが変形するように設定すれば、PoserフィギュアにBlender上でPoserの「.pz2」ポーズファイルを使用してポーズを
適用できるようになります。

それ以外にも、いろいろと機能が組み込まれているようなのですが、このスクリプトについてはマニュアルなどは用意されておらず、私自身も適当にボタンをいじってみた範囲の機能しか分かりません。

今回、このスクリプトを使用してくるるさんをBlenderで動かせるようにしたサンプルデータ(sample_data080218.zip)を用意しました。
まだ、実験的に作ったという程度のもので色々修正が必要な部分も多いと思いますが、今後さらに改良していきたいと思っています。
サンプルデータの使い方は、この記事の後半からになります。
pic080218_01.jpg

では、このスクリプトの使い方を見てみたいと思います。
前半はPoserの「.cr2」ファイルからBlenderのボーン構造「Armature」を作成する手順、後半はサンプルデータを使用して、Poserのポーズファイル「.pz2」をBlenderで使用する手順を説明します。
前半の手順で作成したArmatureに、OBJファイルのメッシュを関連付けるための方法については、次回の記事で説明する予定です。

●スクリプトの起動
「3D View」を適当に分割して「script window」を表示します。
pic080218_04.jpg pic080218_05.jpg

スクリプトファイル「PoseLib16d.zip」をBlenderのscriptsフォルダにコピーしていると、「Script」ウィンドウの「Script」メニュー「Animation」の中に「Blender Poser Handler」という項目が表示されるようになります。
pic080218_06.jpg

これを実行すると、たくさんのボタンがならんだ操作パネルが表示されます。
このうち、一番上の部分はモード切替ボタンとなります。
スクリプト起動時は「Apply」モードとなっています。
これ以外に「Save」「Options」「Number」「Poses」「bones」「Frames」のボタンがあり、それらを選択するとパネルのボタン表示がそれぞれのモードに対応するように変わります。
pic080218_07.jpg

・Apply
ポーズ適用に関する様々な設定を行います。

・Save
ポーズの保存に関するボタンがあります。
Poserの「.pz2」ファイル、Blender Libraryファイルの2種類のデータ保存が可能です。

・Option
スクリプトの機能についての設定オプションがあります。
また、「.cr2」ファイルからボーンを作成する機能もここにあります。

・Number
ボーンの回転操作などを数値指定で行います。

・Poses
ポーズライブラリのフォルダを指定して、ポーズファイルをリストに一覧表示します。
リスト中のポーズ名をマウスでダブルクリックすることでポーズを適用します。

・Bones
Armatureのボーンの親子関係が階層表示されます。
ここで選んだボーンのみにポーズを適用したりすることができます。

・Frames
アニメーションのフレーム数がリスト表示されます。
選択したフレームにだけアニメーションを読み込んだりする指定に使用します。
pic080218_09.jpg pic080218_08.jpg
pic080218_10.jpg

●「.cr2」ファイルからの「Armature」作成
このスクリプトを使用してPoserのポーズファイルを使用するには、まずポーズを適用する対象(Poserの名前規則に従ったArmature)を作成する必要があります。
このスクリプトにはPoserの「.cr2」ファイルからBlenderのArmatureを作成する機能がありますので試してみましょう。

まず「3D View」にあるデフォルト作成されている「Cube」を「Delete」キーを押して削除します。
pic080218_14.jpg

「PoseLib」スクリプトのパネルの最上部で「Option」ボタンを押します。
Armature options:「Armature text backup options」ボタンを押すと表示されるポップアップメニューで「Create armature from .txt or .cr2/.crz」ボタンを押します。
pic080218_15.jpg pic080218_16.jpg

Blenderのファイルセレクタが表示されますので、PoserのRuntimeライブラリの中の任意の「.cr2」ファイルを選択し、「Browse for .txt file.」のボタンを押します。今回は「Kururu.cr2」を使用します。
pic080218_17.jpg

次に「Scaling:1.00」というダイアログが表示されます。
ここで読み込むサイズを調整できますが、このまま「1.00」で読み込むとWavefrontOBJファイルでフィギュアの形状データを読み込んだときに丁度合う大きさになりますので、そのまま「OK」を押します。
pic080218_18.jpg

次に「name:ARM.NEWARM」というダイアログが表示されます。
ここで「Armature」の名前を設定できますが、後からでも変更できます。そのまま「OK」を押します。
pic080218_19.jpg

次に「Add IK to armature?」というダイアログが表示されます。
ここで「Yes」を選択すると、腕、脚にインバースキネマティクスの設定をしたArmatureを作成することができます。今回は「No」を選択します。
pic080218_20.jpg

最後に「Save joint rotation orders for Poser pose export?」というダイアログが表示されます。
BlenderにはPoserのようなボーンの「回転順序」の設定はありません。
そのため、このスクリプトでは、Blender上で作成したポーズをPoserの「.pz2」ファイルとして書き出す際に、元々設定されていた回転順序がどうなっていたのかを調べる必要があり、ここでそのためのデータをテキストファイルに保存しておくことができます。
今回は「No」を選択します。
pic080218_21.jpg

これで、「3D View」にKururu.cr2ファイルのデータに対応した「Armature」が作成されます。サイズはBlenderの基本形状などと比べると、かなり小さめになります。
pic080218_22.jpg

作成されたArmatureは、X軸に90度回転した状態になっています。
テンキーの「3」を押して、横からの表示で確認してみます。
これを正しい状態に修正するには、回転コマンドのキーボードショートカット「R」を実行し、「Ctrl」キーを押してマウスドラッグして、左下の表示が「Rot: -90.00」となるようにArmatureを回転します。
pic080218_23.jpg pic080218_24.jpg

これで、「.cr2」ファイルからのArmatureの作成は完了しました。
このように作成したArmatureには、このスクリプトを使用してPoserのポーズファイルを適用することができます。

WavefrontOBJファイルを読み込んで、このArmatureとメッシュを関連付ける設定の詳細については、少し説明が長くなりすぎると思いますので、次回に記事にまとめたいと思います。
今回はあらかじめ用意したサンプルデータを使用して、スクリプトのポーズ適用について説明を続けます。

●ポーズの適用
ここからは、サンプルファイル「kururu_aramture.blend」を使用してポーズを適用してみます。
サンプルファイルを開いて、画面右の「Script」ウィンドウで「Script」メニュー「Animation」-「Blender Pose Handler」を選択し、スクリプトを起動します。
pic080218_25.jpg

「PoseLib」スクリプトの上部にある「Pose」ボタンを押します。
pic080218_26.jpg

「Browse」ボタンを押して、PoserのPoseフォルダを選択します。
Blenderのファイルセレクタが表示されますので、使用したいPoseファイルのあるフォルダに入って「Select pose folder:」ボタンを押します。
今回はHenrietteさんの「Kururu Pose」を使います。
pic080218_27.jpg pic080218_28.jpg

リストボックスに選択したPoseフォルダの「.pz2」ファイルが表示されます。
pic080218_29.jpg

「3D View」または「Outliner」で「Armature」が選択されているのを確認し、リストの中に表示されているポーズ名をダブルクリックします。今回は、「Pose03.pz2」を使用してみます。
pic080218_30.jpg

Aramatureはフィギュア本体用の「Armature」と服用の「Armature.001」の2つありますが、ポーズを適用する際にはフィギュア本体用の「Armature」の方を選択してください。
pic080218_31.jpg pic080218_32.jpg

「Insert pose keys this frame?」というように聞いてきますが、とりあえず「No」を選択してください。
「3D View」でフィギュアにポーズが適用されます。
pic080218_33.jpg pic080218_34.jpg

ポーズを適用したあと脚が服のスカート部分にめりこんでしまうことがあります。
これを修正するためには、「Pose」モードでスカートの部分のボーンを調整します。
「Outline」で「Aramture.001」の下にある「Pose」の左の三角形をマウスクリックで展開し、ボーンの階層の中のスカート部分まで表示させます。
pic080218_35.jpg
(ボーンが緑色になっている部分はフィギュア本体にボーンが追従するように「Constraints」をあらかじめ設定してあります。)

スカートのボーン「hb」「hr」「hf」「hl」のいずれかを「Outliner」で選択します。
「hb」はスカートの前、「hr」が右、「hl」が左、「hb」が後ろになっています。
pic080218_36.jpg

キーボードショートカット「R」で回転します。
適当に視点を変更して調整しないと、なかなかうまく回転できないかもしれません。
※ボーンの回転だけで調整しきれない場合は、服のメッシュデータ「slip.001」に設定してあるモーフ(shapekey)「Key1」の値を変更することで、もう少し調整できるかもしれません。(2008/02/19追記)
pic080218_37.jpg

適用したポーズをすべてもとの状態に戻したい場合、「Pose」メニューの「Clear Transform」-「Clear User Transform」を実行すると、選択したボーンの位置や回転状態がデフォルト状態に戻ります。
pic080218_38.jpg

フィギュア全体のポーズを戻すには、ショートカットキー「A」を押して全てのボーンを選択して「Clear User Transform」を実行することで可能ですが、「Pose Handler」スクリプトにもフィギュア
をゼロポーズ状態に戻す便利なボタンがあります。
スクリプトのパネル上部で「Apply」を選択し、「Loading and application:」の部分の「Zero current pose」を押すと、選択されているArmatureのポーズがデフォルト状態に戻ります。
pic080218_39.jpg

ポーズを適用した状態でレンダリングができるように、サンプルデータではライトやカメラを設定してあります。レンダリングを行うには、「Buttons」ウィンドウの「Scene」ボタンを押して、「Render」パネルを表示します。
「Render」ボタンを押すと、レンダリングが開始されます。
pic080218_40.jpg pic080218_41.jpg

●アニメーション
アニメーションを作成する際には、カレントフレームを適当に移動した状態でポーズを適用し、キーフレームを設定していきます。
このスクリプトを使用してアニメーションを作成する場合、「Action Editor」を開いておくと、キーフレームの設定の様子が確認できて便利です。
pic080218_42.jpg pic080218_43.jpg

スクリプトでポーズを適用する際に、リストのポーズ名をダブルクリックした後の「Insert pose keys this frame?」の確認のところで「Yes」を選択すると、カレントフレームにキーフレームが設定されます。
pic080218_47.jpg pic080218_44.jpg

・キーフレームを設定してアニメーションを作成する場合の注意点です。
すでに作成されている「Action」に対してポーズを読み込もうとすると、エラーが起こりスクリプトが終了してしまうことがあります。
pic080218_45.jpg

この場合、エラーの起こる「Action」を「x」印のボタン(Deletes link to this Datablock)を押して選択状態から解除し、スクリプトでポーズを適用して新規の「Action」を作成するようにすると、問題を回避できると思います。
pic080218_46.jpg

その他、最新バージョンのBlenderとスクリプトが作成されたVer2.42との違いによって、スクリプトが正しく動作しないことがあるようですが、詳しいことは私にも分かりません。
このスクリプトにはたくさんの機能がありますので、どこかのボタンを押すとスクリプトが終了してしまうということが、ときどきあるかもしれません。
場合によってはBlender自体が終了してしまうこともありえますので、いろいろな機能を試してみる場合はデータを保存しておくなどして、十分にご注意ください。
ラベル:Blender 3DCG
posted by mato at 01:52| Comment(8) | TrackBack(0) | BLENDER | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんばんわー。
拙作をご使用いただきありがとうございますm(__)m
swfを見ていると、危なっかしい感じが実に良く出てますね。
特に表情がナイスです^^
Posted by tentman at 2008年02月19日 20:28
こんばんは。
ローラースケートを配布開始していただいたときtentmanさんがブログに書かれていたことを思い出して、こういう状況の絵にしてみました。
サムネイル画像では今ひとつなのですが、くるっと回して別角度から見ると雰囲気がより伝わるような感じになって、3Dにはこういう効果もあるのかなとちょっと感心してしまいました。
私に静止画で雰囲気を伝える技術が不足しているだけなのかもしれませんが...。
Posted by mato at 2008年02月19日 23:13
こんばんは!

くるるちゃんの表情がとってもお茶目で
可愛いですネ。それとローラースケート
がかっこ良く似合ってますヨー。

それとBlenderからpz2ファイルを呼び出して
直接適用できるなんて…とても便利だなと思いました。

Blenderファンがこれでまた増えそうですネ〜。(^^)


Posted by mamomamo at 2008年02月23日 01:56
> mamomamoさん
こんばんは。
これまでに作った回転画像を見ていて、もう少しくずれた感じのものもあっていいかなと思い、今回はいつもよりモーフダイアルを余計に回してみました。

Blenderでは、Poserと色々な部分で仕組みが違っていて、関節部分をきれいに変形させるにはかなり工夫する必要がありそうです。
現在、Poserのように服を着用するような使い方ができるか試したりしているのですが、ちょっと難しいかな...という感じです。
次回の記事で、その辺のことも書いてみたいと思います。
Posted by mato at 2008年02月23日 03:23
かわいいですね〜。
止めて〜な雰囲気でてます。
ポーズもうまいですね。
Posted by polin at 2008年02月28日 01:47
> polinさん
こんばんは。
この回転画像ですが、30回以上も続けると、Poserでの操作中にこんなポーズ前にもあったような...という感じで以前のものを確認したりすることが増えてきました。
そんな中で今回のローラースケートは、いろいろなポーズを想像できて、とても助かりました。
今回使用したポーズ以外にも、イナバウアーみたいなフィギュアスケートのポーズとかもやってみたいなと思いました。
Posted by mato at 2008年02月28日 21:35
はじめまして。

とってもわかりやすい解説ですね。
これからも是非続けてください!
【Poser】連携のモデリングは【六角Super】を使用していましたがモーフターゲットが作成出来ない為(Mac使いなもんで)他のモデリングツールを探しておりました。
【Blender】は何かと敷居の高いイメージが強く手が出ませんでしたが、こんなに詳細な解説をいただける方がいらっしゃるとは・・・
最近出版された解説本とあわせてマスター目指してがんばります。

WavefrontOBJファイルを読み込んで、このArmatureとメッシュを関連付ける設定の詳細・・・楽しみにしています。
枡久田さんの【F202】を【Blender】に持って来たくて・・・(Armatureの取り込み成功しました!)
Posted by choby at 2008年03月16日 22:44
> chobyさん
はじめまして。
私は最近までこのスクリプトのことを知らなかったのですが、今月出版された「3DキャラクターアニメーションBlender」という本に紹介されていましたので、もしかするととても有名なスクリプトだったのかもしれません。(残念ながらPoserとの連携については触れられていません)
この本はちょっと内容のレベルが高いようですが、Blenderでのフィギュア作成について詳しく書かれていて、私もとても勉強になりました。

次の記事は、もう少しで書けると思います。
本を読んだりしていて、いつも以上に遅れてしまってすみません。
枡久田さんのF202、ぜひBlenderで動かせるように頑張ってください。
Posted by mato at 2008年03月17日 01:33
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
過去に参加した展覧会
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。