投稿

ラベル(Blender)が付いた投稿を表示しています

Unreal engine/DirectXとBlender/OpenGLの座標系

イメージ
 Unreal Engine/Direct X/Unity 左手座標系, left-handed coordinate system Blender/Open GL/Godot/LibGdx 右手座標系,right-handed coordinate system

Blender ArmatureのPreserve Volumeをほとんのどの場合チェック

https://www.blender.org/manual/modeling/modifiers/deform/armature.html BlenderでRiggingを編集している時、忘れやすいのがArmature ModifierのPreserve Volumeをチェックすること、Quaternionによる補間(Slerp)を保持するためのもので、ほとんどの場合よい結果をもたらす。 ご存知かもしれないが、3Dプログラミングでの鬼門はRotation(Scaleもあるがほとんどの場合変化させないことで対処可能)である。 Euler(XYZの順序で状況変化)は人間に理解しやすいがギンバルロックという、直感的には理解しにくい欠陥が入ってくる。 Quaternionを利用すればギンバルロックは避けられるが今度は人間には直感的ではないし、数値的にありえない場合も起きてしまう。 尚、Quaternionはマイナス値とプラス値は同じ角度(符号反転)を示すことを覚えておくのが基本である。 とまぁ、おまじないのようにチェックして、不都合があればアンチェックすればいいと思うが、忘れないようにすることが重要である。(Blender 2.77aではディフォルトはオフ)

How to change Blender 2.76 fbx-export addon to libgdx g3dj, g3db export addon.

イメージ
2,3日前にリリースされた最新版 Blender 3D 2.76 のfbx-exporterを libgdx-g3d のコンバーターへ変更する方法をpatch.txtで記述した。この バージョン2.76からOption指定Windowが大きく変わった ので注意してほしい。 改造はAddonの中で fbx-conv をシンプルに実行しているだけなので、当たり前だが非常にstableでメンテナンスも簡単である。 注意点はfbxファイルはコンバート成功後、自動に消されるので、消したくない場合はos.remove(keywords["filepath"])を削除する。 詳細: 以下のpatch.txtをblender-2.76-linux-glibc211-x86_64/2.76/scripts/addons/io_scene_fbx/の__init__.pyに当てるとlibgdxのg3dファイルのコンバートをしてくれるようになる。BinaryかJsonかのオプションも追加される。 https://github.com/libgdx/fbx-conv からfbx-convをDownload & installする。ソースだけではなくBinaryのダウンロードも可能だ。 Linux(Ubuntu15.04でテスト)ではfbx-conv-lin64を実行できるようにPATH環境変数に設定しなければならない。 BlenderでFbx-exportを実行すればよい。メニュー名などは自分の作業効率アップのため変えてみるのもよいだろう。 尚、fbx-conv-lin64をWindows用、MacOS用のコマンド名に変更し、PATHを設定すれば各OSで動作するハズ(未確認)。 Tips:さらに自作のaddonを自動に呼びたければos.remove(keywords["filepath"])の下に他のフォルダーのaddonの関数を書けばよい(importを忘れずに)。私はそうしている。 下図ではlibgdxのoutput optionが追加になっている。defaultでg3djを出力 P.S.1 I'm sorry for English guys! May be, English vers...

Blender 2.74 FBX-exporter of coordinate system was fixed.

イメージ
The Blender2.74 is coming soon. Its Fbx-exporter was fixed which outputs wrong coordinate system. It is great news for game developer;-) e.g. -Z Forward and Y Up setting outputs wrong rotation value which is around Y axis. It was fixed.

UbuntuのKey bindingがリセットされるバグ 未だ治らず。

イメージ
https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/1063617 Ubuntu12.10からはじまって、未だに修正されていないバグ。(Fix-RelasedとあるがCompiz 0.9.10.2でも発生) ランダムにキー設定がディフォルトに戻ってしまうのである。これはblender使いには困った現象でAlt+Right-clickがランダムに使えないことになる。日本語入力のキーバインディングも問題だが、基本的にキー設定はシステム自体がカオスなのである。そのため、パッと修正できないのだ。設計の悪いシステムの証拠でもある。 Open sourceにもかかわらずプログラマでさえ直せないキーバインディング管理が一般ユーザーが使いやすいということはない。 赤いラインの部分をAlt+Right-click(button3)からAlt+Super+Right-clickにしても、 ランダムでリセットされてしまう。元々Disableすら不可能。 これはMirかWaylandになれば根本的に修正されるところなのか気になるところでもある。

Blender Cycles render engineがApache 2ライセンスへ

Blenderは立ち止まらないなぁ。と強く感じたNewsである。 最新の Cycles engineがApache License version 2.0 になった。 これによって、このengineをほぼ自由に使えて、ソース公開する必要もない。開発者としては思い切った行動に出たが、ボクは正しい方向性だと思う。 印象に残ったTONのメッセージをリンク元から引用すると... I see it this way: there’s the fully open domain (GPL) and the closed domain (proprietary sw). The open domain needs to be protected well, which is what GPL provides. Projects working with BSD/MIT/Apache just allow to work for both domains. That’s all. It’s part of the software ecology now, providing positive dynamics for the software industry to move forward. Generalizing – permissive licensing works good for libraries, strict licensing works good for end-user software. 背景には他には負けないという自信や、プロジェクトに緊張感を保ち、実力主義を維持する狙いもあると思う。Software業界も独占という目先の利益だけで食うのではなく、競い合って良い製品を作る時代へと移行しつつあると思う。このような時勢から、ソフトウェア製作者はPermissive moduleを統一して、独創的なデザインや使いやすさで、ひとつの製品に仕上げる能力が必要な時代になりつつあると考えている。 そして、誰もがかんがることだろうけど。ゲームもいずれオープンソースが当たり前になる時代が来るなと思った。理由をわかりやすく書くとBethesda Softworksの競争相手がsykrimなどのModを超えるコミニティが欲しいと思っ...

Blenderと2013年前半の本

Blender 3Dの本。たまに良い本がないかといろいろ物色しているけど。 2013年前半の本は Blender Master Class  が良いのではないか? まだ深く読んでいない箇所もあるので完全な感想ではないが、軽く読んでみると評判がいい本だけはあると思った。Blenderでスクラッチから創作する流れが習得できると思う。ただし、操作の細かなところまでは説明していないので多少、Blenderの使い方を習得してからのほうがスムーズに読めると思う。 前半部ではRetopologyについて、詳細に述べている。これはアニメーションを作る意味でも作業の効率化にもつながり、重要なことである。 ボクの探した本の範囲では、ここをしっかり説明しているものがなかったのでありがたいと思った。 とまぁ個人的に悩んでいたテクスチャの作り込み、毛の作成、面倒なライティング、そして完成にいたる調整などが参考になる。 なお、Blenderは2013年に発売された本だけあって2.6x(たぶん2.64以上)をベースとしている。出版元からはprint可能なpdf版(サンプルDLはTorrent利用)も購入可能なので日本からも利用しやすい。なお、Kindle版が$9ほどやすい。印刷するには ココ の方法でできるらしいがまだボクは試していない。時間があるときに試す予定。 参考: http://cgcookie.com/blender/2013/04/03/blender-master-class-ben-simonds-book-review/ PS.1 当たり前だが評判がいい本を探すのは発売から2,3ヶ月ぐらいしなければわからない。そのことを考えればタイムリーな本ではないか。 PS.2 アニメーションについては書かれていない。これに関しては前々から書いているように http://www.packtpub.com/blender-2-5-character-animation-cookbook/book がいまのところベスト。細かな誤りが多い上errataが悪いが価値は高い。

Blender Weight Paintは非直感なインターフェース

Blender(3Dソフト)で複雑なアニメーションを作成するのにbone(amature)を使うのが普通であるが、その中でBoneの動作の影響を皮膚(Vertex)へ設定するためにWeight(重み)を利用しているのはご存知の通りである。 が、このWeightを編集するためのWeight editorが曲者である(Ver2.66なのにw)。とにかく、直感的な操作ではないのでドキュメントをプリントアウトし、じっくり読んで試してみることをおすすめする。特に正確な動作を指定したいときは重要になってくると思っている。 参考: http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Meshes/Weight_Paint 参考: Blender 2.5 Character Animation CookbookのCap.1後半(日本からはpdfを買うのがいい、印刷可能) http://www.packtpub.com/blender-2-5-character-animation-cookbook/book

Blender 2.67 3D ruler

