有些時候需要用到這樣的功能,把來自其他animation application的morpher set轉成另一組 controllers / morphers。這時候就需要弄個 mapping,然後就少不了參數設定... so..
rollout allControls "Mapping FaceShift FacialController Parameter Setting"
(
global arrController = #()
global arrPosition = #()
global arrMorpher = #()
function selectHierarchy =
(
for p in selection do
(
if p.children != undefined do
(
selectmore p.children
)
)
)
fn fnLoadControllers panel_name =
(
execute("select $" + panel_name + "")
selectHierarchy()
for c in selection do
(
if classof c == SplineShape then
(
index =findString (c as string) "cir"
if index != undefined then
(
if index > 0 then
(
append arrController (substring (c as string) index ((findString (c as string) "@")-index-1))
strtmp = substring (c as string) ((findString (c as string) "@")+2) -1
execute("append arrPosition (" + strtmp + " as Point3)")
)
)
)
)
)
fn fntest =
(
streamOut = openFile "c:\\Mapping FaceShift FacialController Parameter Setting.txt" mode:"w"
format "--Grid Scale = 25.4\n" to:streamOut
for i = 1 to 46 do
(
strtmp = ""
slidertime = i
strtmp = strtmp + (i as string) + ":"
bdata = false
for j = 1 to arrController.count do
(
execute("obj = $" + arrController[j])
if (in coordsys parent obj.position) != ([0,0,0] as Point3) then
(
if bdata == false then
strtmp = strtmp + arrController[j]
else
strtmp = strtmp + "|" + arrController[j]
strtmp = strtmp + ((in coordsys parent obj.position) as string)
bdata = true
)
)
if i == 46 then
format "%" strtmp to:streamOut
else
format "%\n" strtmp to:streamOut
)
print (streamOut as string)
flush streamOut
close streamOut
Messagebox "save to c:\\Mapping FaceShift FacialController Parameter Setting.txt"
)
edittext tbControllerPanel "Controller Set:" text:"facial_UI_All" width:150 text:"" across:2
button bReload "Reload Controllers" width:100 align:#left on bReload pressed do fnLoadControllers(tbControllerPanel.text)
button btest "Dump Parameters" width:200 align:#left on btest pressed do fntest()
)
createDialog allControls 400 200