Article
未读前言做为TD,免不了会被公司要求写一个资产库。因为自己并没有资产管理的需要,没怎么使用过类似软件,于是想着在网上找到一些现有的资产库程序做为参考(主要是UI布局和交互方式)。既然花时间找了,也就想做个分享。
这篇文章就是对它们简单介绍一下,笔者也没有深度使用过,感兴趣可以自己下载体验。
Assetlt
AssetIt是一个内嵌在Maya里本地资产管理器,由个人开发者发布在Gumroad平台。单人授权license为$50,因为是使用的Python3,目前只能在Maya2022和Maya2023上使用。
这里是官方的功能演示视频: https://youtu.be/8EAZIgxJ4kA
Connecter
Connecter最初是一款针对3dmax以及室内可视化推出的管理软件。到现在它已经支持与多个软件集成,比如Unreal,Revit,Cinema4D,Rhinoceros,Blender。
它的个人版是免费使用的(管理个人资产很推荐),团队的话可以使用Server版,提供版本控制、权限用户管理、Web目录、通知等功能。
PBRMAX
PBRMAX一款在线的付费资产库平台,官方提 ...
Learn
未读新加入的一家公司因为条件有限,无法提供服务器给TD部门来搭建一个gitlab服务。但是协同开发又离不开这样的版本管理应用,所以想了想在自己本机弄个gitlab服务也能凑合用用。
虽然在windows用VM虚拟机也可以完成一样的效果,这里用docker是觉得更方便一些。
参考来自于:https://blog.csdn.net/pkrobbie/article/details/113837392
1.安装WSL2开启功能Windows Subsystem for Linux(WSL)是Windows 10上的一个工具,允许开发人员在Windows上直接运行Linux环境。
在安装WSL前需要先开启两个功能。
可以从控制面板 - 程序 - 启用或关闭Windows功能中开启。或者使用powershell(管理员身份打开)输入命令开启也一样。
12345# 启用"适用于 Linux 的 Windows 子系统"可选功能dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linu ...
Article
未读前言最近在做一些unreal的开发,语言上使用的是python(对于我自己能力而言,使用python效率会快一些,C++只会个基础)。
但众所周知,unreal的python文档比较难阅读,很多命令和方法都得靠猜和尝试。
刚开始做unreal开发的时,要实现一些功能都得从搜索引擎去获得一些代码参考。无法直接从帮助文档中找到想要的结果。不过到后来熟悉了unreal的“套路”,也总结了一些开发经验和心得,在这里分享给大家。
unreal版本是4.26,有些模块需要开启Sequencer Scripting和Editor Scripting Utilities插件。
maya到unreal概念转换熟悉unreal的朋友可以跳过,这里为了给maya初入unreal的开发者传达几个概念。
首先是Level(关卡),这里可以把一个Level看作是一个maya文件。打开一个Level,在右侧的World Outliner就是这个“maya”文件的大纲视图。里面的所有物体,都被称作为Actor。
Content Browser相当于整个项目的资产库,里面的物体类型被称作为Asset。
关于 ...
Article
未读什么是ASWF基金会ASWF全称为The Academy Software Foundation,于2018年8月由美国电影艺术与科学学院(AMPAS)成立。
其目的是为了提高对内容创作行业开源软件库的贡献(数量与质量),创造一个健康的开源社区。
关于AMPAS:是美国一个致力于促进电影艺术发展的非营利性专业组织,总部位于美国加州的比佛利山。
加入ASWF的开源项目有:
OpenVDB
OpenColorIO
OpenEXR
OpenCue
OpenTimelineIO
Open Shading Language(OSL)
MaterialX
Digital Production Example Library (DPEL)
RAW to ACES Utility
Rez
其中ADOPTED PROJECTS为已经成熟且被行业标准认可的项目。而INCUBATION PROJECTS如译名一样,处于孵化成长的阶段。下面对这些项目进行简单介绍。
OpenVDB一个C++库,包含一个分层数据结构和一些工具。用于有效地处理稀疏的、时间变化的、三维网格上离散的体积数据。(如云 ...
Learn
未读
minq是一个在maya场景中快速物体对象查询的库
仓库地址:https://github.com/theodox/minq
minq简单介绍这个项目是为了减少Maya中每次对物体查询时,用到命令比如ls(),listRelatives()和listHistory()的频次。意在直接了当的获取所需的物体对象。
举个例子,比如我们想找到场景中角色的IK手柄,你需要:
1234567iks = cmds.ls(type = 'ikHandle') or []for ik in iks: parents = cmds.listRelatives(ik, p=True) for p in parents: if p.split("|")[-1] == 1: return preturn None
对于一个简单的需求,这显然会产生很多的代码。而且不同的命令返回的结果格式不一样,比如ls()返回一个列表,你需要在后面加上[]。如果你想要返回完整的物体路径,使用ls()还需要添加long参数,使用listR ...
收集一些常用的Maya环境变量,方便用的时候查。有关PATH的变量,Mac OS X中使用:分隔,Windows和Linux中使用;分隔。
Variable
Description
MAYA_IGNORE_DIALOGS
打开maya场景禁止弹出警告框
MAYA_DISABLE_CLIC_IPM
禁用Cloud登陆
MAYA_DISABLE_CIP
禁用CIP(客户参与计划)
MAYA_DISABLE_CER
禁用CER(客户错误报告)
MAYA_NO_CONSOLE_WINDOW
隐藏启动时的控制台窗口
MAYA_CMD_FILE_OUTPUT
在启动时启用cmdFileOutput命令,使脚本辑器中的内容自动输出到指定文件
MAYA_MODULE_PATH
定义maya模块的搜索路径(*.mod )
MAYA_PLUG_IN_PATH
定义maya插件搜索路径(*.py *.mll *.so *.bundle )
MAYA_SCRIPT_PATH
定义mel脚本搜索路径(*.mel )
MAYA_PRESET_PATH
定义预设路径 ...
动画相关获取物体有多少个关键帧cmds.keyframe(name, q=True, keyframeCount=True)
获取物体第一个动画帧帧数cmds.findKeyframe(name, which='first')
获取物体最后一个动画帧帧数cmds.findKeyframe(name, which='last')
修复乱轴曲线cmds.filterCurve(name_list)
复制粘贴单个指定属性动画123# 这里是复制摄像机焦距动画cmds.copyKey(cam, at='fl')cmds.pasteKey(dup_cam, at='fl')
显示层设置显示层的颜色123cmds.setAttr(layerName+'.color', index)cmds.setAttr(dag+'.overrideEnabled', True)cmds.setAttr(dag+'.overrideColor', index)
列出跟物体连接的显 ...
Learn
未读节点动画操作1234567891011121314151617181920212223242526272829303132333435363738# 设置为可key帧状态node = nuke.toNode("Blur1")knob = node["size"]knob.setAnimated()# 给指定帧数key帧,第一个参数是数值,第二个参数是帧数knob.setValueAt(55, 10)# 比如size属性,有x和y两个值的时候,使用第三个参数来控制knob.setValueAt(77, 100, 0)knob.setValueAt(88, 100, 1)# 判断一个属性是否有关键帧print knob.isAnimated()# 获取key帧动画print knob.animations()# 只获取size属性中,h的动画print knob.animations(1)# 获取size属性中,h的每一个关键帧和对应的数值animation = knob.animation(1)for key in animation.keys() ...
Article
未读关于将py文件编译为pyd当你想把一个python脚本分享出去,又不想暴露源码的时候,可以将py文件编译成pyd或pyc文件。
pyd格式是D语言(C/C++综合进化版本)生成的二进制文件,实际也会是dll文件。该文件不可以被反编译,只能被反汇编。
而pyc文件,虽然也是py编译后的格式,但是pyc非常容易被反编译,基本上可以说编译了个寂寞。
我之前用过angelic47大佬写的pyprotect,这是个第三方python加密混淆工具,编译后的pyc代码也具有很高的反编译难度。(其实我自身更偏向于pyc文件,不用像pyd一样太考虑解释器版本和系统平台)
不过后来pyprotect工具无法使用了,这也是我开始使用pyd格式进行编译的原因。废话到这里,下面开始说下整个编译过程。(这里以Maya2018为例)
1.找到MSC版本和对应VS版本msc是微软的C编译器,安装对应的VS版本会带有。
如何查看MSC版本,这里有两种方式:
使用cmd命令行工具,打开C:\Program Files\Autodesk\Maya2018\bin\mayapy.exe
或者在Maya的scr ...
Article
未读
关于“你的文件贼健康”算是一个过时的话题了,不过发现身边的朋友很多还是不知道怎么处理,或还在使用一些比较繁琐的处理方式:
1.比如每次打开文件之前用文本编辑器搜索关键字2.打开文件时取消勾选Execute script nodes3.将userSetup文件改为只读等等…
这里推荐一个最简单的处理方式,也就是安装一个Maya插件: sceneCallback使用插件后,当打开带有“贼健康”的文件时,Maya会弹出提示,并选择直接删除它。(如下图所示)
有了这个插件后,我们不需要关心文件是否被感染,不需要在打开文件前做预先检查和其他操作,正常打开文件即可。插件会帮助我们拦截“贼健康”,并删除它。
这个插件是甜菜大大写的,插件的github开源地址:https://github.com/cundesi/maya_utils(如果好用可以给它点一个Star)
也可以关注一下他的这篇文章:https://mp.weixin.qq.com/s/TW_YqDBvrlGuafHqyGEnhw
下面是插件整个安装过程1.下载插件去github地址下载它https://github.com/cu ...