TA工具:批量导出FBX(maxscript)

Unity 专栏收录该内容
6 篇文章 0 订阅

拿到美术提供的max文件后,通常我们要将其导出成FBX然后导入unity使用。在设定好fbx导出配置后,还是每次通过菜单操作导出就非常烦人。特别是一个max要分别导出多个FBX的时候就更加烦人了。索性可以使用3dmax自带maxscript脚本写一个插件来自动化这些操作。

  • 将场景中所有选中物体整体导出为一个fbx文件
exportfile filename #noprompt selectedOnly:true using:FBXEXP
  • 将场景中所有选中物体各导出为一个文件
Sel = Selection as array

for i=1 to Sel.count do
(

  Select Sel[i]

  objname=$.name

  exportfile objname #noprompt selectedOnly:true using:FBXEXP
)

以上代码直接复制粘贴到MAXScript 侦听器上执行即可,我用的版本是3dmax 2014。但这样写只能我们程序自己用,稍微拓展一下写一个带ui的ms脚本插件就可以给美术用了。

macroScript BatchExport
ButtonText:"TA 工具"
category:"TA 工具"     
tooltip:"TA 工具"

(     
	rollout TAToolDialog "TA 工具" width:480 height:(240)
	(
		subRollout plugin01 "plugin01" pos:[12,12]
	)

	global batchExport

	rollout batchExport "批量导出FBX"     
	(  
		---------------------------------------------------自定义函数
		 
		fn init=
		(
			 
		)
		
		fn replaceSub str1 str2 str3=(
			while ((i=findstring str1 str2) != undefined) do
			(
				str1 = replace str1 i str2.count str3
			)
			return str1
		)
	 
		------------------------------------------------UI 元素
		
		edittext edittext_exportFolderPath "导出目录" fieldWidth:400 height:30 labelOnTop:true readOnly:false
		button button_export "导出" width:80
	 
		 
		-----------------------------------------------按钮回调
	 
		on batchExport open do
		(
			init()
		)
		
		on button_export pressed do
		(
				Sel = Selection as array
			
				for i=1 to Sel.count do(
					select Sel[i];
					objName=Sel[i].name;--to export individually, you must select individually
					Sel[i].name = replaceSub objName "*" "_";--如果物体名字包含*则替换成_
				)
			
				for i=1 to Sel.count do(
					select Sel[i];
					objName=Sel[i].name;--to export individually, you must select individually
					
					exportPath = edittext_exportFolderPath.text + "/" + (i as String) + "_" + objName;
					exportPath = trimleft exportPath;
					exportPath = trimRight exportPath;
					print exportPath;
					exportfile exportPath  #noPrompt selectedOnly:true using:FBXEXP  --print exporterPlugin.classes to see all formates
				)
				
				select Sel;--select back
		)
	)
 
  
	Createdialog TAToolDialog bgcolor:black fgcolor:red lockHeight:false lockWidth:false
	addsubrollout TAToolDialog.plugin01 batchExport rolledup:false
	TAToolDialog.plugin01.height += (200)
)

用法:

  1. 将上述代码复制粘贴到Maxscript 编辑器,然后保存并点击“运行脚本“”按钮执行脚本。
  2. 在主工具栏单击右键 -> 自定义... -> 工具栏。  如图选择

3. 然后点击操作 “TA 工具” 拖拽到主工具栏上,像这样

4.点击工具栏上“TA 工具”按钮,可以看到界面如下

 

5.选中要导出的物体,点击“导出”按钮批量导出即可

  • 5
    点赞
  • 5
    评论
  • 13
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值