python
黑无天大人
这个作者很懒,什么都没留下…
展开
-
houdini 20视窗卡bug脚本开发小记
前情提要:houdini20面世后,体验非常糟糕的就是动不动资产显示不更新了。官方提供重置视窗命令,但设置好的拍屏参数及视窗设置也都会被重置,也就是解决了一个问题又带了一个问题。原创 2024-06-24 18:00:57 · 390 阅读 · 0 评论 -
使用python从houdini导出arnold材质
如果要使用python从houdini导出arnold材质可以使用以下命令vops = [hou.node("/shop/arnold_vopnet1/")]htoa.material.materialExport(vops,"D:/mat.mtlx")原创 2023-02-13 12:53:34 · 637 阅读 · 0 评论 -
QT ListView 列表显示组件笔记
新建一个应用新建一个窗口新建列表展示控件给列表添加数据,python中的数据字符串列表无法直接传递给QListView,需要借助模型传递,这里使用QStringListModle。原创 2022-07-18 10:12:15 · 1151 阅读 · 0 评论 -
PtQt QtableWidget 懒加载 优化表单读取
首先找到了一篇好博文,感谢指路人:python懒加载Pandas数据到QTableWidget上运行代码示例,完美!但是有个问题是示例的做法是新建了一个滑条,来获取滑条移动信号,来修改tablewidget的内容这里存在一点小问题是无法在tableWidget上使用滚轮滑动,这个应该可以优化,但是还有一个比较大的影响是我要显示的内容存在图片,每次刷新表单估计会卡。由于我的需求有所不同,并没有特别大量的数据,只是存在图片加载慢所以我希望只加载当前页及页面前后几行图片,其他的等滚轮移动加载那么要实现原创 2022-01-24 17:04:37 · 1353 阅读 · 2 评论 -
python 正则 可选匹配(非必要匹配)
需要获取子串中的镜头号一般是3位数字 比如 001也有特殊镜头 比如 004A如果要同时匹配两种情况可以这么写import rea = re.search("[0-9]+([A-Z])?","seq011A").group()print(a)原创 2021-12-30 16:40:27 · 1095 阅读 · 0 评论 -
PyQt 标签页TabWidget纵向(竖直)排列
from PyQt5 import QtWidgets,QtCore,QtGuiimport sysapp = QtWidgets.QApplication(sys.argv)tabs = QtWidgets.QTabWidget()widget1 = QtWidgets.QWidget()widget2 = QtWidgets.QWidget()tabs.addTab(widget1, "标签一")tabs.addTab(widget2, "标签二")tabs.setTabPosi.原创 2021-12-20 10:10:22 · 3447 阅读 · 2 评论 -
python 获取当前运行的DCC工具
python是个胶水语言,python脚本可以在众多软件上运行,CG软件大多支持python写了一个脚本想在不同软件上运行,但一些细节功能上有所不同,比如在maya使用打开maya文件是使用maya.cmds.file命令打开,而其他平台是要新开maya再打开文件所以需要先获取下当前运行的DCC工具import sys,osdcc = os.path.basename(sys.executable)在maya中运行脚本,返回值是maya.exe在houdini中运行,返回值是houdini.e原创 2021-12-14 12:52:13 · 923 阅读 · 0 评论 -
python 打开文件夹与开启文件的几种方式
python有很多方式可以开启文件或打开文件夹这种的速度是最快的,其他方式会卡几秒钟(公司的工作站,个人的笔记本没卡这么久)import osos.startfile(r'C:/')其他方式import subprocesssubprocess.Popen(r'explorer "C:/"')import osos.system("start C:/")...原创 2021-12-10 16:59:21 · 3956 阅读 · 0 评论 -
pyqt 下拉列表 QComboBox 居中对齐
来源:https://stackoverflow.com/questions/23770287/how-to-center-text-in-qcomboboxfrom PyQt5 import QtGui, QtCore, QtWidgetsclass Window(QtWidgets.QWidget): def __init__(self): QtWidgets.QWidget.__init__(self) layout = QtWidgets.QVBoxLa原创 2021-12-08 16:37:30 · 1507 阅读 · 0 评论 -
pyqt开发笔记1-下拉列表
文档:https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QComboBox.html秘籍:https://www.tutorialspoint.com/pyqt/pyqt_qcombobox_widget.htm下面秘籍真是喜欢,有例子,例子几乎涵盖了我的使用需求import sysfrom PyQt5.Qt import *class combodemo(QWidget): def __init__(self, parent=Non原创 2021-11-25 15:00:34 · 683 阅读 · 0 评论 -
pyqt复习-pyqt的基本结构
一个qt程序的基本架构from PyQt5.Qt import * # 导入qt库import sysapp = QApplication(sys.argv) # 创建程序window = QWidget() # 创建窗口(空控件)window.setWindowTitle("aaa") # 设置窗口标题window.resize(500, 500) # 设置窗口大小window.show() # 展示窗口sys.exit(app.exec_()) # 退出程序面向原创 2021-11-22 18:11:05 · 530 阅读 · 0 评论 -
Ass代理转实模/Convert ass proxy to model
技术支持:高才支菜单操作/Use Menu:Arnold-Utilities-Bake Selected Geometry提取后台脚本(py)/extract command(py)import maya.cmds as cmdscmds.arnoldBakeGeo(f="D:/mod.obj")原创 2021-07-27 11:05:01 · 1410 阅读 · 3 评论 -
maya 导出层级干净的相机
import maya.cmds as cmdsimport maya.mel as melselect_cams = cmds.ls(sl=True)for cam in select_cams: origCamShapeName = cmds.listRelatives(cam,s=True) origFocalLength = origCamShapeName[0] + ".focalLength" newCamera = cmds.duplicate(cam,rr=True,name="原创 2021-07-26 16:58:18 · 889 阅读 · 0 评论 -
在虚幻引擎中使用Python批处理5:使用递归获取所有子组件
在USD文件中存在大量层级和子对象,我需要设置的参数又是在对象的组件上这里通过递归直接获取所在层级下所有组件def list_all_component(obj_list, component_class=unreal.GeometryCacheComponent): component_list = [] for obj in obj_list: component_list.extend(obj.get_components_by_class(component_class)) # 获取原创 2021-07-19 20:29:20 · 492 阅读 · 1 评论 -
在虚幻引擎中使用Python批处理3:批量修改属性
Unreal Python API 文档: - https://docs.unrealengine.com/4.26/en-US/PythonAPI/在上一篇文章在虚幻引擎中使用Python批处理2_unreal库的学习:批量重命名),通过教程学习了Python脚本的使用方式,接下来我希望能实现一些我想做的操作-批量修改对象属性。虽然在这位宝藏up主的视频中找到了可能很有帮助的指导虚幻引擎自动化 - 自动化 Python 纹理参数设置器,但我不准备先看它,我希望我可以尝试通过查阅API官方文档等其原创 2021-07-17 17:10:01 · 1208 阅读 · 1 评论 -
在虚幻引擎中使用Python批处理4_:贴图参数设置
教程地址:Unreal Engine Automation - Automated Python Texture Parameter Setter很棒的一套教程,感谢下老师!自己捣鼓脚本没成功,回来继续跟着教程学习这个视频教程用来设置贴图参数通过路径获取Asset列表循环遍历每个Asset,检查名称中是否包含定义的关键字参数设置这里是前两步的代码块,1通过路径获取Asset列表,循环遍历每个Asset,检查名称中是否包含定义的关键字import unreal# 实例化unreal原创 2021-07-16 16:32:34 · 1005 阅读 · 1 评论 -
在虚幻引擎中使用Python批处理2_unreal库的学习:批量重命名
教程地址:Unreal Engine Automation - Creating a Python Batch Rename Script很棒的一套教程,感谢下老师!上一篇我们用python和unreal打了招呼 -https://blog.csdn.net/weixin_44517539/article/details/118767840接下来,要熟悉下unreal库的使用import unrealdef rename_assets(): # 实例化unreal类 system原创 2021-07-15 21:18:17 · 667 阅读 · 1 评论 -
在虚幻引擎中使用Python批处理1_“Hello Unreal“
教程地址:Unreal Engine Automation - Creating a Python Batch Rename Script很棒的一套教程,感谢下老师!要在Unreal中使用Python,一定要先跨出关键的一步!!!import unrealdef rename_assets(): unreal.log("Hello Unreal!")rename_assets()保存py文件,调出输出日志,以便查看反馈文件-执行Python脚本,选择保存的py文件就可以原创 2021-07-15 20:32:00 · 634 阅读 · 1 评论 -
python爬虫练习
简介:One里面的音乐非常对味,但无奈不能自动下一首,车里开车很不方便,想给它下载下来,怎么下呢。首先想到爬虫,爬APP感觉是比较麻烦的,我们从网页端入手找到网页链接:http://m.wufazhuce.com/music/3419...原创 2021-02-23 15:48:04 · 208 阅读 · 0 评论 -
python爬虫练习2
https://blog.51cto.com/13992211/2353207原创 2021-03-21 18:05:38 · 271 阅读 · 0 评论 -
nuke小脚本优化项目制作_提取信息
动画制作环节输出mov带上镜头号,版本,当前帧信息能够让审片更加方便类似这样节点上就是连接Text输入信息,这里我们说下这块信息如何方便提取镜头号和版本信息:一般在nuke文件名上会以其命名,可以去调用文件名[python {nuke.root().name()}]这里调用的结果是包含路径的完整文件名,我们需要去掉路径·[python {nuke.root().name().split('/')[-1]}]这里多了个分离命令,用/分离路径取最后一个结果,也就是单独文件名但我们还需原创 2020-12-21 20:20:04 · 2525 阅读 · 0 评论 -
PyQt快速跑个流程
不是专职做开发,Gui的学习一直是时断时续,这次用到又要重新拿起了经历过前面几次的坑这次也许会顺手一点。pyqt5文档:https://www.riverbankcomputing.com/static/Docs/PyQt5/1,首先需要准备下环境这里使用虚拟环境,使用pipenv,然后就是pyqt5包的安装在cmd下执行下列步骤安装pipenvpip install pipenv创建虚拟环境cd /d D:\Cglibrary pipenv --threepipenv shell原创 2020-12-17 21:03:21 · 243 阅读 · 0 评论 -
houdini python 批处理常用命令
houdini 一些操作复杂,工作量大,或者整合工具,我们都可以借助python来进行批处理批处理主要调用hou库这里罗列了一些常用到的语句方便上手,对于没找到的命令,则可以查阅快速跳转常用命令获取选择的节点根据名称获取节点创建节点获取节点连接的上一个节点设置节点参数命令查阅技巧常用命令获取选择的节点hou.selectedNodes()#实例print("下面节点为当前所选择:")for node in hou.selectedNodes(): print(node.path())原创 2020-12-05 15:18:46 · 785 阅读 · 0 评论