イメージ
Blenderでモデリングをしている際、割と苦労するのが各faceの正確な位置である。建築物や、圧縮効率を高くしたいゲーム開発では必須のことだ。いまはEdit modeにしてVertex選択で座標を見たり、決して見やすいとは思えなかったAddonを使っている。が、2.67には正確な長さや角度を見やすくする定規ツール(3D Ruler)が追加になるらしい。すでに開発版にはいっているのでDLして試すことが可能なようだ。なお、ボクはまだDLすらしていないw いずれ試す予定。 詳細はココ

Blender keyboard and mouse macro for linux

メッシュにテクスチャ貼り付ける際、モバイル機のために効率化のため、手作業をしなければならないことがあります。つまり、通常3Dアニメーションではあまり使わないため、そのための細かな機能がBlenderになかったりすることがあります。通常はpythonを使ってAddonを作ることになるのですが、これは面倒で非直感的です。 いままでにボクはAI用navi-mesh(Blender標準よりも細かいnavi-data)やcustom-propertiesをjson出力するaddonを書いていますが、1,2週間かかり、しかもメンテナンスもあります。残念ながら、こんなことはやってられないことが多いのです。 そこで登場するのが、OS(Linux)に備わっているキーボード&マウス、マクロ再生です。しかし、ツールによっては機能が足りなかったりしてなかなか使い物にはなりませんでした。 以下が候補です。 xdotool xnee xmacro xneeはgnome3ではクラッシュするようです。なんとなく開発に熱意がたりない。また、レガシーなxmacroはシンプルで好きなのですが、マウスの相対位置が指定できない(ボクが発見していない?)という欠陥があります。 xdotoolはマウスの相対位置の指定が可能です。しかし、再生のみでレコードができません。 この中ではxdotoolが、不満があるものの、ボクの用途には使えました。 検索をすればよいtutorialがありますので、すぐに使えます。 以下がサンプルです。 #!/bin/bash for i in `seq 1 $1` do   sleep 0.3   xdotool key c   sleep 0.1   # select   xdotool click 1   sleep 0.1   # cancel c   xdotool click 3   sleep 0.5   # u,v   xdotool key u   sleep 0.1   xdotool key b   sleep 0.1   xdot...

Cycles render

イメージ
ここ1,2年の NVIDIA  GTXのビデオカードを持っていれば、やってみたくなるのがBlender cycles。わかりやすいTutorialが公開されているのでおすすめである(英語)。 Node Editorを使いMaterialを編集&チェックを繰り返しながら作りこんでいく基礎が説明されている。 ちょと音がうるさいがシンプル http://www.man-i-can.com/category/cycles-videos/ おなじみのCgcook http://cgcookie.com/blender/2011/09/16/introduction-blender-cycles-render-engine/ 若干Ver2.66とはメニューの細かなところが異なるが、ちょと考えればわかると思う。 2万円以下で入手可能になってきたGTX660では問題なく、試すことが可能である。 Ubuntu(Linux)の注意点として、NVIDIAのProprietary driverを使わないとGPU/CUDAを使えるようにならないので注意されたい。ボクはVersion 310.14を使った。現在のNouveau driverではCUDAを使えない。また最新のKernel3.8はNVIDAの3Dアクセラレータがほとんど対応になるだけで、ぱっとみたところCUDAについては一切書かれていない(たぶんw)。 他にはお馴染みの http://www.blendtuts.com がある。 http://www.blendtuts.com/Cycles_intro  なお、レンダリングを美しくみたいときはRender->Sampling tab内 Samples/Render:を200, 500にすればいい。ただし、当然、遅くなる。

Blender 2.6 カメラ 移動 (Camera Move)

イメージ
Blender 2.6(2.65a)は、カメラの移動がディフォルトでは使いにくい。カメラを選択してG, R, Sで動かしたり、またShift+Fで入るFly Navigation modeも直感的でないため、使いにくいのである。そのため、Version 2.58あたりで追加されたNボタンで表示されるLock Camera to Viewがとても便利で、これをチェックすることによって直感的にカメラの移動ができて簡単である。  参考: http://www.andreucabre.com/2012/02/positioning-camera-in-blender-pro-way.html 参考: http://cgcookie.com/blender/2011/06/29/tip-camera-lock-in-blender-2-58/  しかし、これにも現在(2.65a/Linux 64bits版使用)、穴があって、 OrthographicカメラモードにしているとZoom(ミドルマウスボタン)がLock Camera to Viewで動作しない。 Perspectiveでなければ動作しないのだ。 Orthographicのときは Camera PropertyなどからOrthographic Scaleの値を変更することになる。 バグなのか、仕様なのかは不明だが(今、調べる余裕がない)これにハマり、無駄な時間を浪費した。ゲーム製作者が、よくOrthographicを使うと思われるが注意したほうがいい。

Blender-mathutilsのコンパイル

blender-mathutilsのコンパイル 目的:Eclipse+PyDevを使って、Plugin開発のコア部(エンジン)のデバックを容易にする。 (手間とコツが必要なため、手っ取り早くBreakpointをして変数をチェックするには http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Development/BreakPoint が便利、素早く詳細を知りたい場合はbpy module, mathutils moduleが必要) 環境:Ubuntu 12.10 64bitsとBlenderがコンパイルできるようにする。 参考: http://nowcodingtime.blogspot.jp/2013/01/blender-265apython-module.html 以下のサイトからmathutilsをDL可能 http://code.google.com/p/blender-mathutils/ ただし、現行のバージョンでは、エラーが発生するので以下を参考におこなう。(尚、上のissue2にボクが書いた同じ文がある。) 1. I copied this intern/math_color_inline.c from the blender source. 2. For experiment:   $ sudo ln -s /usr/include/x86_64-linux-gnu/python3.3m/pyconfig.h /usr/include/python3.3m/pyconfig.h     Probably, the Ubuntu12.10 has a bug or no support. 3. cmake . 4. make 5. copy ./bin/mathutils.so to /usr/lib/python3/dist-packages/ 6. The error occurred by this module. 7. I deleted the line of 519-521 in ./src/mathutils/mathutils.c. and cmake .;make again. 8. The...

Blender 2.65aをコンパイルしてpython module版を作成

イメージ
(Updete 2013-3-27:Ver 2.66a同じようにコンパイル成功、出力先フォルダ名がbuildからbuild_linuxへ変更。 blendファイルを保存するAPI,  bpy.ops.wm.save_mainfile()のcrashは修正された。 ) (Updete 2013-6-4:Ver 2.67a/Ubuntu13.04同じようにコンパイル成功 ) Blenderのpluginを本格的に開発しようとすればBlenderのpython moduleが必要と感じるはずだ。理由はデバックやEditor(IDE)が便利になるからだ。以下はその情報と注意を記した。 (手軽にBreakPointをしたい場合は http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Development/BreakPoint がいいが、さらに素早く詳細に調べる場合はbpy moduleが必須である) 以下のサイトの手順が成功した。 他のubuntu wikiなどは古く、手順も複雑でさらにコンパイルに失敗(ボクの場合)した。 コンパイル: http://wiki.blender.org/index.php/User:Ideasman42/BlenderAsPyModule リンク先の手順はUbuntu repositryからpython3.3のdevパッケージがインストールされるので、python3.3はソースをダウンロードしてコンパイルする手間は不要。それをした場合は最後の最後にコンフリクトをおこしてコンパイル(というかLinker)が失敗になる。(e.g. relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC) すでに自分でコンパイルしたpythonは/usr/localから地道に手作業で消さなければならない(python3.3のソースにはmake uninstallなどの自動アンインストールは現在無いからだ) 参考までに以下のフォルダー内にインストールされているが、ここを消...

Blenderのimport export plugin(Addon)を作るスタート地点

