Maya FBX导出导入

2024-03-26 09:44
文章标签 fbx 导出 导入 maya

本文主要是介绍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()

这篇关于Maya FBX导出导入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848074

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF