max面部骨骼镜像脚本

1.问题描述

绑定过程中需要给不同模型搭建面部骨骼,左右两边不能同时操作,所以就想写个脚本实现

2.遇到问题

1.面部骨骼必须要有一定的规则区分左右,比如包含"Face_L_"或者 "Face_R_"等字符串,这是制作脚本的前提。

2.以execute("$'" + "Face_L_" + "*'")where classof i ==BoneGeometry列出场景包含指定字符的Bone骨骼,这种方式获取的骨骼是没有层级关系的。也就是有可能出现先对好子骨骼位置,再对父骨骼位置然后子骨骼位置错乱的情况。因而要对获取的骨骼数组进行父子层级排序。

3.按照指定骨骼层级的方式查找骨骼execute("$" +"'Bip001 Head'.../"+ "Face_L_" + "*'"),返回的数组会进行一个层级排序,可以解决问题。

3.插件截图

4.代码如下

--根据物体类型和前缀删选物体
fn getObjectByType prefix_name:  object_type: =(--execute("$'" + prefix_name + "*'") 类似于$Face_L*Face_bone_list=execute("$" +"'Bip001 Head'.../"+ prefix_name + "*'")if  Face_bone_list.count!=0 then(object_array=#()for i in Face_bone_list  where  classof i ==object_type  do(append object_array i)--按命名进行排序--object_array=for i in sort(for i in object_array collect i.name) collect getnodebyname ireturn object_array)else(return 0))
--替换字符串
fn replaceString str1 str2 str3=(while ((i=findstring str1 str2) != undefined) do(str1 = replace str1 i str2.count str3)return str1)--窗口
try destroyDialog ::MirrorFaceBone catch() --关闭已有窗口
rollout MirrorFaceBone "MirrorFaceBone"
(radiobuttons MirrorFaceBone_rbt "Mirror Direction:" \labels:#("L---R", "R---L") columns:2 pos: [40,30] align:#left\offsets:#([100,-16], [40,-16])button mirrorButton "Mirror Face Bone" width:200 height:30 pos: [60,60]on mirrorButton pressed do (Face_L_Bone=getObjectByType prefix_name:"Face_L_"  object_type:BoneGeometryFace_R_Bone=getObjectByType prefix_name:"Face_R_"  object_type:BoneGeometryif Face_L_Bone!=0 and Face_R_Bone!=0 then(if     Face_L_Bone.count==Face_R_Bone.count then(if MirrorFaceBone_rbt.state == 1 do(for i = 1 to Face_R_Bone.count do(Face_R_Bone_name=replaceString Face_L_Bone[i].name "Face_L_" "Face_R_"Face_R_Bone=getnodebyname Face_R_Bone_nameFace_R_Bone.pos.x = -Face_L_Bone[i].pos.xFace_R_Bone.pos.y = Face_L_Bone[i].pos.yFace_R_Bone.pos.z = Face_L_Bone[i].pos.z))if MirrorFaceBone_rbt.state == 2 do(for i = 1 to Face_R_Bone.count do(Face_L_Bone_name=replaceString Face_R_Bone[i].name "Face_R_" "Face_L_"Face_L_Bone=getnodebyname Face_L_Bone_nameFace_L_Bone.pos.x = -Face_R_Bone[i].pos.xFace_L_Bone.pos.y = Face_R_Bone[i].pos.yFace_L_Bone.pos.z = Face_R_Bone[i].pos.z)))else(messageBox ("捏脸骨骼左右两边骨骼数量不一致")))else(messageBox ("Bip001 Head层级下没有子骨骼,请先将捏脸骨骼p给Bip001 Head")))
)
createdialog MirrorFaceBone width: 320 height: 115

max面部骨骼镜像脚本相关推荐

  1. 删除docker私服镜像脚本

    1.参考:https://www.it1352.com/588577.html 注意: 2.参考:https://blog.csdn.net/duanbiren123/article/details/ ...

  2. docker 启动petalinux镜像脚本

    此脚本可以将在docker中生成的工程保存在宿主机上,可以供下次在petalinux编译使用,docker命令中添加了权限的管理 #!/bin/bash #Name:petalinux #Auther ...

  3. 3ds Max 2014的preRender脚本bug

    在自动化渲染的时候,有时候需要在渲染之前去清空渲染元素,特别是改变这些元素的输出路径,如以下所示: renderEleMgr = maxOps.GetCurRenderElementMgr() for ...

  4. 3D MAX 人物骨骼建设

      3DMax方面所涉及的专业知识:                       (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设: ...

  5. brew 常用命令与安装国内镜像脚本

    国内安装脚本 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)&qu ...

  6. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  7. 手把手教你编写脚本批量实现k8s镜像部署

    背景 日常工作过程中,避免不了经常遇到很多需要手工进行的重复劳动,如果我们可以凭借自己勤劳的双手和聪明的智慧编写一些小工具或者脚本,这样我们就可以节省大量的时间,用来多看看新闻.刷刷头条,不香吗? 系 ...

  8. 3ds Max骨骼动画

    3ds Max骨骼动画 1.动画种类 常见的动画主要分两种:关键帧动画(顶点动画)或骨骼动画.关键帧动画就是选定些时间点,改变模型各个顶点的位置信息等,中间通过插值运算得到平滑的动画效果.而骨骼动画是 ...

  9. 深入了解 Animation Scripting 动画脚本

    动画脚本 Animation Scripting Unity动画系统允许你创建一个漂亮的动画蒙皮角色,动画系统支持动画融合,混合,添加动画,步调周期时间同步,动画层,控制动画回放的所有方面(时间.速度 ...

最新文章

  1. 快速排序java代码_8 种排序算法与 Java 代码实现!
  2. FPGA逻辑设计回顾(8)单比特信号的CDC处理方式之Toggle同步器
  3. js中的全局变量和局部变量
  4. CODEVS——T 1049 棋盘染色
  5. 朵朵糖故事机器人怎么更新_“故事贩卖机”专栏创始人温酒的新作,奇幻世界的暖心物语很治愈...
  6. [学习备忘录]编译gdb及gdbserver
  7. erlang一次线上问题解决
  8. 执行NET 命令无法使用超过20个字符的组名或用户名
  9. 初识SpringSecurity
  10. python爬虫步骤-Python爬虫详解,每一个步骤都给你细腻的讲解(附源码)
  11. VS Code 如何运行.html文件(VS Code 如何安装插件)(open with live serve和open in default browser)
  12. 西门子pcs7 V9.1用Sim_EKB_Install安装长密匙失败
  13. 毕向东java基础,B站直达,目录,b站浏览目录太难受,在这做一个
  14. 组态王五层电梯c语言编程,PLC编程实例分享,多图详解五层楼电梯控制系统~...
  15. es搜索同义词近义词技术方案
  16. CEPH DAYS 2016 APAC ROADSHOW Ceph社区分享资料
  17. 解决各个浏览器文件下载中文乱码问题
  18. gitbook结合github写书及发布到gitbook上
  19. mysql 联查字段名重复_查询数据库多个字段名时的结果有重复的解决办法_MySQL
  20. 最详细的NAT(网络地址转换)的讲解

热门文章

  1. linux jad 反编译,使用Jad或JadClipse进行反编译
  2. F-Factor Difference
  3. 算法岗面经总结(同程艺龙)
  4. 神即道,道法自然,如来--《天道》《遥远的救世主》
  5. 计算广告(四):合约广告
  6. 联想台式显示器亮度调整
  7. arcgis for JavaScript 使用view.goTo 实现轨迹巡查
  8. 数据结构课程设计解题报告 前言
  9. python-用PyQt5实现一个简单的向喜欢女生告白软件(代码实现+py文件打包成exe文件)
  10. 计算机专业英语教程比较实用,计算机专业英语教程(经典版).ppt