Posted by at

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
  


Posted by ぱすてる at 12:01Comments(6)ものづくり

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
  


Posted by ぱすてる at 01:04Comments(4)ものづくり

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)を試してみる
 ・スタンドアロンから、グリッドモードに移行
 ・パケット、セッションを解析してみる
 ・データベースの中を探検してみる。

などなどです。
  


Posted by ぱすてる at 19:04Comments(11)OpenSim

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
  


Posted by ぱすてる at 00:07Comments(0)ものづくり

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
  


Posted by ぱすてる at 00:05Comments(9)ものづくり