Created
December 12, 2014 10:35
-
-
Save Hoikohroh/981f6b2dee82a3b8e225 to your computer and use it in GitHub Desktop.
Maxscript:Create_ConstraintBone
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
更新履歴 | |
v20140313 | |
選択フィルタ未選択時のエラー修正 | |
v20140130_2 | |
選択フィルタのエラーを修正 | |
ボーンサイズ指定可能 | |
アップノード初期設定をペアレントに | |
アップノード基本軸をYに修正 | |
v20140130 | |
英語表記に変更 | |
選択フィルタ実装 | |
(選択フィルタONでヘルパー以外選択不可能に) | |
v20131110 | |
ボーンのサイズを1に指定 | |
ボーン作成時、ストレッチの暴走を修正 (座標を.transform.posで取得) | |
v20131106 | |
ダイアログ化 | |
アップノード選択オプション (ワールド/親)追加 | |
(作成済みボーンのアップノード修正は外部スクリプトで) | |
v20131012 | |
初版 | |
*/ | |
try destroyDialog Roll_CreateBone catch() | |
Rollout Roll_CreateBone "" | |
( | |
--Filter | |
fn Hpr_filt obj = superclassof obj == helper | |
checkbutton btn_Create "Create!!" width:90 height:35 offset:[0,3] | |
checkbox chk_Filter "Use Filter" align:#center checked:true | |
Group""( | |
radiobuttons rdo_Upnode "Upnode" labels:#("World", "Parent") default:2 | |
spinner spn_size "Size" range:[0.01,50,1] width:70 | |
) | |
on btn_Create changed true do( | |
max select none | |
if chk_Filter.state then ( | |
Start = pickObject filter:Hpr_filt) | |
else ( | |
Start = pickObject()) | |
Repeat = true | |
while Repeat do | |
( | |
try | |
( | |
if chk_Filter.state then ( | |
End = pickObject rubberBand:Start.transform.pos filter:Hpr_filt) | |
else ( | |
End = pickObject rubberBand:Start.transform.pos ) | |
TempBone = BoneSys.createBone Start.transform.pos End.transform.pos [0,0,1] | |
TempBone.position.controller = Position_Constraint() | |
TempBone.position.controller.AppendTarget Start 50 | |
TempBone.rotation.controller = LookAt_Constraint() | |
TempBone.rotation.controller.appendTarget End 50 | |
TempBone.rotation.controller.lookat_vector_length = 0 | |
TempBone.rotation.controller.StoUP_axis = 1 | |
TempBone.width = spn_size.value | |
TempBone.height = spn_size.value | |
if rdo_Upnode.state == 2 then | |
( | |
TempBone.rotation.controller.pickUpNode = Start | |
TempBone.rotation.controller.upnode_world = false | |
TempBone.boneFreezeLength = false | |
) | |
if ParentBone != undefined then (TempBone.parent = ParentBone) | |
ParentBone = TempBone | |
) | |
catch | |
( | |
if ParentBone != undefined then | |
( | |
EndBone = BoneSys.createBone Start.transform.pos Start.transform.pos [0,0,1] | |
EndBone.position.controller = Position_Constraint() | |
EndBone.position.controller.AppendTarget Start 50 | |
EndBone.parent = ParentBone | |
in coordsys parent EndBone.rotation = (quat 0 0 0 0) | |
EndBone.width = spn_size.value | |
EndBone.height = spn_size.value | |
EndBone.length = spn_size.value | |
) | |
Repeat = false | |
) | |
Start = End | |
) | |
btn_Create.checked = false | |
) | |
) | |
createDialog Roll_CreateBone 150 150 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment