Maya FBX导出导入

问题描述:

Maya 导出导入 FBX,设置 FBX 的 导入和导出设置

解决方案:

获取FBX设置

def getFBXSettings():""" get current user settings for FBX export and store them """mel.eval('FBXPushSettings;')def setFBXSettings():""" set user-defined FBX settings back after export """mel.eval('FBXPopSettings;')

导出 FBX


def exportFBX(export_file_path, selected=True, **kwargs):""""""smoothing_groups = kwargs.get('smoothing_groups', 'true')hard_edges = kwargs.get('hard_edges', 'false')tangents = kwargs.get('tangents', 'false')smooth_mesh = kwargs.get('smooth_mesh', 'true')instances = kwargs.get('instances', 'false')referenced_assets_content = kwargs.get('referenced_assets_content','false')animation_only = kwargs.get('animation_only', 'false')bake_complex_animation = kwargs.get('bake_complex_animation', 'false')bake_complex_step = kwargs.get('bake_complex_step', '1')use_scene_name = kwargs.get('use_scene_name', 'false')quaternion = kwargs.get('quaternion', 'euler')shapes = kwargs.get('shapes', 'false')skins = kwargs.get('skins', 'false')skeleton = kwargs.get('skeleton', 'false')constraints = kwargs.get('constraints', 'false')cameras = kwargs.get('cameras', 'false')lights = kwargs.get('lights', 'false')embed_media = kwargs.get('embed_media', 'false')connections = kwargs.get('connections', 'false')up_axis = kwargs.get('up_axis', 'y')in_ascii = kwargs.get('in_ascii', 'false')# store current user FBX settingsgetFBXSettings()# export selected as FBX# Geometrymel.eval("FBXExportSmoothingGroups -v {}".format(smoothing_groups))mel.eval("FBXExportHardEdges -v {}".format(hard_edges))mel.eval("FBXExportTangents -v {}".format(tangents))mel.eval("FBXExportSmoothMesh -v {}".format(smooth_mesh))mel.eval("FBXExportInstances -v {}".format(instances))mel.eval("FBXExportReferencedAssetsContent -v {}".format(referenced_assets_content))mel.eval("FBXExportAnimationOnly -v {}".format(animation_only))mel.eval("FBXExportBakeComplexAnimation -v {}".format(bake_complex_animation))mel.eval("FBXExportBakeComplexStep -v {}".format(bake_complex_step))mel.eval("FBXExportUseSceneName -v {}".format(use_scene_name))mel.eval("FBXExportQuaternion -v {}".format(quaternion))mel.eval("FBXExportShapes -v {}".format(shapes))mel.eval("FBXExportSkins -v {}".format(skins))mel.eval('FBXExportSkeletonDefinitions -v {}'.format(skeleton))# Constraintsmel.eval("FBXExportConstraints -v {}".format(constraints))# Camerasmel.eval("FBXExportCameras -v {}".format(cameras))# Lightsmel.eval("FBXExportLights -v {}".format(lights))# Embed Mediamel.eval("FBXExportEmbeddedTextures -v {}".format(embed_media))# Connectionsmel.eval("FBXExportInputConnections -v {}".format(connections))# Axis Conversionmel.eval("FBXExportUpAxis {}".format(up_axis))# Version# mel.eval("FBXExportFileVersion -v FBX201600")mel.eval("FBXExportInAscii -v {}".format(in_ascii))try:# cmds.file(r'{}'.format(export_file_path), exportSelected=selected,#           type="FBX export",#           force=True, prompt=False)if selected:cmds.FBXExport('-file', export_file_path, '-s')else:cmds.FBXExport('-file', export_file_path)except Exception as e:print(e)print(export_file_path)# restore current user FBX settingssetFBXSettings()

导入FBX


def import_fbx(fbx_file, **kwargs):log = kwargs.get('log', 'false')axis_conversion = kwargs.get('axis_conversion', 'true')cache_file = kwargs.get('cache_file', 'true')import_camera = kwargs.get('import_camera', 'false')import_constraints = kwargs.get('import_constraints', 'false')convert_joint = kwargs.get('convert_joint', 'true')convert_unit = kwargs.get('convert_unit', 'cm')fit_timeline = kwargs.get('fit_timeline', 'true')force_axis = kwargs.get('force_axis', 'y')hard_edge = kwargs.get('hard_edge', 'false')import_light = kwargs.get('import_light', 'false')merge_pivots = kwargs.get('merge_pivots', 'true')merge_ani_layer = kwargs.get('merge_ani_layer', 'true')import_mode = kwargs.get('import_mode', 'merge')import_driven_key = kwargs.get('import_driven_key', 'false')quaternion = kwargs.get('quaternion', 'resample')resample_rate = kwargs.get('resample_rate', 'File')# scale_factor_enable = kwargs.get('scale_factor_enable', 'false')scale_factor = kwargs.get('scale_factor_enable', 1.0)frame_rate = kwargs.get('frame_rate', 'true')lock_attr = kwargs.get('lock_attr', 'false')set_take = kwargs.get('set_take', 0)import_shape = kwargs.get('import_shape', 'true')skeleton_type = kwargs.get('skeleton_type', 'humanik')import_skin = kwargs.get('import_skin', 'true')lock_normal = kwargs.get('lock_normal', 'false')up_axis = kwargs.get('up_axis', 'y')# store current user FBX settingsgetFBXSettings()# optionsmel.eval("FBXImportGenerateLog -v {}".format(log))mel.eval("FBXImportAxisConversionEnable -v {}".format(axis_conversion))mel.eval("FBXImportCacheFile -v {}".format(cache_file))mel.eval("FBXImportCameras -v {}".format(import_camera))mel.eval("FBXImportConstraints -v {}".format(import_constraints))mel.eval("FBXImportConvertDeformingNullsToJoint -v {}".format(convert_joint))mel.eval("FBXImportConvertUnitString {}".format(convert_unit))mel.eval("FBXImportFillTimeline -v {}".format(fit_timeline))mel.eval("FBXImportForcedFileAxis -v {}".format(force_axis))mel.eval("FBXImportHardEdges -v {}".format(hard_edge))mel.eval("FBXImportLights -v {}".format(import_light))mel.eval("FBXImportMergeBackNullPivots -v {}".format(merge_pivots))mel.eval("FBXImportMergeAnimationLayers -v {}".format(merge_ani_layer))mel.eval("FBXImportMode -v {}".format(import_mode))mel.eval("FBXImportProtectDrivenKeys -v {}".format(import_driven_key))mel.eval("FBXImportQuaternion -v {}".format(quaternion))mel.eval("FBXImportResamplingRateSource -v {}".format(resample_rate))# mel.eval("FBXImportScaleFactorEnable {}".format(scale_factor_enable))mel.eval("FBXImportScaleFactor {}".format(scale_factor))mel.eval("FBXImportSetMayaFrameRate -v {}".format(frame_rate))mel.eval("FBXImportSetLockedAttribute -v {}".format(lock_attr))mel.eval("FBXImportSetTake -ti {}".format(set_take))mel.eval("FBXImportShapes -v {}".format(import_shape))# mel.eval("FBXImportSkeletonType -v {}".format(skeleton_type))mel.eval("FBXImportSkins -v {}".format(import_skin))mel.eval("FBXImportUnlockNormals -v {}".format(lock_normal))mel.eval("FBXImportUpAxis {}".format(up_axis))try:cmds.FBXImport('-file', fbx_file)except Exception as e:traceback.print_exc()print(fbx_file)# restore current user FBX settingssetFBXSettings()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指针知识大礼包,让你的编程之路更顺畅(一)

1. 内存和地址 2. 指针变量和地址 3. 指针变量类型的意义 4. const修饰指针 5. 指针运算 6. 野指针 7. assert断⾔ 8. 指针的使⽤和传址调⽤ 正文开始 1. 内存和地址 1.1 内存 在讲内存和地址之前,我们想有个⽣活中的案例: 假设有⼀栋宿舍楼&a…

自锁电路设计

自锁电路设计 Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制…

glsl改变纹理坐标来放大图像

使用glsl中的顶点着色器来改变坐标位置 // 顶点着色器 #version 330 core layout (location 0) in vec2 Position; // 位置坐标 layout (location 1) in vec2 TexCoord; // 原始纹理坐标 out vec2 FragTexCoord; // 输出给片段着色器的纹理坐标 void main() {gl_Position …

springboot 大文件分片上传

springboot 大文件分片上传 constantentityvocontrollerutils大文件分片上传是一种将大文件分割成多个小文件片段,然后分别上传这些小文件片段的方法。这种方法的好处包括: 减少重新上传开销:如果网络传输中断,只需重传未上传的部分,而不是整个文件。 提高灵活性:分片大小…

产品经理和市场经理的区别

1. 前言 行业权威人士强调,高达九成的产品在市场上未达预期目标,被视为失败。尽管你的产品未必在此范围内,我依然认为市场上存在大量构思粗糙、尚未成熟、使用不便且缺乏价值的产品。产品失败的原因多种多样,我将从不同角度深入分析。然而,我深信,根本问题在于公司对产品…

【Selenium】隐藏元素的定位和操作|隐藏与isDisplay方法

一、selenium 中隐藏元素如何定位? 如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素(如click,clear,send_keys) 二、隐藏元素 如下图有个输入框…

Alibaba spring cloud Dubbo使用(基于Zookeeper或者基于Nacos+泛化调用完整代码一键启动)

