LockEnvelopePointWeights

LockEnvelopePointWeights

導入

v5.0

詳細

指定ポイントのエンベロープの修正を禁止します。

エンベロープ デフォーメーションのエフェクトはウェイト マッピングにより制御されます。 これらのエンベロープ ウェイトは、ペイントやスムージングなどのさまざまな編集ツールで修正できます。 このコマンドは、直接的な操作または(正規化などの)間接的な操作によりデフォーマのウェイトが修正されないようにします。

スクリプト構文

oReturn = LockEnvelopePointWeights( PropObj, [SubComp], [Locked] );

戻り値

ロックを適用する新しいオペレータを含むXSICollection を戻します。

パラメータ

パラメータ タイプ 説明
PropObj 文字列 ウェイトをロックするエンベロープ ウェイト プロパティ。
SubComp 文字列 ロックするポイントまたはクラスタのリスト

デフォルト値: 現在選択されている値

Locked Boolean これらのデフォーマはロックしてください(それ以外の場合はロック解除されます)。

デフォルト値: True

VBScript の例

' This simple example illustrates how locking envelope point weights

' can be used to protect your weighting work on parts of the

' an object

' We start with a simple cylinder enveloped to a 6 bone chain

NewScene

CreatePrim "Cylinder", "MeshSurface"

SetValue "cylinder.cylinder.height", 10

SetValue "cylinder.polymsh.geom.subdivv", 20

SetValue "cylinder.polymsh.geom.subdivu", 16

Create2DSkeleton 1.97818728045807E-02, 5.04656031338284, 0, 0.81105678498785, 3.66123003127775, 0, 0, 0, 0, 4

AppendBone "eff", 0.890184276206176, 1.91967196234563, 0

AppendBone "eff", 0.969311767424504, 0.257275623819517, 0

AppendBone "eff", 1.00887551303367, -1.76134850153362, 0

AppendBone "eff", 0.969311767424504, -3.18625964884171, 0

AppendBone "eff", 1.97818728045807E-02, -4.96739858297683, 0

SelectObj "cylinder", , True

ApplyFlexEnv "cylinder;bone,bone1,bone2,bone3,bone4,bone5,eff", False, 0

' We reassign some points to the first bone

LocalAssignFlexEnv "cylinder.pnt[1,21-24,44-47,67-70,90-93,113-116,136-139,159-162,182-185,205-208,228-231,251-254,274-277,297-300,320-323,343-346,366-LAST]", "cylinder;bone"

' We reassign some points to the second bone

LocalAssignFlexEnv "cylinder.pnt[18,19,41,42,64,65,87,88,110,111,133,134,156,157,179,180,202,203,225,226,248,249,271,272,294,295,317,318,340,341,363,364]", "cylinder;bone1"

' We reassign some intermediate point to both bones

LocalAssignFlexEnv "cylinder.pnt[20,43,66,89,112,135,158,181,204,227,250,273,296,319,342,365]", "cylinder;bone,bone1"

' Now let's assume that the weighting for those bones is what

' we want. To protect it from unexpectedly modifying it later on

' we lock the weights.

LockEnvelopePointWeights , "cylinder.pnt[1,18-24,41-47,64-70,87-93,110-116,133-139,156-162,179-185,202-208,225-231,248-254,271-277,294-300,317-323,340-346,363-LAST]", True

' We continue the assignment of some points to the third bone

LocalAssignFlexEnv "cylinder.pnt[15,16,38,39,61,62,84,85,107,108,130,131,153,154,176,177,199,200,222,223,245,246,268,269,291,292,314,315,337,338,360,361]", "cylinder;bone2"

' Similarily we reassign some points to the second and third bone

LocalAssignFlexEnv "cylinder.pnt[17,40,63,86,109,132,155,178,201,224,247,270,293,316,339,362]", "cylinder;bone1,bone2"

' We smooth the weights for some points selected

SISmoothEnvWght , "cylinder.pnt[16-18,39-41,62-64,85-87,108-110,131-133,154-156,177-179,200-202,223-225,246-248,269-271,292-294,315-317,338-340,361-363]"

SetValue "cylinder.polymsh.cls.EnvelopWeightCls.Envelope_Weights.smoothenvelopeweight.neighborhooddepth", 3

SetValue "cylinder.polymsh.cls.EnvelopWeightCls.Envelope_Weights.smoothenvelopeweight.profilescaling", 14.681

' Inadvertently, we selected some points that which weights we didn't want

' to modify. However, since we had locked their weights remain

' intact.

' Now I can modify some locked weights by unlocking them first.

LockEnvelopePointWeights , "cylinder.pnt[1,22-24,45-47,68-70,91-93,114-116,137-139,160-162,183-185,206-208,229-231,252-254,275-277,298-300,321-323,344-346,367-LAST]", False

SIModifyFlexEnvWght "cylinder.polymsh.cls.EnvelopWeightCls.Envelope_Weights", "bone1", "cylinder.pnt[1,22-24,45-47,68-70,91-93,114-116,137-139,160-162,183-185,206-208,229-231,252-254,275-277,298-300,321-323,344-346,367-LAST]", 1, 10

' I can also unlock all weights in order to weight freely.

ClearEnvelopeWeightLocks "cylinder"

関連項目

SIApplyFlexEnv LockEnvelopeDeformerWeights LockEnvelopeWeights ClearEnvelopeWeightLocks SIModifyFlexEnvWght Envelope