イメージ
ご存知のようにBlenderのよいところは、機能の充実や情報が豊富なことである。しかも、オープン・ソースのため、その気になれば、痒いところには90%手が届く(それでもボクの頭で理解できないことはある)。実はこれはとても大事なことで、さんざん調べあげたところ、最後の最後にプロプライエタリによって壁を閉ざされることになったということは経験上何度もある。アセンブラ解析までしたことも1,2度ではない。もちろん、9.9割の確率で無駄に終わった。こんなときは閉鎖性の壁が自分の周りにあるようで途方に暮れる。所詮、独占元にコネがあるところやお金のあるところしか情報はもらえないのである(全て解決してくれないことが多いけどw)。幸い、今は大きく時代がかわりつつある。 ボクの仕事ではBlenderのExport pluginは一番使いたいし、作りたい機能である。改造しやすいのはWavefront .obj(.mtl含む)でこれをベースすればよいと思う。 Wikipediaにもフォーマット が書かれているぐらいシンプルさが良いのだ。アニメーションには弱そうだが、COLLADA(xmlなのとSIDの曖昧さがツライ,日本の企業がかかわっているからw)のように複雑で曖昧ではないし、FBXのような閉鎖性(ヘッダーファイルがあると喜んでも、それに貴重な時間をかける暇はない)もない。wavefront .objのソースをプリントアプトして、ラインを引きながら解析すればすぐ理解できるのでオススメだ。余談だが、ボクはグラフィック業界ではCOLLADAような内容でjson形式にして、シンプルさを追求した汎用ファイルフォーマットが必要だと感じている。WebGLにも利用しやすいだろう。 場所はblender 2.64a(pathはunix系)を例にすると、 blender/2.64/scripts/addon/io_scene_obj/ である。これをフォルダごと、もってきて、リネームし改造をすればいい。 __init__.pyの内容を変更して、自分の好きな名前にして、カスタマイズスタートすればいいと思う。 各オプションのデフォルトを自分なりに変えて、それを動かしながらおこなえば開発の感覚がわかってくる。 注意としては 2.62から、基礎部分である Matrixの互換性 がなくなっている...

Blenderで精確な作業

イメージ
グラフィックツールを使う上では、amatureを使わない短編アニメーションやイラストを作成するためならば、あまり必要がないテクニックかもしれません。しかし、 amature を使ったアニメーション、物理シミュレーション、ゲーム、建築物や設計などの分野では精確な作業が必要になります。 Blenderでは Precision work in Blender の記事が参考になりました。どうしても3Dツールは浮動小数点の不正確性やマウスなどの入力精度のため、ある程度、これらの癖を回避するテクニックが必要です。 詳細はリンク先を参照してもらって、概要は以下のようになっています。 using units  ユニット(単位)を精確に 3d axis  3Dの各軸 keyboard numeric input and axis constraints  キーボードによる数値入力と、座標軸に沿った編集  manipulators  マニュピレーターを活用 the transform properties toolbox  変換・プロパティ・ツールボックス上で入力 numeric input for modifiers  モディファイアのため数値入力 3d cursor  3Dカーソルを精確な配置 object origin  オブジェクトの座標系 object snap  オブジェクトスナップ(定移動) grid snap  グリッドにスナップ snap menu  スナップのメニューについて show edge lengths  エッジの長さを表示 pivot point  pivotポイント transform orientations  座標系の変換 align  並べる align rotation with the snapping target  ターゲットに沿って並べる divisions  分割を活用して精度良く 上記以外でボク自身が使うのはNormalの表示や、その方向を揃える。AmatureのWeight表示のAddon(...

Blender Rigging conventions

イメージ
Don't use extrude. Use subdivide when making bones. It important thing to keep in mind when creating bones is axis conventions. Use Rigify add-on.

Difference in texture of Blender 2.5 and 2.63a

There is a difference by default of texture of  Blender versions 2.5 and 2.63a. In Influence. default of Bump Mapping/Method. It's a "low Quality" in versions 2.63a. However, Version 2 is the "Original".

Blender NodesとMaterials

イメージ
BlenderのNode Editを使うと左にあるMaterialsをMixでき右のMaterialを合成できとても便利である。参考は この本(Materials and Textures Cookbook) を参照、深くMaterialとTextureを学べる。お節介だけどKindle版よりも印刷ができるpdf版がおすすめ。 そうそう2冊同時購入だと半額になるので Character Animation Cookbook と同時購入を勧める。Rigging Animationの本でキャラクターであるOttoが生き生きしている。誤植が大変多いしサポートは悪いけど、そんなものはどうでもいいと思うぐらいの良書である(今年一番繰り返し読んでいる本)

Blender Distorted Noise

イメージ
No Distorted Noise With Distorted Noise 下のほうが石ぽっく観える。 BlenderのDistorted Noise(ゆがみを与えるノイズ) Textureは、あとのTextureに対して影響を与えるために使われることがある(need Stencil.) Clouds Noise + Distorted Noise + Musgraveを重ねている