模型变形第一版(模型变形)
---1.前期创建面片完成,
---2.定点射线完成,但是动态的更新,现在还是没有做。
---3.现在就是对于morpher 的操作。还有就是skinwrap 的操作。
--第一就是加入修改器。
---补充 要想,变形物体后顺利的删除之情的面,两个面。他们的变量必须要做出全局的,这个真的是很重要。
-- 之上的那一个步骤不用劝局, 就是在投射前,复制一个就好。为了下一步的操作
fn g_filte_plane o = superclassof o == Geometryclass ---要过滤的物体。
global gt_morpher_one_pick_plane =undefined , gt_morpher_two_pick_plane =undefined
fn gt_pick_morpher_count =
(
--*****************************在用函数之前这里面一定是poly
----在这里面说一下。
----1.在单击事件处理之前,保证选择的是一个物体。
----2.在拾取的过程中加入报错机制,如在变形拾取时,出现面数不同意的现象,提出报错。*****
---3.成功加入后激活下拉 划块。滑块关联 变形的第一个通道。
---4.
gt_morpher_one_pick_plane = $ ----着个就是全局指定,。
gt_morpher_two_pick_plane = pickObject message:"Pick Target Surface:" filter:g_filte_plane rubberBand:selection.center rubberBandColor:green --- 这种拾取的方法更好
if isValidNode gt_morpher_two_pick_plane then ---这个好用, 是如果节点没有被删除。
(
undo "scripts" on
(
morp = Morpher () ; morp.Spinner_Minimum=0 ; morp.Spinner_Maximum=100 ; morp.Use_Limits=1 ; morp.name="变形拾取"
addModifier gt_morpher_one_pick_plane morp
----这里必须保证顶点数一致 所以要进行一些处理
----转下poly
try ( convertTo gt_morpher_two_pick_plane Editable_Poly )catch (
messagebox "操作不当,没按流程操作。\n返回。" title:"盖天编写"
return false
)
try (
if polyop.getNumVerts gt_morpher_one_pick_plane == polyop.getNumVerts gt_morpher_two_pick_plane then
(
WM3_MC_BuildFromNode gt_morpher_one_pick_plane.modifiers[1] 1 gt_morpher_two_pick_plane ----做好目标。
)else
(
messagebox "拾取目标不对,面数不对或是类型不对,从新操作。" title:"盖天编写"
return false
)----end else
)catch ( messagebox "拾取目标不对,面数不对或是类型不对,从新操作。" title:"盖天编写")
------ 然后下面就是画面激活要做的事情。
---2011.5.6 如果判断第一个确认已经拾取,则就激活界面
---语法是。 mf_morpher_mod = $.modifiers[#morpher] WM3_MC_HasData mf_morpher_mod i
)---end undo
)---end if
)---end fn