'SnameSpine用のトレースカーブの再分割スクリプト '"*_body_crv"を選択して実行 dim num if not(InputValue(num) = true) then num = num - 1 DeactivateAbove selection(0) & ".crvlist.crvdeform", True SIAddPointOnCurveAtStart selection(0), 0, 0, 0, False, 0 SIAddPointOnCurveAtStart selection(0), 0, 0, 0, False, 0 SIAddPointOnCurveAtStart selection(0), 0, 0, 0, False, 0 ApplyTopoOp "NurbsCrvDeletePoint", selection(0) & ".pnt[4-LAST]", siUnspecified, siPersistentOperation for i = 1 to num SIAddPointOnCurveAtEnd selection(0), 0, (i*(100/num))/100, 0, False, 0 next ApplyTopoOp "NurbsCrvDeletePoint", selection(0) & ".pnt[1,2,3]", siUnspecified, siPersistentOperation op = ApplyTopoOp( "CrvReparam", selection(0) , 3, siPersistentOperation) SetValue op & ".reparam", 0 DeactivateAbove selection(0) & ".crvlist.crvdeform" FreezeObj op end if function InputValue(inNum) dim InputCPS AddProp "Custom_parameter_list", ActiveProject.ActiveScene.root , , "InputValue",InputCPS SIAddCustomParameter inputCPS, "DivideNum", siInt4,20,4,10000, , 4,4,100,"カーブの分割数" out = InspectObj( inputCPS, , "", 4,false)'数値入力 inNum= Getvalue(InputCPS & ".DivideNum") DeleteObj InputCPS InputValue = out end function