bons = #()
boneName = ""
boundingBox = undefined
bipLength = undefined
bipwidth = undefined
bipheight = undefined
objs = selection as array
cNameValue = "Bone"
fn changeName strs oldStr newStr =
(
findFlag = findstring strs oldStr
if (findFlag != undefined) do
(
changeStr = replace strs findFlag oldStr.count newStr
)
changeStr
)
if objs.count == 0 then
(
messagebox "바이패드 노드를 하나 이상 선택하세요."
)
else
(
rollout bipMirrbone "흉내 내기본 생성"
(
edittext newNameText "Bip 대신 넣을 이름" text:"Bone"
Button start_btn "실행"
on newNameText changed txt do
(
cNameValue = txt
)
on start_btn pressed do
(
for i = 1 to objs.count do
(
if((classof objs[i] == Biped_Object) and (objs[i].name != "Bip01 Footsteps")) do append bips objs[i]
)
clearSelection()
for i = 1 to bips.count do
(
boneName = bips[i].name
boneName = changeName boneName "Bip" cNameValue
boundingBox = nodeGetBoundingBox bips[i]bips[i].transform
bipLength = boundingBox[2].x
bipheight = boundingBox[2].y
bipwidth = boundingBox[2].z
madeBone = Bonesys.createBone[0,0,0][1,0,0][0,0,1]
madeBone.name = boneName
madeBone.width = bipWidth
madeBone.height = bipheight
madeBone.length = bipLength
madeBone.boxmode = on
madeBone.rotation = (inverse(biped.getTransform bips[i] #rotation))
madeBone.position = (bips[i].transform.pos)
madeBone.position.controller = Position_Constraint()
madeBone.position.controller.appendTarget bips[i] 50.0
madeBone.rotation.controller= Orientation_Constraint()
madeBone.rotation.controller.appendTarget bips[i] 50.0
append bons madeBone
)
for i = 1 to bips.count do
(
if(bips[i].parent != undefined) do
(
parentBip = bips[i].parent
boneName = parentBip.name
boneName = changeName boneName "Bip" cNameValue
bons[i].parent = execute("$'" + boneName + "'")
)
)
select bons
)
)
createdialog bipMirrbone
)
GUI를 사용하여 생성되는 본의 이름을 정할 수 있게 했고,
바이패드를 선택하지 않으면 실행이 되지 않고 메시지 창이 뜨도록 했다.
추가 할것은
2. 목이 머리와 가슴의 중간값을 유지하도록 하는것.(이건 고민좀 할것 같다.)
3. 어께 손목 허벅지등의 트위스트 본 추가 선택.
댓글 없음:
댓글 쓰기