KW-BoneDFS
version 0.51

for Lightwave3D Layout (Intel)
1999/5/29 (C)1999,K.Watanabe


DOWNLOAD(139KB) (このプラグインはフリーウェアです)
(このページの内容はアーカイブの中に含まれています)


KW-BoneDFSについて

KW-BoneDFS は LightWave3D のレイアウト用のボーンデフォメーションディスプレースメントマッププラグインです。
作者はPGL((C)Copylight,D-Storm,inc,1998-1999)を購入して使用していましたがIKを使おうと思い例のOptionパネルで”f”を押したのですが、御亡くなりになったのと思うほど動作が遅くなり、これではどうしようもないとゆうことで作成しました。
そんなわけでPGLライクな頂点とボーンとの対応づけが可能(対応づけはPGL Editorで行います)でフルタイムIKで使用可能なのもになってます。ただし、あくまでもPGLライクでコンパチではありません(てうゆうか、かなり違います)



動作環境

WindowsNT/95用のLightwave3D5.5以上 LayoutおよびModeler 上で動作します。
作者はWindows95,LightWave3D5.6J上で開発を行っております。


インストール

Downloadした kwbdsf.zip を展開すると kwbdfs.p と kwbdfsfmm.p ができますので、kwbdsf.pはレイアウトでプラグインの追加を行ってください。Generic Plug-inに"KW-BoneDFS FrameMaker"、DisplacementMap Plug-inに"KW-BoneDFS","KW-BDFS Puppet"が登録されます。
kwbdfsfmm.pはモデラーでプラグインの追加を行ってください。オブジェクト−プラグインに"KW-BoneDFS FrameMaker(M)"が登録されます。

使用法

KW-BoneDFSにはNormal ModePuppet Modeがあります。Normal ModeはIK不使用時、Puppet ModeはIK使用時のモードです。Puppet Modeは設定変更の手順が複雑なのでNormal Modeで設定を詰めてからPuppet Modeに移行することをお勧めします。

Normal Mode

KW-BoneDFSを使用する前に次の設定を行ってください。


Recalc Bone Info & Reload PGL File
ボーンの編集を行った後、PGL Editorを使用した後に押してください。変更が反映されます。

Enable
ONで動作を開始、OFFで動作を停止します。

Mode
動作モードを指定します。

Bone Active Mode
ボーンがアクティブな状態でKW-BoneDFSを動作させる場合にONにして下さい。

BoneSelect
設定したいボーンを選択します。選択を変更すると1つ前に選択していたのボーン設定はCanselしても設定されます。

Self Fall Off Pow
ボーンの影響力は Parent Type もしくは Child Type Independent以外の場合
1/(ボーンとポイントの距離) ^ P
で計算されます。選択したボーンがポイントに与える影響力の計算式中の P を指定します。

Parent Type
親ボーンが与える影響の種類を指定します。
Independent 親ボーンから影響を受けません。
Dependent 親ボーンから影響を受けます。普通の変形がされます。
Dependent & Joint Expand 親ボーンから影響を受けます。ひじ用です。曲げによるつぶれを緩和し、曲げたときにひじが尖ります。
Twist 親ボーンから影響を受けます。ねじれによって細くならない変形を行います。

Parent Fall Off Pow
選択したボーンの親ボーンがポイントに与える影響力の計算式中の P を指定します。

Child Type
子ボーンが与える影響の種類を指定します。子ボーンが複数ある場合は距離が一番近いボーンが子ボーンとなります。Parent Type参照。

Child Fall Off Pow
選択したボーンの子ボーンがポイントに与える影響力の計算式中の P を指定します。

PuppetMode

フルタイムIKを使用する場合はPuppet Modeを使用します。
Puppet ModeではWorkObject(下記参照)でフレーム(下記参照)をボーンにより動かし、そのフレームの動きをPuppetObject(下記参照)に適応します。
Puppet Modeの設定を始める前にNormal Modeの設定を終わらせておきます。

1、Frame Objectの作成

Generic Plug-in から KW-BoneDFS FrameMaker を起動します。

KW-BoneDFS
を適応しているオブジェクトを選択し、OKを押します。
次にモデラーを起動してモデラーのオブジェクト−プラグインからKW-BoenDFS FrameMaker(M)を起動します。


Frame size
にはオブジェクトによって適正な値をいれる必要があります。一番接近しているボーンの距離の半分より少し少ない値を指定してください。人間サイズではたいていデフォルトでOKだと思います。


人のモデルならこんな感じのFrameObjectが作成されます。
このオブジェクトを保存します。


2、Work Object の設定

レイアウトに戻って、KW-BoneDFSを設定してあるオブジェクトで、KW-BownDFSEnableのチェックをはずして動作を停止します。
そのオブジェクトでReplaceObjectで(1)で作成したFrameObjectに置き換えます。これをWorkObjectと呼びます
KW-BoneDFS
Puppet Mode を選択し Enable をチェックします。その外のディスプレースメントマッププラグインを使用している場合はそれらを削除します。
ボーンをアクティブにし、Limited Rangeを設定します。Limited RangeはMIn,Maxとも(1)で作成したframe sizeよりも少し大きい値にします。(KW-BoneSetterにて一括設定できます)


こんな感じになると思います。ここで重要なのは各ボーンの根元の三角ポリゴンがそのボーンにのみ影響されなければならないとゆうことです。ボーンの根元の1ポイントだけは親の影響下にあってもかまいませんが、それ以外は3点とも他のボーンの影響下にあってはいけません。

3、Pupet Object の設定

(2)で置き換えられた本来のオブジェクトを新たにロードします。これをPuppetObjectと呼びます。
PuppetObjectWorkObjectよりも順番が後ろになっている必要があります。
PuppetObjectのDisplacement Map Plug-inにKW-BoneDFS Puppetを選択します。Optionを開くと以下のようなダイアログが表示されます。

Select Work Object に(2)で設定したWorkObjectを選んでEnableにチェックを入れます。
その外のディスプレースメントマッププラグインを使用する場合はこちらに適応してください。

これでWorkObjectを動かすとPuppetObjectが動きについていくはずです。
わからいもしくはうまく行かない場合はメール下さい(^^;
4、PGLファイル、ボーンの編集
PuppetModeでのPGLファイルの編集はそのままの状態ではできません。Work Object NormalMode
の状態に戻してからPGL Editorを起動する必要があります。ですので、Normal Modeのシーンファイルは別に保存しておき、PGLファイルを編集したい場合はそのシーンファイルをロードし、PGL Editorで編集、おわったら、元のシーンファイルをロードします。
ボーンを編集した場合はFrame Object を再度作成、リプレイスする必要があります。

その他

モーフズキモはKW-BoneDFSより前、MetaMationは後に適応します。

問題点

親、子以外にも影響を受けたいボーンがある場合がありますができません。

これは今後なんとかしたいと思います。

Puppet Modeではボーンが重なっているような場合にはうまく動きません。

これはどうしようもないです。重ならないようにボーンを配置してください。


更新履歴

1995/5/29 ver.0.51 ボーンの設定を変更しても、"Recalc Bone Info & Reload PGL File"を押さない設定が反映されない不具合を修正。"Dependent & Joint Expand"を指定した場合の変形の不正を修正
1995/5/18 ver.0.50 公開




注意事項

このプラグインはフリーウェアです。
十分な検証を行っておりませんのでバグがあると思われます。
このソフトを使った事で発生した問題については、当方では一切保証いたしません。あらかじめご了承お願いします。




ご意見、ご要望、バグ情報歓迎します。waken@po.mmm.ne.jpまでお願いします。