首先因为ue4没有unity导入管理那么方便,坐标轴之类的问题也是很长时间没有很好的解决过,所以要想控制一个流程还要借助插件。
ue4可以把copy的内容输出到记事本上,这个也是导入这个流程的关键

下面是mel的输出方式示例 $objSelectionName 是名字

$stringCopy += "Begin Map\n";
$stringCopy += "Begin Level\n";
$stringCopy += "Begin Actor Class=StaticMeshActor Name="+$objSelectionName+" Archetype=StaticMeshActor\'/Script/Engine.Default__StaticMeshActor\'\n";
$stringCopy += "Begin Object Class=StaticMeshComponent Name=StaticMeshComponent0 ObjName=StaticMeshComponent0 Archetype=StaticMeshComponent\'/Script/Engine.Default__StaticMeshActor:StaticMeshComponent0\'\n";
$stringCopy += "End Object\n";;
$stringCopy += "Begin Object Name=\"StaticMeshComponent0\"\n";
$stringCopy += "StaticMesh=StaticMesh\'/Game/Meshes/"+$objSelectionName+"."+$objSelectionName+"\'\n";
$stringCopy += "RelativeLocation=(X="+(`getAttr ($objSelectionName+".translateX")`)+",Y="+(`getAttr ($objSelectionName+".translateZ")`)+",Z="+(`getAttr ($objSelectionName+".translateY")`)+")\n";
$stringCopy += "RelativeRotation=(Pitch="+(`getAttr ($objSelectionName+".rotateZ")`)+",Yaw="+(-`getAttr ($objSelectionName+".rotateY")`)+",Roll="+(`getAttr ($objSelectionName+".rotateX")`)+")\n";
$stringCopy += "End Object\n";
$stringCopy += "StaticMeshComponent=StaticMeshComponent0\n";
$stringCopy += "RootComponent=StaticMeshComponent0\n";
$stringCopy += "ActorLabel=\""+$objSelectionName+"\"\n";
$stringCopy += "End Actor\n";
$stringCopy += "End Level\n";
$stringCopy += "Begin Surface\n";
$stringCopy += "End Surface\n";
$stringCopy += "End Map\n";

之前有个FBXExporter,可以保证导出的模型在ue4中是正常的但是有个问题,就是物体的pivot并不是原来的,这也导致了在max中不平行于坐标轴的物体的pivot也不在自身的轴上,而是变成max中的世界轴。因为项目要求模型要能在后期更新(所有粗模不进行冻结),ue4中的所有模型pivot要保持还是以前的,也就是查看独立模型的时候模型其实是出于没有旋转的状态,FBXExporter并不能满足。

所以这里就不能像使用FBXExporter一样,重置所有轴,这个会造成轴的变化。正确做法是把粗模的旋转和位移清0(缩放也可以清1 不过会有些其他问题)后,单独保存fbx,这样能保证所有独立的模型在中心没有旋转,方便后面加工。以后修改模型只要修改单个粗模,有旋转缩放变化的话用冻结变换,reimport即可。而在ue4中的操作如FBXExporter一样,直接复制信息到剪贴板即可,ue4中导入单独模型后复制过去。

本来这么想是没有错,还有个问题需要考虑,就是ue4和maya里面的旋转值是不对等的,不是单纯的对某个轴向进行反转或者交换某两个轴这么简单。因为ue4和maya虽然在调整的时候都是用的三个坐标的欧拉角,但是用的基本轴却是不一样的,通过ue4内部的Pitch,Yaw,Roll使用可以看出ue4使用的姿态角,是欧拉角的另一种不同基本轴的计算方式,也叫 泰特布莱恩特角。所以想要把这两种不同基本轴的角度换算,参考下面网址

https://www.zhihu.com/question/47736315

http://blog.csdn.net/bnrmaster/article/details/47125821

四元数方式可以解决这个问题,这个可以从FBXExporter脚本源码中看出来

另外maya和max在向上轴上不一样,max默认向上轴是z,maya是y,maya的可以在preferences
但是如果导出的是fbx,在内部信息中会带上max或者maya的信息,所以可以看到模型导过去会自动旋转90度
如果maya修改了向上轴,那么多一种向上轴软件导出的模型不会进行旋转变换

还有一个问题会影响到ue4里面的旋转,就是导入选项如果去掉勾选Skeletal Mesh然后就会有一个transform vertex to absolute,默认是勾上的,会将模型的缩放旋转都应用到模型上(注意并没有位移,位移是肯定会应用到模型上的,而应用后的旋转为000,缩放为111),不勾上的话,不会应用到模型上,也就是说模型保持三维软件里缩放旋转前的大小忽略旋转缩放值(除非冻结掉),而且会有一个副作用就是模型向上的轴向会根据做模型时候的顶点顺序来决定,这个挺奇怪的,不过确实是这样

