GAMESH

游戏美术动画unity资源搬运工!

剧情党,完美控!
桐崎千棘
当前位置:首页 > 学习 > 正文内容

maxscript零基础教学写一个批量改名并导出插件

admin2年前 (2022-03-16)学习37790

这篇文章我会用一个案例去讲解如何写一个maxscript脚本,这里我用批量修改max文件的骨骼名称。

目标:修改一批max文件的bone00骨骼名称为bone99,然后导出fbx

操作方法:

1.打开max在菜单栏找到maxscript,然后新建脚本(newscript)

maxscript零基础教学写一个批量改名并导出插件 插件 3dmax maxscript 第1张

2.写一个ui,需要一个开始按钮 和文本框!写一个名为testddl_rollout的界面,createDialog 这个界面,界面尺寸200*200

然后添加一个按钮button,按钮的名称是start,文本框是edittext 名称daoru

rollout testddl_rollout "批量改名导出"
(
button start "开始"  pos:[80,20]
	edittext daoru "导入目录" fieldWidth:180 height:20 labelOnTop:true readOnly:false
)
createDialog testddl_rollout 200 200

maxscript零基础教学写一个批量改名并导出插件 插件 3dmax maxscript 第2张

3.需要打开文件夹,并获取文件下所有的max文件

首先创建一个数组来保存获取到的文件

global my_files   --文件数组

接下来写一个遍历文件夹的模块,方便随时调用

fn getFilesRecursive root pattern =
(
	dir_array = GetDirectories (root+"/*")  --*wild-card
	for d in dir_array do
		join dir_array (GetDirectories (d+"/*"))
	my_files = #()
	if dir_array.count == 0 do append dir_array (root + "\\")
	for f in dir_array do
		join my_files (getFiles (f + pattern))
)

root 是文本框传入的一个路径地址

4.点击按钮打印获取的文件,看看是否获取正确(注意:文件内不要有其它子文件夹)

	on start pressed do ( 
		
				

getFilesRecursive daoru.text "*.max"	
		
		
print (my_files)	

	)

5.依次打开所有文件

rollout testddl_rollout "批量改名导出"
(
button start "开始"  pos:[80,20]
edittext daoru "导入目录" fieldWidth:180 height:20 labelOnTop:true readOnly:false
	
	
global my_files = #()  --文件数组
	
fn getFilesRecursive root pattern =
(
	dir_array = GetDirectories (root+"/*")  --*wild-card
	for d in dir_array do
		join dir_array (GetDirectories (d+"/*"))
			

	
	if dir_array.count == 0 do append dir_array (root + "\\")
	for f in dir_array do
		
		join my_files(getFiles (f + pattern))
				
)

	on start pressed do ( 
		
		
		
		

getFilesRecursive daoru.text "*.max"	
		
for f in my_files do
(
loadMAXFile f;--打开文件

	)	)	
	
	
)
createDialog testddl_rollout 200 200

6.改名:

$Bone00.name="Bone99"

选择bone00将她的name变成bone99

7.导出选择:

这里介绍一下maxscript的宏录制,他可以将你所有的操作步骤用脚本展示出来,你只需要将她的脚本复制到脚本编辑器里面就可以使用

maxscript零基础教学写一个批量改名并导出插件 插件 3dmax maxscript 第3张

这里actionMan.executeAction 0 "40011"  -- File: 导出文件     就是一个导出fbx的宏,它是可以直接再次使用的

所以结合上面我们需要以下几个宏脚本1.选择物体2.导出fbx3.保存并关闭max文件

8.获取文件名   getFilenameFile f

9.输出:

	filename =getFilenameFile f
	filepath=getFilenamePath f
	savepath=filepath+filename
 exportfile savepath #noprompt selectedOnly:true using:FBXEXP
	
	ok
	actionMan.executeAction 0 "40006"  -- File: 保存文件
      actionMan.executeAction 0 "40005"  -- File: Reset File

10.最终组合代码:保存为"改名导出.ms"

rollout testddl_rollout "批量改名导出"
(
button start "开始"  pos:[80,20]
edittext daoru "导入目录" fieldWidth:180 height:20 labelOnTop:true readOnly:false
	
	
global my_files = #()  --文件数组
	
fn getFilesRecursive root pattern =
(
	dir_array = GetDirectories (root+"/*")  --*wild-card
	for d in dir_array do
		join dir_array (GetDirectories (d+"/*"))
			

	
	if dir_array.count == 0 do append dir_array (root + "\\")
	for f in dir_array do
		
		join my_files(getFiles (f + pattern))
				
)

	on start pressed do ( 
		
		
		
		

getFilesRecursive daoru.text "*.max"	
		
for f in my_files do
(
loadMAXFile f;
$Bone00.name="Bone99"
	
	
	
	filename =getFilenameFile f
	filepath=getFilenamePath f
	savepath=filepath+filename
 exportfile savepath #noprompt selectedOnly:true using:FBXEXP
	
	ok
	actionMan.executeAction 0 "40006"  -- File: 保存文件
      actionMan.executeAction 0 "40005"  -- File: Reset File    	
		
		
		
	
	
	
	)	)	
	
	
)
createDialog testddl_rollout 200 200


扫描二维码推送至手机访问。

本サイト上に掲載の文章、画像、写真などを無断で複製することは法律で禁じられています。全ての著作権はGAMESHに帰属します。

本文链接:https://www.pylblog.com/post/226.html

分享给朋友:

相关文章

3dmax资源收集插件

3dmax资源收集插件

附加信息: 此脚本适用于:- 标准材料- Vray渲染- 电晕渲染- Octane渲染器- Redshift渲染- FStorm渲染- 最终渲染安装选择菜单Scripting - >...

unity3d特效资源包 Ultimate VFX V3.1

unity3d特效资源包 Ultimate VFX V3.1

需要Unity 5.5.0及以上版本制作真正的火焰、烟雾、闪电、狂暴风暴、冲击波等! AAA质量的效果,一个大集合(600MB)使用超高分辨率纹理,精灵表和先进的粒子系统配置为您的游戏...

3dmax官方免费杀毒工具

3dmax官方免费杀毒工具

3ds Max 杀毒工具是 Autodesk 官方发布的用于安全地检测并移除恶意代码。恶意代码可能会损坏 3ds Max 环境和场景文件,导致数据丢失和不稳定,还有可能通过共享 3ds Max 场景文...

超强飘带解算插件下载

超强飘带解算插件下载

超强飘带解算插件BoneTool12-----------支持反算飘带!功能强大,动画师必备插件!下载文件function dodo(){ layer.msg('即将弹出二维码页面! ', {...

3dmax碰撞飘带插件Spring Max

3dmax碰撞飘带插件Spring Max

特征:在骨链上挥动,扭曲和拉伸动画,可以循环动画骨链可以与胶囊和平面碰撞形状在骨链上施加风和爆炸力注意:计算骨骼不应该在场景中有重复的名称对象,并且不应该有负的比例值无法使用Ctrl + Z撤消计算...

3dmax快速对齐插件升级版

3dmax快速对齐插件升级版

在平时用3dmax做动画的时候会遇到需要把两个无物体对齐的时候,如果只是物体对齐倒简单,如果需要对齐动画,可能3dmax自带的功能就有点坑爹了!比如有两个不同的物体需要做一样的动画,但是由于物体不一样...

发表评论

访客

看不清,换一张

QQ登录
◎欢迎参与讨论,请在这里发表您的看法和观点。