2008年05月31日
クロスシミュレーションで遊ぼ~(Blender2.46編)
● まえがき
前回、「ワンちゃんの足作り」で、Armatureアニメ機能のスカルプへの応用を紹介しましたが、
ぜひ、ソフトボディのクロスシミュレーションも紹介してください、とメールを頂きました。
昔、書いたブログ記事なんですが、
「Blenderのクロスシミュレーションを試してみる」
http://pastel.slmame.com/e127146.html
確かに今読み返すと、不親切な記事だなぁ~、と感じたので、Blender2.46の勉強も兼ねて
手順を整理してみました。
(最近使ってないので、完全にやり方を忘れてた。 >< )
● Blender2.46のソフトボディ変形(クロスシミュレーション)で作った、布状スカルプテッドプリムいろいろ。


● ソフトボディのクロスシミュレーション
Blenderで実行中の画面をキャプチャして、GIFアニメにしてみました。 (重くてごめんなさい。。)
【頂点固定 (Vertex Weight) の見本】

【障害物回避 (Cloth Interaction) の見本】

● 「超」基本的な手順 (機能が多すぎて。。。><; )
(1) まずは、プレーン(Plane)を配置して、
Subdivideで、プレーンを分割、
全頂点を選択して、Set Smoothで、滑らかにしておく、

(2) Vertex Group (頂点グループ)の指定
動かしたくない頂点を選択します。
選択した頂点に、「TableTop」という頂点グループ名をつける。
ウエイト値に1(動かない)を指定。
Assignボタンでグループ確定。

(3) ウエイトペイントモードで確認
赤い部分が、ウエイト値1(動かない)ところです。
Armatureボーンのブログで解説したワンちゃんの足と同じですね。

(4) フレーム数の指定
アニメーションのフレーム数を指定します。
とりあえず、1サイクル、100フレームくらいで。

(5) ソフトボディの設定
Ver2.46のソフトボディパネルです。Ver2.45と比べていろいろ変わってます。
プレーンを選択して、ソフトボディの設定をします。
Grav:4.9 (重力)
Goal:0 (頂点ウェイトのデフォルト値、次のUse Goalを指定すると隠れてしまいます。)
Use Goal:TableTop (頂点グループTableTopを利用、GoalとUse Goalの値を足して、1になるようにします。)
G Damp:5 (Goalの制動、暴れる度合いみたいな感じ)
Use Edges (メッシュのエッジをスプリングとして利用、伸び縮みの度合い)
Stiff Quads (メッシュの対角線をスプリングとして利用、形崩れの度合い)
Pull:0.5,Push:0.5,Damp:0.5 (スプリングの弾性度みたいな感じ)
(無理やり日本語で説明するより、実際やってみたほうがよくわかったりする。。。^^;)

(6) ソフトボディの実行
[ALT]+[A] で、ソフトボディアニメーションを実行します。(上のGIFアニメを参考)
(最初の1サイクルは時間がかかります。)
[ESC] で、アニメーション停止。
[→]、[←] で、1フレームずつコマ送りできます。
[↑]、[↓] で、10フレームずつコマ送りできます。
[SHIFT]+[←] で、1フレームに巻き戻し。
アニメーション実行中に、カメラを動かして視点を変えることもできます。

(7) ソフトボディの実行中を良く見ると、、、
自分自身を検知していないので、交差してます。
まあ、スカルプを作る目的なら、中間の形状は気にしなくてもいいですが。

(8) 自己衝突(Self Collision)を有効にすることもできます。
Ball Sizeで、間隔の距離を設定できます。(だけど、1サイクル目の計算に時間がかかる様になります。)

(9) プレーンを障害物にぶつける場合です。
プレーンの全頂点は、ウエイト値0(全部青色)にします。
障害物を選択して、Fields/CollisionパネルのCollisionを有効にします。
Outerの値で、障害物との間隔を指定できます。

(10) 頂点固定と、障害物回避の組み合わせです。
コタツ布団とか、すぐにできますね。^^
コマ送りして、気に入った形状が見つかったら、Modifier:Softbodyパネルで、Apply(確定)
します。
これで普通のメッシュになりますので、あとはいつもどおり、RGBテクスチャの設定、UV展開、
Bakeで、スカルプテッドプリムの画像ファイルのできあがりです。

