问题标签 [nuke]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
applescript - applescript 在终端中渲染 nuke 脚本
我希望能够将 Nuke 脚本放到 Applescript 应用程序上,然后让 Nuke 脚本开始在终端中渲染。
该脚本需要获取所放置项目的文件路径,将其与“nuke -xi”一起粘贴到终端窗口,然后按回车键。到目前为止我有..
和...
任何想法将不胜感激。
c++ - 针对 Boost 库为 Nuke 编译插件
我正在尝试为 Nuke 编译一个与 boost 库有依赖关系的插件。我已经填写了 headers/libs 搜索路径并添加了库以将二进制文件与 XCode 中的库链接。
它编译得很好,但是当 Nuke 尝试加载我的插件时,会弹出错误消息:
未加载库:libboost_atomic-mt-libstdc++.dylib
我相信必须在 XCode 中破解更多内容。有任何想法吗?
nuke - 如何读取 nuke 脚本文件并列出其读取节点
我知道我们可以使用 -t 标志在终端模式下打开 nuke。
有没有办法批量打开 nuke 脚本并列出所有存在的读取节点。
python - Nuke 访问错误的 Python 版本
我遇到了一个与此非常相似的问题: 使用多个版本的 Python
尽管我相信我的问题的背景不同,但足以保证一个单独的问题。我在尝试启动 The Foundry's Nuke 的非商业版本时收到此错误。错误的表现与此类似:
http://community.thefoundry.co.uk/discussion/topic.aspx?f=197&t=113695
,除了命令提示符立即关闭之前返回的错误信息是第一个链接中显示的错误信息。这让我相信 Nuke 正在尝试访问错误的 Python 版本(目前它正在尝试访问 Python 3.5)。
假设我的思路是正确的,我该如何更改 Nuke 尝试访问的 Python 版本?我应该提一下,Foundry 论坛链接中的任何建议都没有被证明是成功的。根据我所阅读的内容,Nuke 使用的最新版本的 Python 是 2.7。所以更具体地说,我怎样才能让 Nuke 访问 Python 2.7 而不是 Python 3.5?两者都安装在我的 64 位 Windows 10 桌面上。
python - 使用 .ui 文件的 PySide 小部件意外地被垃圾收集
我有一个在 Nuke 中运行的 PySide QMainWindow。应用程序使用的一些小部件使用.ui
在 Qt Designer 中创建的文件。
直到最近,QMainWindow 类还没有被赋予父级。因此,当 Nuke 被最小化或改变焦点时,QMainWindow 并没有最小化或获得焦点。
为了解决这个问题,在创建 QMainWindow 时,我使用该QApplication.activeWindow()
方法获取一个对象以将 QMainWindow 作为父级提供。
如果我这样做,QMainWindow 将最小化并使用 Nuke 更改焦点。但是,当访问使用文件创建的任何小部件的子小部件时.ui
,它会引发异常
我正在使用与此非常相似的方法将文件加载.ui
到我的 QWidget 类中
为什么要删除 C++ 对象(垃圾收集)?当我为 QMainWindow 指定父级时,为什么行为会发生变化?是否有另一种方法可以将 QMainWindow 设置为 Nuke 的父对象,以便正确最小化和聚焦,或者以不同的方式加载.ui
文件而不会遇到此垃圾收集问题?
python - 使用 Python 在 Nuke 中将选定的节点名称放入列表或元组中
我正在尝试在 Nuke 中使用 Python 获取所选节点的名称列表。我努力了:
这给了我所选节点的名称,但作为单独的字符串。我无法对他们做任何事情来组合每个字符串。如果我选择了三个合并,在 Nuke 脚本编辑器中我会得到:
结果:合并 3 合并 2 合并 1
如果我将最后一个变量 n 括在括号中,我会得到:
这就是我知道它们是单独的字符串的方式。我找到了另一种返回选定节点的方法。我用了:
我得到了奇怪的名字,比如 node3a7c000,但是这些名字在任何调用节点的东西中都有效,比如 nuke.toNode(),它们都在一行上。我试图将这些结果强制转换为列表或元组,如下所示:
结果:node3a7c000 node3a7c400 node3a7c800
结果:('node3a7c000','node3a7c400','node3a7c800')
我的结果看起来具有元组的标准构造,但如果我尝试从元组中调用第一个值,我会得到一个括号。这就好像我创建的元组仍然是一个字符串。
我能做些什么来收集选定节点名称的列表或元组吗?我不确定我做错了什么,似乎我的最后一个解决方案应该有效。
python - Python 解析具有复杂层次结构的 XML - Nuke9.0v8
我正在使用 NukeX9.0v8、Adobe Premiere Pro CC 2015 和 nukes 内部 python 中断器。
我是一名 vfx 艺术家,我正试图围绕解析 xml 文件的最佳方法展开思考,以便:创建文件夹结构,批量创建 .nk comp 文件,并在我制作 .nk 文件时插入特定部分中的数据。 nk 补偿。我对如何孤立地做这些事情有一点了解,但是把它们放在一起,并试图找到关于这种复杂解析的教程,让我停了下来。
我知道这个范围很大,但任何小的建议都会受到赞赏。
现在我有一个 nuke comp,它有一个节点树,它接收相机输入并将它们拼接成 360 度视频的 latlong 图像,我将把它包装成一个小工具,用于每种不同类型的钻机配置。这只是简化了创建的 .nk 文件,并且我可以公开我可以将数据输入的小玩意的部分。
每天我们都会收到大量来自拍摄的素材,我们必须为每个镜头制作一个新的 .nk 合成并设置为立即渲染。我想做的是让现场的人创建一个首映项目并根据这个文件夹结构组织文件。该首映项目将导出为 .xml 文件。
首映时的结构设计。
- Day_01(拍摄当天)
- -^-R001(镜头的卷号。R指相机类型)
- --^-R001_C001(镜头名称)
- ---^-Acamera 剪辑(文件名路径,视频点为帧#)
- ---^-Bcamera 剪辑(文件名路径,视频点为帧#)
- ---^-Ccamera 剪辑(文件名路径,视频点为帧#)
现在,在 Nuke 内的脚本面板中,我可以输入要查找哪一天的 xml 在哪里的信息。然后假设查看卷的每个文件夹名称,并使用第一个字母(R 代表 RED 摄像机)并在里面查找剪辑文件夹。然后,它使用 pathurl 目录存储驱动器上的相机文件,并且还可以获取数据,如 xml 中存在的入点和出点。如果我更新缝合过程,我还需要输入模板版本的积分。这将告诉 nuke comp 使用哪个 gizmo。
这是我在 Nuke 中的面板。
我不知道如何最好地阅读 xml 文件。我看过的所有教程都非常基础DOM
,elementtree
处理直接代码以读取已知的 XML 标记并将数据分解为简单的str
输出。
我需要输入变量,然后将解析限制在树的特定部分,然后进入未知的层次结构设置并查看内部内容,然后决定如何处理找到的内容。
这是我的测试 XML 文件的示例。最终的计划是使用其他不同类型的卷筒来引用不同的摄影机类型,但现在我只使用 3 个摄影机红色装备。
这是一个非常大的文件,所以这里是一个 pastebin:http://pastebin.com/vLaRA0X8
基本上我想将脚本限制为在我的变量中查找<bin><name>'daynumber'</name>~~~~</bin>.
在这种情况下,在Day_00
bin 中查找。如果根层次结构中还有其他内容,我想将其作为序列忽略,未使用的剪辑和其他数据可能会变得非常非常大。然后我想daynumber
在nk_output_dir
&中创建目录,dnx_render_dir
以便拍摄当天的所有内容都包含在该文件夹中。
XML 文件中令人讨厌的部分是 bin 的名称是其<bin>
自身的子项,因此一旦找到 bin 名称,<children>
该 bin 中的任何一个都将与<name>
. 我找不到定位标签的示例代码,然后寻找使用同一分支中的标签而不是它的子标签。
现在它已经找到了当天的垃圾箱,我希望它开始查找<children></children>
. 例如,在我在&中<bin><name>R001</name>~~~</bin>
创建的 Day_00 文件夹中为它在结构的这一部分中找到的每个 bin 创建目录。每次相机重新加载时,都会累积到 R002、R003 等。Gopros 等不同的相机类型也会创建 G001、G002、G003。nk_output_dir
dnx_render_dir
然后我想在<children>
上面的垃圾箱中查找并找到里面的所有垃圾箱,并在daynumber<bin><name>R001_C001</name>~~~</bin>
中创建文件夹。这是用户创建的卷号和剪辑号。(R001_C001、R001_C002 等)这将是新剪辑名称、将生成的 .nk 压缩文件的名称以及写入节点上渲染的文件名。nk_output_dir\
\~whatever bin this is contained~\~name of this bin~\
这里的目标是在我选择的目录中重新创建 bin 文件夹结构nk_output_dir
。
那dnx_render_dir
是为了稍后插入我的 nuke 脚本的写入节点到文件应该呈现到的位置。它是分开的,因为我有一个不同的 RAID 驱动器,它会随着它们填满而改变。渲染只需要放在一个目录中,daynumber\~rollnumber~
但不需要限制到剪辑名称的文件夹中。
这是我真正迷路的地方。现在,因为我必须考虑用户错误,所以我不能完全确定我需要在树中走多深。我知道我想要<pathurl>~</pathurl>
可以插入到我制作的 .nk (nuke) 脚本中的那个。对于红色相机文件,它们可以是直接在此处的 .R3D 文件,也可以是 2-3 个 bin 深度的文件夹结构。我知道我不能 100% 依赖片场的人在制作这个垃圾箱的方式上保持一致。
我可以信任他们做的就是确保它们按正确的字母顺序排列。如果您查看 xml,那么它们的顺序很重要。我也知道我是否正在查看我需要 3 个的 R### 滚动箱,<pathurl></pathurl>
如果我正在查看 G### 内部,我需要 6 个,而对于 C###,我只需要 5 个。
它们的顺序很重要,因为它们可以重命名 `~~~~ 中的名称标签以重命名错误设置的摄像机,而无需重命名源文件。(这会破坏其他程序所需的重要元数据)
在树的这一部分中,我还想<clip id=~><in>###</in>
抓住标记帧偏移量。如果摄像机不同步,可以设置它们的起点。但当然这个标签不是孩子的<pathurl></pathurl>
,实际上是 3 父母!而且这个标签不会出现在每个剪辑上,所以我不能先寻找它!
因此,一旦我解析了所有这些,我想要的信息就是。
- .xml 文件中包含的 XML 的原始 bin 文件夹结构
daynumber
。取 bin 的名称并在nk_output_dir
(Day_00/R001/R001_C001 等)中构建相同的文件夹结构 - 我还想
daynumber
在文件夹中创建一个目录,dnx_render_dir
并为每个引用相机胶卷的 bin 创建一个目录。 - 根据剪辑名称是否以 R、G 或 CI 开头,希望能够访问该名称以选择制作哪种 .nk。
- 我想要每个引用剪辑和插头的 bin 的 pathurl 信息。
<in>
如果该剪辑有任何信息,我也想要任何信息。这样我就可以将它插入到我的 nuke gizmo 的读取节点信息中。
我想一旦我弄清楚如何解析如此复杂的 xml 树,我就可以大惊小怪地摸索剩下的过程。
我真的很难找到解析这样一个复杂的 XML 文件的示例。
linux - 是否有类似于 Quartz Composer 的应用程序,但适用于任何通用类型的数据?
我一直在寻找一个桌面 GUI 应用程序,它允许连接类似于 Quartz Composer 的已定义节点。节点本身不需要任何功能,我只需要它用于视觉表示。
一些例子:
http://bergie.iki.fi/blog/inspiration-for-fbp-ui/
以及本项目的节点编辑器: https ://github.com/vurtun/nukear
是否有一个单一的术语来定义这种类型的图表?我怀疑节点图,但谷歌搜索任何带有节点的东西往往也有 .js
python - 在不同的线程中运行进度条 - Pyside
我想在与我的其余代码不同的线程中运行进度条,但我想控制进度条如何从我的主线程更新。
这是可能的吗?
这是我到目前为止所拥有的:
这似乎是在线程内正确运行进度条,但它完全由 run 函数控制。
我尝试删除 run 函数并将此代码添加到我的主线程:
但这似乎不起作用。
对此的任何帮助都会很棒...谢谢