max面部骨骼镜像脚本
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面部骨骼镜像脚本相关推荐
- 删除docker私服镜像脚本
1.参考:https://www.it1352.com/588577.html 注意: 2.参考:https://blog.csdn.net/duanbiren123/article/details/ ...
- docker 启动petalinux镜像脚本
此脚本可以将在docker中生成的工程保存在宿主机上,可以供下次在petalinux编译使用,docker命令中添加了权限的管理 #!/bin/bash #Name:petalinux #Auther ...
- 3ds Max 2014的preRender脚本bug
在自动化渲染的时候,有时候需要在渲染之前去清空渲染元素,特别是改变这些元素的输出路径,如以下所示: renderEleMgr = maxOps.GetCurRenderElementMgr() for ...
- 3D MAX 人物骨骼建设
3DMax方面所涉及的专业知识: (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设: ...
- brew 常用命令与安装国内镜像脚本
国内安装脚本 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)&qu ...
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- 手把手教你编写脚本批量实现k8s镜像部署
背景 日常工作过程中,避免不了经常遇到很多需要手工进行的重复劳动,如果我们可以凭借自己勤劳的双手和聪明的智慧编写一些小工具或者脚本,这样我们就可以节省大量的时间,用来多看看新闻.刷刷头条,不香吗? 系 ...
- 3ds Max骨骼动画
3ds Max骨骼动画 1.动画种类 常见的动画主要分两种:关键帧动画(顶点动画)或骨骼动画.关键帧动画就是选定些时间点,改变模型各个顶点的位置信息等,中间通过插值运算得到平滑的动画效果.而骨骼动画是 ...
- 深入了解 Animation Scripting 动画脚本
动画脚本 Animation Scripting Unity动画系统允许你创建一个漂亮的动画蒙皮角色,动画系统支持动画融合,混合,添加动画,步调周期时间同步,动画层,控制动画回放的所有方面(时间.速度 ...
最新文章
- 有哪些好的科研和学习习惯?
- C++_代码重用3-私有继承
- 桌面打开图片时很慢,显示正在生成预览好几秒的解决办法
- 生命游戏 c语言,c++生命游戏源码
- oracle sql语句
- Vaadin提示:以声明方式构建UI
- linux的静态编译elf无法调试,[翻译]自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB...
- RabbitMq(十六)单机多实例集群搭建步骤介绍
- ndk c调用java_使用NDK将Android转换为C,然后在C中调用Java函数
- HDU2152 Fruit【母函数】
- linux系统安装yarn,centos安装yarn
- xenu死链接工具使用
- 鱼眼镜头的成像原理到畸变矫正(完整版)
- JavaScript屏蔽Backspace键
- Flask SQLAlchemy 操作数据库已有数据表
- python为什么叫大蟒蛇_Python(大蟒蛇)与云计算
- Scrapy+MySQL爬取去哪儿网
- nRF52832-Bluefruit52学习之MicroPython开发(1)-- 简介
- 海思IPC平台快速拔插SD卡会出现SD卡不识别解决方法
- 2019全国数学建模大赛c题出租车机场数据
热门文章
- input输入框使用正则限制为数字、英文及中文,微软自带输入法输入问题
- 使用属性动画实现星光四射的动画效果
- hp 6531s安装xp蓝屏的解决
- html 图片取消纵横比,html – CSS:使Canvas尽可能大,同时保持纵横比
- 软件测试的艺术第六章总结
- 2020 年 初中级Java 面试题目大全
- android 批量压缩图片大小,Android异步批量压缩图片
- 【问题解决】npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! newbee@0.1.0 serve: `vue-cli-service serv
- Matlab:神经网络实现手写数字识别
- spring注解之@Bean 的用法总结