Substance Painter 插件开发教程 01 Substance Painter 插件开发教程 01 1. 前言 大家好,我是渔夫,目前网上关于如何写 Substance Painter 插件的相关文章和教程非常少,官方的文档也比较简陋,API不太完善,编写一个功能可能需要绕来绕去,因为有些功能 python API 有,但Javascript API 没有,eg: project.reloadmesh , 有些功能 是Javascript API有,但是 python API没有 eg: alg.baking.bake 这些坑浪费了我很多的时间,我认为没必要所有的人都花时间重新踩一遍这些坑,这是一件浪费时间又学不到东西的事情,所以写这几篇blog, 希望能给你省下一点时间 当前版本 : – Python API 0.2.2 – JsveScrpt API 1.1.15 1.工作流演示
2.目标效果 & 功能步骤 houdini 使用python批量导出 高模,低模 substance painter python 插件 依据高低模批量导出工程文件 substance painter JS 插件 依据2导出的工程文件 批量烘焙并输出 所需贴图unity 脚本导入贴图和低模,自动设置好格式,并生成对应的材质球和prefab 本篇文章对应的是步骤3,其他阶段请参考下面文章 01 SP JS 插件 基础 02 SP python插件 批量生成项目文件 03 SP JS插件 批量烘焙并导出贴图 04 unity 批量处理 模型贴图,并生成 Prefab 05 houdini python 脚本基础教程 3.说明 工作流的目的是:降低重复劳动带来的操作痛苦,提升工作效率 整个流程中 任何一个步骤都 可以进行手工替换 比如 模型可以是 人工制作 比如 SubstancePainter 中的 贴图制作方式 可以是每个模型不同的工程文件 4.拓展 其他可以批量的操作 包括但不限于: – 模型: – 批量生成模型第二套uv 用于shader – 模型批量生成 LOD – 模型批量顶点控制 – 贴图: – 批量更新贴图的分辨率大小 – 批量更新贴图的压缩格式 – Prefab: – 预制体的批量操作等 – 贴图格式,材质球shader 等 5. 实现 1. API 文档 你可以通过这个目录打开 Substance Painter 的Python API 文档
2. API结构
3. API 局限性 相比Python 暴露的API , JS API 中缺少了 reload_mesh 相关的 API,也就是你不能替换新的模型来生成新的贴图,挺痛苦的 无论 Python 还是 JS 的API 都没有操控Layer相关的API, 而layer 相关的操作是 SubstancePainter 的核心功能,所以脚本能做的事情就非常的少。(可能是substance 插件的开发者太少的原因,没上心去弄~) 3. Hello World 菜单栏 JavaScript/Plugins Folder ,可以打开插件存放的目录,上面打钩那些都是插件
打开目录 photoshop-export ,下图是它的目录结构
复制一份 photoshop-export 重新命名为 hello_plugin 上面提到的文件,其他的文件可以删掉,并重命名下面两个文件 完成后的目录结构如下:
一:hello world 1. 菜单栏 JavaScript/Reload Plugins Folder 可以显示出你新建的插件(箭头指向),后面每次修改插件后,都需要该按钮进行刷新
2.打开 ConfigurePanel.qml 和 settings.ini 删除里面所有的内容 3.打开 main.qml 文件 输入以下内容 4.打开 export.qml 文件 输入以下内容 5.打开 logic.js 文件 6. 菜单栏 JavaScript/Reload Plugins Folder 按钮刷新 插件后,在左边的插件栏中就能看到 插件的图标了(我换成了我的头像)
7. 勾选菜单栏 Window/View/Log,打开Log 界面,插件按钮,就能看到hello world 了
对应的下载地址: v0.0.1 hello world 源码下载地址 二:输出贴图 1.打开一个 Sp 项目,你也可以 File/OpenSamples 打开任意一个项目 2.打开 logic.js 文件, 输入以下内容 其中alg.mapexport.getProjectExportPreset() 的就是 菜单栏 File/ExportTextures 后打开的界面中的 SETTTINGS/Output template 选中项的名字
更新插件后,按钮就可以导出贴图了 :) 对应的下载地址: v0.0.2导出贴图 源码下载地址 三:配置输出路径 1.打开 main.qml 文件, 输入以下内容 2.打开 ConfigurePanel.qml 文件,输入以下内容 当用户 插件的 configure 按钮时候,调用 ConfigurePanel.qml 显示
此时用户 Set path 按钮,就会打开 名为outputDirDialog 的对话框,
当对话框结束后
会调用 alg.settings.setValue(“exportPath”, exportPath.text); 将用户选中的文件的路径保存到 setting.ini 文件中
这里注意:需要使用 alg.fileIO.urlToLocalFile() 函数 将url转换为常规路径,不然会有一个”file:///”的前缀 3.使用 用户设置的输出路径 进行贴图导出 打开logic.js 文件,将其中的 doExportMaps 函数替换成如下 ,这里将使用alg.settings.value(“exportPath”, “”); 从 settings.ini 文件中 中读取配置好的“输出路径” 对应的下载地址: v0.0.3 配置输出路径 源码下载地址
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/85077.html