Quick Start Dubbo&#xff01;用更优雅的方式来实现RPC调用吧 - 掘金 dubbozookeeper demo 项目结构&#xff1a; RpcService 仅仅是提供服务的接口&#xff1a; public interface HelloService {String sayHello(String name); }DubboServer pom&#xff1a; <?xm…

EDR下的线程安全

文章目录 前记进程断链回调执行纤程内存属性修改early birdMapping后记reference 前记 触发EDR远程线程扫描关键api&#xff1a;createprocess、createremotethread、void&#xff08;指针&#xff09;、createthread 为了更加的opsec&#xff0c;尽量采取别的方式执行恶意代…

【Flutter学习笔记】10.3 组合实例:TurnBox

参考资料&#xff1a;《Flutter实战第二版》 10.3 组合实例&#xff1a;TurnBox 这里尝试实现一个更为复杂的例子&#xff0c;其能够旋转子组件。Flutter中的RotatedBox可以旋转子组件&#xff0c;但是它有两个缺点&#xff1a; 一是只能将其子节点以90度的倍数旋转二是当旋转…

2002-2023年各地级市环境规制强度数据(环保词频统计)

2002-2023年各地级市环境规制强度数据&#xff08;环保词频统计&#xff09; 1、时间&#xff1a;2002-2023年 2、来源&#xff1a;政府工作报告 3、指标&#xff1a; 行政区划代码、年份、城市、所属省份、文本总长度、仅中英文-文本总长度、文本总词频-全模式、文本总词频…

力扣刷题之22.括号生成

仅做学习笔记之用。 题目&#xff1a; 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())(…

瑞_23种设计模式_职责链模式

文章目录 1 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;★★★1.1 介绍1.2 概述1.3 职责链模式的结构1.4 职责链模式的优缺点1.5 职责链模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析&#xff08;FilterCh…

软件测试 - postman高级使用

断言 概念&#xff1a;让程序代替人判断测试用例执行的结果是否符合预期的一个过程 特点&#xff1a; postman断言使用js编写&#xff0c;断言写在postman的tests中 tests脚本在发送请求之后执行&#xff0c;会把断言的结果最终在testresult中进行展示 常用的postman提供的…

C++剑指offer与高频面试题源码解答与分析

这是博主在当初秋招刷题时候记录的剑指offer第二版以及一些高频题的C源码和解法分析&#xff0c;可以说把这上面的题练好了面试不虚&#xff0c;最后也顺利帮助我拿下baidu ali meituan等多家大厂offer。整篇文章写了大概5W个字&#xff0c;也是积累了很长一段时间的作品&#…

【Docker】docker和docker-compose一键安装脚本(linux)

一、准备和运行脚本 当前脚本下载的docker和docker-compose兼容系统架构为x64&#xff0c;可以根据自己实际系统版本更改下载链接 1. 在控制台使用vim新建: vim install-docker.sh2. 复制内容并粘贴&#xff1a; #!/usr/bin/env bash # 设置脚本在遇到错误时终止执行 set -…

SpringMVC | Spring MVC中的“拦截器”

目录: 一、拦截器 &#xff1a;1. 拦截器的 “概述”2. 拦截器的 “定义” (创建“拦截器”对象)3. 拦截器的 “配置” (让“拦截器”对象生效)4. 拦截器的 “执行流程”“单个拦截器”的执行流程“多个拦截器”的执行流程 二、应用案例一实现用户登录权限验证 作者简介 &#…

ssm006基于java的少儿编程网上报名系统+vue

少儿编程网上报名系统 摘 要 在国家重视教育影响下&#xff0c;教育部门的密确配合下&#xff0c;对教育进行改革、多样性、质量等等的要求&#xff0c;使教育系统的管理和运营比过去十年前更加理性化。依照这一现实为基础&#xff0c;设计一个快捷而又方便的网上少儿编程网上…

利用PSR,三步实现业务快速加载

01 什么是PSR PSR是通信业界在BSS/OSS域面向产品设计和业务开通过程中提出的一个标准化信息分层解耦和映射的框架&#xff0c;按照国际电信论坛TMF推荐的SID信息框架的标准&#xff0c;主要分为产品域、服务域和资源域等三层&#xff0c;支撑通信业务的快速加载和敏捷开通。 TM…

leetcode35-Search Insert Position

排序数组搜索某个元素&#xff0c;这种思维一定要往二分法上靠 public class searchInsertPosition{public static void main(String[] args) {int arr[] {1,3,5,6};System.out.println(getIndex(arr,2));}public static int getIndex(int[] arr,int target) {int start 0;i…

vscode下c++的boost库安装

Boost Downloadshttps://www.boost.org/users/download/下载最新的库文件。在shell中&#xff0c;使用命令bootstrap.bat gcc生成b2.exe文件。然后是.\b2.exe toolsetgcc生成库文件&#xff0c;在stage\lib文件夹下把stage\lib文件夹中的库文件拷贝到mingw64\x86_64-w64-mingw3…