stitle: 3dsmax-导入fbx踩坑之骨骼节点为辅助对象而不是骨骼对象categories: 3dsmaxtags: [max, ta, 骨骼, 插件]date: 2019-01-10 20:26:18comments: false做unity运行时实时飘带效果, 就拿以前的模型来测试, 不影响原有 骨骼动画 的基础上, 添加一些额外的骨骼来做飘带效果. 导入 fbx max...
最近经常会从unity里反八
FBX
到
max
里进行2次修改。
但是非常尴尬的事情就是,就是用
max
做的
fbx
,你在反
导入
回来,BIP
骨骼
都会变成预制体。这个时候有一个方法补救。那就是在
导入
的时候调整一下参数。(如下图)
把这里调整成设置为
骨骼
。就还可以了。
但是,如果你不是用
max
做的
FBX
。呵呵,那么你一定很头大,因为完全没有用。
所以,这个时候就要上插件了。
Auto
fbx
tobip v.1.1
这个插件适用于2015及其以上版本。
在这之前我还用过一款叫BIPPY,但是效果相当感人,照着这个图片调整
1、支持从几何体、bone
骨骼
、bip
骨骼
拷贝动画到bip
骨骼
。
2、支持从几何体、bone
骨骼
拷贝动画到几何体。
3、支持从几何体、bone
骨骼
拷贝动画到bone
骨骼
。
V1.2.5 (2018-04-14)
1、增加一键匹配功能,省去两边一个一个对
骨骼
的麻烦。
支持
max
2011之后的版本
3D
max
s给带
骨骼
蒙皮的模型绑定bip,很多人都会,所以大家不用看的了,而且我写的不专业,不会
3D
max
s,呵呵,纯属于个人笔记,因为上次会了,今天去弄又忘了,呵呵。。。
如果我们把
max
转成
FBX
格式,然后再打开的话,你会发现没有
骨骼
,原来的
骨骼
变成了
辅助
对象
,这时候就需要我们创建一个
骨骼
了,所以尽量保存
max
格式的文件,这样添加bip就简单了,
1.如果文件是
max
格式的话,直接
-- 打开
fbx
文件
MAX
Script dotNetClass: @"Autodesk.
Fbx
.
Fbx
Manager"
fbx
Manager = dotNetObject "Autodesk.
Fbx
.
Fbx
Manager"
fbx
IOSettings = dotNetObject "Autodesk.
Fbx
.
Fbx
IOSettings"
fbx
Manager.GetIOSettings()
fbx
Importer = dotNetObject "Autodesk.
Fbx
.
Fbx
Importer"
fbx
Manager.CreateImporter (
fbx
IOSettings)
-- 设置
fbx
文件名
fbx
FileName = "模型文件.
fbx
"
-- 检查
fbx
文件是否可
导入
if (
fbx
Importer.Initialize
fbx
FileName -1
fbx
IOSettings) == true do
-- 获取
fbx
场景
fbx
Scene = dotNetObject "Autodesk.
Fbx
.
Fbx
Scene"
fbx
Importer.Import
fbx
Scene
-- 将
fbx
场景中的模型
导入
到
3d
s
max
中
max
Node = dotNetObject "Autodesk.
Max
.
Max
Plus.INode"
dotNet.addEventHandler
max
Node "AddedToScene" (dotNetObject "System.EventHandler" (dotNetObject "Autodesk.
Max
.
Max
Plus.Node_Even
tA
ddedToScene"))
fbx
Importer.Import
fbx
Scene
max
Node = undefined
format "无法
导入
FBX
文件: %\n"
fbx
FileName
-- 关闭
fbx
导入
器和
fbx
管理器
fbx
Importer?.Destroy()
fbx
IOSettings?.Destroy()
fbx
Manager?.Destroy()
解释一下每一句代码:
第1行:设置工作目录,用于打开
fbx
文件。
第3-6行:打开
fbx
文件。我们使用
3d
s
max
的dotNetClass,调用Autodesk.
Fbx
.
Fbx
Manager类来创建并设置
fbx
导入
器。
第9行:设置
fbx
文件名。
第12-29行:检查
fbx
文件是否可以
导入
,如果可以就
导入
fbx
场景中的模型到
3d
s
max
中。我们使用Autodesk.
Fbx
.
Fbx
Importer的Import方法来
导入
模型。然后我们使用dotNetObject创建一个Autodesk.
Max
.
Max
Plus.INode
对象
,并为该
对象
添加AddedToScene事件处理程序,以便在模型成功
导入
到场景中时通知我们。
第32-35行:关闭
fbx
导入
器和
fbx
管理器。我们使用Destroy方法,以便正确释放类实例所占用的资源。