● あとがき
あまり変形しすぎると、スカルプにした時に頂点不足でカクカクが目立ってしまいますが、
上から自然にかぶせる様な布形状なら、大抵だいじょうぶです。
インワールドでは布形状のプリムはそんなに多くないみたいなので、インテリアの家具にかぶせたり
してやると、ちょっとしたアクセントになって、イイ感じです。
プレーンでコツがつかめたら、シリンダやスフィアなどの立体で、ソフトボディ変形を試してみてください。
でわでわ。^^/
blender v2.46 Blender Foundation
2008年05月30日
Blender アニメーションエクスポーター
Blender to SL BVH Animation Exporter
http://jacek.meratalk.com/2008/05/19/blender-to-sl-bvh-animation-exporter/
これはオモシロそう~、 ^^/
こういうツールを開発してくださってる方がいて、本当にありがたいです。
感謝を込めて、さっそく試させていただきます。
Blenderで、Animation機能の勉強をしておいて、ヨカッタ。^^

blender v2.46 Blender Foundation
2008年05月23日
OpenSimサーバ構築記録その1(Linuxに導入編)
● きっかけ
私: 米IBMと米Linden Labが去年提携しましたね。
これからはWebアプリケーションも仮想世界との連携とか必要になるかもしれませんね~
私のボス: テスト用サーバに余裕があれば、OpenSim入れてもいいよ。
私: マジですか~!!!、仕事中に堂々とセカンドライフができる~ ^^
私のボス: 仕事だからね。 ちゃんと仕組みを勉強してよ。
私: わ~いわ~い ^^/ (聞いてない)
というわけで、最近仕事中に堂々とOpenSimサーバを構築して、遊んでます。
● テスト用サーバ仕様
CPU: Pentium4 3.2GHz
メモリ: 2GB
OS: Ubuntu8.04 (Debian/GNU Linux系OS)
元々は、ホームページ、Webアプリケーションの動作確認用のサーバ機です。
テスト用とはいえ、DMZ上に配置された、立派な外部公開サーバ。
最初の頃はただの利用者だったのに、一番使う私が、いつの間にやら管理者に。。。 ーー;
● OpenSimインストール手順書の入手
(URL) http://opensimulator.org/wiki/User_Documentation
なんと、テスト機と同じOS(Ubuntu8.04)の手順が書かれているではないですか~。
すばらしい。 英語も(たぶん)簡単そうだ。 ^^;
● 手順書を参考に、各種パッケージのインストール
(1) 職場のテスト機にSSHでリモートログイン。
rootユーザになって、/usr/local ディレクトリに移動して作業します。
Linux/Unixでは、ソースからコンパイル・インストールするときは、/usr/local 配下に作成する事が多いので。
root@sv:/root# cd /usr/local
Ubuntu、Knoppixなど、Debian系Linuxのパッケージは、apt-get または aptitudeコマンドで
ネットワーク経由でパッケージのサイトからインストールします。
(2) subversion のインストール
subversionは、ソースファイルなどのリポジトリ管理のツールです。
OpenSim本体は、subversionを利用してリポジトリサイトからダウンロード(チェックアウト)します。
root@sv:/usr/local# apt-get install subversion
Suggested packages:
db4.6-util patch subversion-tools
The following NEW packages will be installed:
subversion
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 0B/243kB of archives.
After this operation, 3482kB of additional disk space will be used.
(以下省略)
(3) nant のインストール
NAntは、JavaのAntを.NETで利用できるように移植したオープンソースのビルドツールです。
root@sv:/usr/local# apt-get install nant
The following extra packages will be installed:
libgdiplus libgif4 libglib2.0-dev libmono-accessibility1.0-cil libmono-dev
libmono-winforms1.0-cil libnunit2.2.6-cil mono-gmcs
Suggested packages:
libglib2.0-doc libnunit-doc
The following NEW packages will be installed:
libgdiplus libgif4 libglib2.0-dev libmono-accessibility1.0-cil libmono-dev
libmono-winforms1.0-cil libnunit2.2.6-cil mono-gmcs nant
0 upgraded, 9 newly installed, 0 to remove and 1 not upgraded.
Need to get 5997kB of archives.
After this operation, 23.0MB of additional disk space will be used.
Do you want to continue [Y/n]?
(以下省略)
(4) mono-gmcs のインストール
Linux上で、.NETアプリケーションを動かすために、Monoランタイムを利用します。
root@sv:/usr/local# apt-get install mono-gmcs
mono-gmcs is already the newest version.
mono-gmcs set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
※ nantのインストール時に、依存パッケージとして既にインストールされてました。
(5) libmono-microsoft8.0-cil のインストール
こんな名前のファイルを入れるのは、イヤだ~。><
root@sv:/usr/local# apt-get install libmono-microsoft8.0-cil
The following NEW packages will be installed:
libmono-microsoft8.0-cil
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 130kB of archives.
After this operation, 422kB of additional disk space will be used.
(以下省略)
(6) libmono-system-runtime2.0-cil のインストール
root@sv:/usr/local# apt-get install libmono-system-runtime2.0-cil
The following NEW packages will be installed:
libmono-system-runtime2.0-cil
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 69.6kB of archives.
After this operation, 238kB of additional disk space will be used.
(以下省略)
(7) libgdiplus のインストール
root@sv:/usr/local# apt-get install libgdiplus
libgdiplus is already the newest version.
libgdiplus set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
※ これも、nantが依存パッケージとして既にインストール済み。
● OpenSimの構築
(1) /usr/local 配下に、opensimディレクトリを作成し、その配下にOpenSIMを
インストールします。
root@sv:/usr/local# mkdir opensim
root@sv:/usr/local# cd opensim/
(2) subversionで、OpenSIMリポジトリからチェックアウト(ダウンロード)します。
(URL) http://opensimulator.org/svn/opensim/tags/
(今日現在)版数が一番大きい、0.5.6-release を入れてみます。
ディスクに余裕があれば、0.4.5.3-stable(安定版)も入れておけばいいですね。
root@sv:/usr/local/opensim# svn co http://opensimulator.org/svn/opensim/tags/0.5.6-release 0.5.6
root@sv:/usr/local/opensim# ls
./ ../ 0.4.5.3/ 0.5.6/
(3) runprebuildスクリプトを実行して、NAnt用のビルドファイルを作ります。
TarBall版からフリーソフトをコンパイルする時の./configureの代わりでしょうか。
root@sv:/usr/local/opensim# cd 0.5.6/
root@sv:/usr/local/opensim/0.5.6# ls *.sh
add-copyright.sh* runprebuild.sh*
root@sv:/usr/local/opensim/0.5.6# ./runprebuild.sh
Prebuild v2.0.3
Copyright (c) 2004-2008
Matthew Holmes (matthew@wildfiregames.com),
Dan Moorehead (dan05a@gmail.com),
David Hudson (jendave@yahoo.com),
Rob Loach (http://www.robloach.net),
C.J. Adams-Collier (cjac@colliertech.org),
See 'prebuild /usage' for help
(途中省略)
Creating Visual C# 2005 solution and project files
...Creating project: Prebuild
(4) OpenSIMのビルド
ビルドファイルが正常に作成されたら、後はnantを実行するだけです。
root@sv:/usr/local/opensim/0.5.6# nant
NAnt 0.85 (Build 0.85.2478.0; release; 2006/10/14)
Copyright (C) 2001-2006 Gerry Shaw
http://nant.sourceforge.net
Buildfile: file:///usr/local/opensim/0.5.6/OpenSim.build
Target framework: Mono 2.0 Profile
Target(s) specified: build
(途中省略)
BUILD SUCCEEDED
Total time: 69.1 seconds.
(5) binディレクトリ配下に、OpenSIM.exe本体と、iniファイル見本ができてる事を確認します。
root@sv:/usr/local/opensim/0.5.6# cd bin
root@sv:/usr/local/opensim/0.5.6/bin# ls *.exe
OpenSim.32BitLaunch.exe* OpenSim.Grid.InventoryServer.exe* OpenSim.Grid.UserServer.exe*
OpenSimExport.exe* OpenSim.Grid.AssetServer.exe* OpenSim.Grid.MessagingServer.exe*
OpenSim.TestSuite.exe* Prebuild.exe* OpenSim.Grid.GridServer.exe*
OpenSim.Grid.ScriptServer.exe* OpenSim.exe* pCampBot.exe*
root@sv:/usr/local/opensim/0.5.6/bin# ls *ini*
OpenSim.ini.example mssql_connection.ini.example mysql_connection.ini.example
(6) 環境ファイル(OpenSim.ini)の雛形をコピーして、viエディタで修正します。
フィジクスは当然、ODE(Open Dynamics Engine)を有効にします。
root@sv:/usr/local/opensim/0.5.6/bin# cp OpenSim.ini.example OpenSim.ini
root@sv:/usr/local/opensim/0.5.6/bin# vi OpenSim.ini
; Choose one of the physics engines below
;physics = basicphysics ←これを無効にする
;physics = POS
physics = OpenDynamicsEngine ←これを有効にする
;physics = modified_BulletX
● OpenSimの起動と初期設定
(1) binディレクトリ配下で、OpenSIM.exeを起動します。
とうぜん、exeファイルはLinuxでは動きませんので、mono経由で起動させます。
root@sv:/usr/local/opensim/0.5.6/bin# mono OpenSim.exe
OpenSim 0.5, SVN build
Performing compatibility checks... Environment is compatible.
Starting...
12:42:28 - [OPENSIM MAIN]: Running in sandbox mode
(途中省略)
(2) 初回起動時、途中にたずねてくる質問項目に答えます。
テスト機といえども、グローバルIPとDNSで外部公開しているので、
アカウント、パスワードはデフォルトは使わない。
DEFAULT REGION CONFIG: Region Name [OpenSim Test]:
DEFAULT REGION CONFIG: Grid Location (X Axis) [1000]:
DEFAULT REGION CONFIG: Grid Location (Y Axis) [1000]:
DEFAULT REGION CONFIG: Internal IP Address for incoming UDP client connections [0.0.0.0]:
221.XXX.XXX.XXX <--- サーバのグローバルIPアドレスを指定。
DEFAULT REGION CONFIG: Internal IP Port for incoming UDP client connections [9000]:
DEFAULT REGION CONFIG: External Host Name [127.0.0.1]:
XXXXXXXX <--- サーバのホスト名(DNSに登録されている)を指定。
DEFAULT REGION CONFIG: First Name of Master Avatar [Test]:
XXXXXXXX <--- ファーストネーム
DEFAULT REGION CONFIG: Last Name of Master Avatar [User]:
XXXXXXXX <--- ラストネーム
DEFAULT REGION CONFIG: (Sandbox Mode Only)Password for Master Avatar account [test]:
XXXXXXXX <--- パスワード
(途中省略)
12:43:07 - [!]:STARTUP COMPLETE
Region# :
コマンド入力待ちになれば、起動完了
● Oracleモジュールのインストール ******** 2009/3/24 追加 ********
以下の警告が出て、OpenSimが起動できなかった場合は、libmono-oracleモジュールを
インストールしてください。(0.6.3-releaseで発生)
** (OpenSim.exe:6932): WARNING **: The following assembly referenced from
/usr/local/opensim/0.6.3/bin/NHibernate.dll could not be loaded:
Assembly: System.Data.OracleClient (assemblyref_index=4)
Version: 2.0.0.0
Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in the
MONO_PATH environment variable, or in the location of the executing assembly
# apt-get install libmono-oracle2.0-cil
● ファイアウォールの設定(ポート開放)
(1) ポート番号の確認
Mono (OpenSIM) のプロセス番号から、使用しているポート番号を確認します。
(9000番ってわかってるけど、念のため)
root@sv:~# ps ax | grep mono
8257 pts/0 Sl+ 0:03 mono OpenSim.exe
root@sv:~# lsof -p 8257 | grep IP
mono 8257 root 6u IPv4 41525 TCP *:9000 (LISTEN)
mono 8257 root 10u IPv4 41526 UDP サーバ名:9000
Mono (OpenSIM) は、TCP/UDPの9000番を使用している事がわかります。
(2) ポートの開放
このテスト用サーバは、Linuxカーネルが標準装備しているNetfilterで、ファイアウォールを動作させています。
Netfilterの設定コマンド(iptables)で、TCP/UDPの9000番を開放(ACCEPT)します。
/sbin/iptables -A INPUT -i $WANPORT -p tcp -m state --state NEW -s $TRUSTWAN --dport 9000 -j ACCEPT
/sbin/iptables -A INPUT -i $WANPORT -p udp -s $TRUSTWAN --dport 9000 -j ACCEPT
※ $TRUSTWAN は、私の自宅のパソコンのIPアドレス
※ $WANPORTは、サーバのインターネット側のLANカードの事です。
(シェルスクリプトの先頭で、シェル変数として指定してます。)
(3) 設定の確認
root@sv:~# # iptables -L | grep 9000
ACCEPT tcp -- ホスト名/29 anywhere state NEW tcp dpt:9000
ACCEPT udp -- ホスト名/29 anywhere udp dpt:9000
● クライアントから接続~OpenSim終了
(1) 職場のLANからはつながりましたので、自宅に帰って、このテストサーバに接続確認。
クライアントソフトのオプションに、接続先URL・ポートを指定して、接続テスト。
D:\SecondLife\SecondLife.exe -loginuri http://ホスト名:9000/ -loginpage http://ホスト名:9000/?method=login
文字ばかりの記事だと寂しいので、とりあえずSS。 ^^;

でも、SSの風景も寂しい。。。 ><;
(2) OpenSIMの終了
コンソールから、shutdownを実行します。
Region# :shutdown
17:04:46 - [COMMANDFILE]: Running shutdown_commands.txt
17:04:46 - [COMMANDFILE]: Running 'backup'
17:04:46 - [SHUTDOWN]: Closing all threads
17:04:46 - [SHUTDOWN]: Killing listener thread
17:04:46 - [SHUTDOWN]: Killing clients
17:04:46 - [SHUTDOWN]: Closing console and terminating
17:04:46 - [SCENE]: Closing down the single simulator: OpenSim Test
17:04:46 - [Region]: Shutdown at 5/18/2008 5:04:46 PM
17:04:46 - [ScriptEngine.DotNetEngine]: ThreadAbortException while executing function.
17:04:46 - [ScriptEngine.DotNetEngine]: ThreadAbortException while executing function.
** (OpenSim.exe:8257): WARNING **: unknown MONO_PATCH_INFO_INTERNAL_METHOD
**
** ERROR:(mini.c:9326):mono_resolve_patch_target: code should not be reached
Aborted
● 予定は未定
さて、次はグリッドモード前準備で、データベースをSQLiteからMySQL5.0に変更してみよう。
他にも
・自宅の余っているMacOSXにもインストール。
・アカウントの作り方
・土地造成のお勉強
・アドオン(OpenLibrary)を試してみる
・スタンドアロンから、グリッドモードに移行
・パケット、セッションを解析してみる
・データベースの中を探検してみる。
などなどです。
2008年05月17日
ワンちゃんの足(Blenderでウエイトペイント編) その2
Armatureで、ワンちゃんの足を変形するテストの続き。
Blenderでスカルプ作りにとてもお世話になってるModifier(変形機能)ですが、
Armatureボーンを利用してメッシュを変形する機能がModifierにもあります。
● ワンちゃんの足にModifier:Armatureを適用
メッシュ形状(ワンちゃんの足)を選択して、Modifier:Armatureを指定するだけです。

● ポーズモードで、Armatureのボーンを動かしてみる。
ドロドロです~、なんだこりゃ。。。。 ><;

世の中、甘くなかった。。。。
メッシュに対する、ボーンの影響範囲(ウエイト)を手作業でちゃんと指定する必要があるんです。。
● というわけで、ウェイトペイントモードで、ボーンの影響範囲を確認

ウェイトペイントモードで、Futomomoボーンを選択して、影響範囲を色(ウエイト)で確認します。
青色が、まったく影響しない(ウエイト値0)
赤色が、100%影響する(ウエイト値1)
という意味ですが、Futomomoボーンの周辺に、わずかに中間色があるだけです。
これでは、ボーンの移動に、メッシュ形状がほとんどついてきません。
(上のドロドロの画像と見比べると、よくわかります。)
● というわけで、ペイントブラシで、塗り絵の時間
ペイントパネルで、ウエイト値に1(赤色)を指定。
ブラシの大きさ、強さなどを設定して、コツコツと塗っていきます。
この辺りは、一般のお絵かきツールと同じ感覚です。

● ボーンごとに、一通りウエイトを塗ってみました。
実際は、少し塗っては動かして確認、、、を繰り返して作業します。
また、塗り絵をする時は、ボーンの表示をスティック(棒状)にすると、わかりやすいです。

だけど、塗り絵に夢中になっていると、いつの間にか、とんでもない所を気づかずに塗ってしまって
いることがよくあります。
● というわけで、Vertex(頂点)グループでも、ウエイト範囲を確認
ウエイトペイントモードから、エディットモードに移ると、ウェイトの範囲をVertex(頂点)で確認
する事ができます。

Tsuneボーンの影響範囲が、メッシュの頂点上で選択されています。
とんでもないところの頂点が選択されていたら、その頂点をRemoveボタンで、グループから
取り除いていきます。
● ポーズモードで変形テストです。




● いろいろなワンちゃん足のポーズで、スカルプにしてみる。

テスト用に作った平べったいワンちゃんの足で、立体感もテクスチャもありませんがけっこういい感じかも。^^
基本形を丁寧に作っておけば、イロイロなポーズのスカルプを効率よく作れそうです。
たとえば、四足動物だけでなく、サカナやイルカ、樹木の形とかにも使えそう?
● おまけ
最近は、SLより、CGアニメーション作りにちょっとはまってます。
でも、SLで使えそうなネタを見つけたら、どんどん紹介していきます~。

blender v2.46RC3 Blender Foundation
Blenderでスカルプ作りにとてもお世話になってるModifier(変形機能)ですが、
Armatureボーンを利用してメッシュを変形する機能がModifierにもあります。
● ワンちゃんの足にModifier:Armatureを適用
メッシュ形状(ワンちゃんの足)を選択して、Modifier:Armatureを指定するだけです。

● ポーズモードで、Armatureのボーンを動かしてみる。
ドロドロです~、なんだこりゃ。。。。 ><;

世の中、甘くなかった。。。。
メッシュに対する、ボーンの影響範囲(ウエイト)を手作業でちゃんと指定する必要があるんです。。
● というわけで、ウェイトペイントモードで、ボーンの影響範囲を確認

ウェイトペイントモードで、Futomomoボーンを選択して、影響範囲を色(ウエイト)で確認します。
青色が、まったく影響しない(ウエイト値0)
赤色が、100%影響する(ウエイト値1)
という意味ですが、Futomomoボーンの周辺に、わずかに中間色があるだけです。
これでは、ボーンの移動に、メッシュ形状がほとんどついてきません。
(上のドロドロの画像と見比べると、よくわかります。)
● というわけで、ペイントブラシで、塗り絵の時間
ペイントパネルで、ウエイト値に1(赤色)を指定。
ブラシの大きさ、強さなどを設定して、コツコツと塗っていきます。
この辺りは、一般のお絵かきツールと同じ感覚です。

● ボーンごとに、一通りウエイトを塗ってみました。
実際は、少し塗っては動かして確認、、、を繰り返して作業します。
また、塗り絵をする時は、ボーンの表示をスティック(棒状)にすると、わかりやすいです。

だけど、塗り絵に夢中になっていると、いつの間にか、とんでもない所を気づかずに塗ってしまって
いることがよくあります。
● というわけで、Vertex(頂点)グループでも、ウエイト範囲を確認
ウエイトペイントモードから、エディットモードに移ると、ウェイトの範囲をVertex(頂点)で確認
する事ができます。

Tsuneボーンの影響範囲が、メッシュの頂点上で選択されています。
とんでもないところの頂点が選択されていたら、その頂点をRemoveボタンで、グループから
取り除いていきます。
● ポーズモードで変形テストです。




● いろいろなワンちゃん足のポーズで、スカルプにしてみる。

テスト用に作った平べったいワンちゃんの足で、立体感もテクスチャもありませんがけっこういい感じかも。^^
基本形を丁寧に作っておけば、イロイロなポーズのスカルプを効率よく作れそうです。
たとえば、四足動物だけでなく、サカナやイルカ、樹木の形とかにも使えそう?
● おまけ
最近は、SLより、CGアニメーション作りにちょっとはまってます。
でも、SLで使えそうなネタを見つけたら、どんどん紹介していきます~。

blender v2.46RC3 Blender Foundation
2008年05月10日
ワンちゃんの足(BlenderのArmature変形勉強中)
下半身だけですが、ワンちゃんの足です。
(疑問:横向きなのに下半身というのか? ^^;)
最近、Blender2.46RC3で3Dアニメーションにはまっていて、SLは完全にご無沙汰です。
でも、SLのものづくりにも活用できるような事をいろいろ見つけました。
たとえば、Armature変形などは動物の形作りに役立ちそうです。
● まずは、ワンちゃんの足作り。
背景画像を参考にして、配置したキューブから、ワンちゃんの足を作ります。



10分程で作った、変形テスト用ワンちゃんの足。
ふつうは、ここでUV展開、スカルプテッドプリムを作成して、形作りは終わりなんですが、
ワンちゃんの基本形(レストポジション)から簡単に変形させて、いろいろなポーズのワンちゃんを
作りたいと思ってます。
● Armature Deformer (アーマチュアデフォーマ)の作成
Addメニューから、Armature を配置し、骨に合わせて回転させます。
Armatureは、一つ以上のボーン(骨)でできてます。
最初の、親になるボーンに、Futomomo と名付けます。

Futomomoボーンの先端を押し出して、ボーンのチェーンをつくります。
押し出しで作ったボーンは、順番に連結しています。
わかりやすいように、Tsune、Ashi、Tsumasaki と名づけました。

● FK (フォーワードキネマティクス)の確認
連結しているボーンチェーンには、FKが自動的に設定されています。
ポーズモードにして、任意のボーンを回転・移動させると、それ以下につながってる全ての子ボーン
もいっしょに動きます。

FKは、親ボーンから子ボーンに伝わる変形で、投球などの腕の動きを決めるのに便利です。
(肩→上腕→前腕→手→ボールみたいに。)
ですが、足などは、地面に接する先端(子ボーン)から位置を決める方がポーズを作りやすいです。
というわけで、I Kの出番となります。
● I K (インバースキネマティクス)の設定
Ashiボーンの先端に、ボーンを一つ配置して、setLocation と名づけました。
setLocationボーンは配置しただけなので、どのボーンとも連結していません。

Ashiボーンを選択して、I Kコンストレイントを設定します。(constraint:強制・束縛)
ターゲットには、setLocation ボーンを指定。
I Kの影響を受けるボーンの数に3を指定。
(自分(Ashi)を含めて親に向かって3本、点線が付くのでわかります。)


● I K (インバースキネマティクス)の確認
足の先端のsetLocation ボーンを動かすことで、位置の変化が親ボーンに伝わって、
足全体のポーズがつくれます。

● 回転コピーコンストレイントの設定 (つま先の回転)
つま先も、簡単に回転できるようにします。
setLocation ボーンの先端から、ボーンを押し出して、setRotationと名づけました。

Tsumasakiボーンを選択して、回転コピーコンストレイントを設定します。
ターゲットには、setRotation ボーンを指定。


● 回転コピーコンストレイントの確認
ポーズモードで、setRotation ボーンを回転させると、いっしょに、Tsumasakiボーンも回転します。
ターゲットの回転を強制的にコピーさせられるから、回転コピーコンストレイント(強制)、といいます。

● (参考) Lock Rotation (回転範囲の制限)
ボーンの回転範囲を制限する事もできます。
スカルプ作りには必要ないと思いますが、参考まで。

● こんな感じで、ワンちゃんの足ボーンの完成です。
手順を文章にすると大変そうに思えますが、一度覚えると、簡単に設定できてしまいます。

さて次回は、ワンちゃんの足と、Armature ボーンを連携させてみます。
ボーンの形にあわせて、きれいに足が変形できるといいな~。
イロイロなポーズ(座ったり、走ったり、寝たり)のワンちゃんスカルプを簡単につくりたいです。
でも、最後は形よりも、テクスチャが全てなんですけど。。。
以前、サンドボックスで知り合ったクリエータさんが見学させてくれた、ワンちゃんの完成度に
達するのは、はるかに先です。。。><
blender v2.46RC3 Blender Foundation