ue4 maya max导入导出旋转坐标轴问题相关推荐

  1. maya如何导出ue4_ue4 maya max导入导出问题

    首先因为ue4没有unity导入管理那么方便,坐标轴之类的问题也是很长时间没有很好的解决过,所以要想控制一个流程还要借助插件. ue4可以把copy的内容输出到记事本上,这个也是导入这个流程的关键 下 ...

  2. maya为什么不能导出fbx_maya的模型导出为OBJ,然后导入到3dmax后uv全乱了 (导出FBX更不行,导出的FBX文件放max里面基本没面了)...

    答:如果是fbx文件导入到maya中骨骼歪斜的话,只能用手动调节,因为max和maya绑定模型互导现在还不能完美解决,所以如果想把max中绑定要的模型导入到maya中来调节动画的话,就只能再做相应的调 ...

  3. maya通过python输出fbx_[转载]FBX动画导入导出经验心得(MayaToMax,MayaToMaya)

    注:原文写在我的百度博客上,因此百度博客的配图更清晰,另外百度博客的本文更新了mel的下载链接! 绕了很多弯子,失败了n次,得以下经验,T_T...记录下来,免得以后忘记. 本文主要解决两种情况下的数 ...

  4. maya为什么不能导出fbx_FBX动画导入导出经验心得(MayaToMax,MayaToMaya)

    注:原文写在我的百度博客上,因此百度博客的配图更清晰,另外百度博客的本文更新了mel的下载链接! 绕了很多弯子,失败了n次,得以下经验,T_T...记录下来,免得以后忘记. 本文主要解决两种情况下的数 ...

  5. 关于Blender/Maya/Max导出gltf/glb格式

    1.先下载一个Blender导出gltf的插件,解压后将scripts/addons/io_scene_gltf2复制到blender安装目录下的addons目录下. 2.打开Blender的设置 3 ...

  6. maya python插件_Maya Python - ALembic导入导出助手

    前言Abc助手其实最开始是师兄跟我提的. 我记得刚到公司的第一天,师兄就让我去研究如何实现批量将材质信息上到每个面上. 这就为这个插件的诞生慢下了伏笔. 其实就我自己而言,我当时并不太理解师兄想要实现 ...

  7. FBX文件导入Unity导致贴图丢失问题解决,以3ds max,Blender导入导出为例

    一 . 首先把资产文件导入三维软件中 1 . 3ds Max 1.1 导入FBX--[免费或者质量差的资源可能会出现平滑组错误的情况,可以直接镜像一个模型更改法线或者删除面重新封口能解决问题] 1.2 ...

  8. 【3ds Max 给PCB外壳建模1】嘉立创的3D图形obj文件导入3d max、导出、另存为

    文章目录 3ds Max 给PCB外壳建模所有文章 一.嘉立创的3D图形obj文件导入3d max 二.文件导出 3ds Max 给PCB外壳建模所有文章 1.[3ds Max 给PCB外壳建模1]嘉 ...

  9. Maya官方动画导入导出插件

    前言 最近在做一个项目,所有资产必须以无命名空间的规则导入, MG的动画导入导出功能失效了, 但是可以使用官方的插件. 加载插件 导出 导入 文件优势 文件体积小,导入动画时可以不依赖空间名

最新文章

  1. 网络爬虫 --DOM处理XML
  2. 机器学习实战:k-近邻算法(手写数字识别)
  3. 训练集山准确率高测试集上准确率很低_推荐算法改版前的AB测试
  4. php 获取文件最后几行,php获取文件的最后N行数据
  5. JVM JRE JDK,这些东西到底是什么?(转载)
  6. 用matlab拟合多元函,MatLab中多元拟合的函数是什么?
  7. three相机在模型上_一步步带你实现web全景看房——three.js
  8. 《Lua程序设计》第1章 开始 学习笔记
  9. Rust: Lifetime小心要你命!
  10. 交换机Vlan中tagged和untagged的区别
  11. CentOS 8使用 Kickstart配置 UEFI PXE 启动
  12. asm bin hex elf文件区别
  13. matlab中if筛选条件 如何使用方法,excel中多个if函数的套用_excel怎么按条件筛选...
  14. 基于Python的手写拼音识别
  15. 总是听到有人说AndroidX,到底什么是AndroidX?
  16. 项目管理之道——软件能力成熟度模型五大等级详解!
  17. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
  18. 马斯克为什么这么厉害?底层有一套强大的思维方式!
  19. 7-114 用if-else语句编程百分制成绩转换为五分制成绩
  20. LeetCode 904. 水果成篮

热门文章

  1. 直播回顾:准确性提升到 5 秒级,ssar 独创的 load5s 指标有多硬核?| 龙蜥技术...
  2. Jmeter自定义函数
  3. 今年计算机/软件等专业调剂信息集合!
  4. U盘怎么调整分区大小?u盘分区工具推荐
  5. 遭遇Viking新变种 传奇 魔兽盗号木马等 第3版
  6. 一个爬取豆瓣电影名称的例子
  7. bilibili 网页端如何关灯和开灯?
  8. win10 删除文件夹需要管理员权限无法删除的方法
  9. ES6飞机大战篇-添加子弹追踪功能
  10. Java 学习笔记 - 数组类型互转