Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将关键帧和修改器插入到blender中的自定义节点组值?

如何将关键帧和修改器插入到blender中的自定义节点组值?
EN

Stack Overflow用户
提问于 2019-09-14 15:06:34
回答 1查看 1.3K关注 0票数 0

在我的脚本中,我按下一个按钮,它就会添加一个自定义节点组。我希望能够知道如何为一个值添加一个关键帧,然后添加一个Fcurve修改器'Noise‘,然后能够在Group节点上更改缩放值。我知道这对你们中的大多数人(如果不是所有人)来说都很简单,但我真的是stuck..Normally我可以在网上找到正确的代码片段或答案,但我找不到任何关于这方面的东西,我将不胜感激!

因为我真的是新手,我不知道大多数正确的上下文/语法等等。

我试着像往常一样改变一个值,并尝试了我认为可能会像这样工作的代码,

代码语言:javascript
运行
AI代码解释
复制
group_node.inputs[2].anim.keyframe_insert 

这显然是错误的,但我不确定如何处理这一点..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-22 10:28:19

因此,您有一个名为"myGroup“的材质节点组,您可以使用以下命令将其添加到活动对象材质

代码语言:javascript
运行
AI代码解释
复制
obj = bpy.context.object
mat = obj.active_material
group_node = mat.node_tree.nodes.new('ShaderNodeGroup')
group_node.node_tree = bpy.data.node_groups['myGroup']

要调整节点输入值,需要设置sockets default_value属性。

代码语言:javascript
运行
AI代码解释
复制
group_node.inputs[0].default_value = 0.75

您还可以按名称访问输入套接字

代码语言:javascript
运行
AI代码解释
复制
mat.node_tree.nodes['Mix Shader'].inputs['Fac'].default_value

现在创建关键帧的棘手部分是知道animation data存储在哪里。对象保存大多数动画数据,这些数据可以在obj.animation_data中找到。因此,如果您想对设置为obj.location = (x,y,z)的对象位置设置关键帧,则可以使用以下命令告诉该对象location的数据路径为insert a keyframe

代码语言:javascript
运行
AI代码解释
复制
obj.keyframe_insert('location', frame=1)

请注意,您不需要更改当前帧,只需设置属性的值,然后插入一个关键帧,指定它将位于哪个帧上。

由于材质可以用于多个对象,因此它们有自己的动画数据,这些数据可以在其节点树mat.node_tree.animation.data中找到。因此,要为材质节点中的值设置动画,请告诉其节点树插入关键帧,并为其提供数据路径,即从节点树到值的python路径。

代码语言:javascript
运行
AI代码解释
复制
dpath = 'nodes["Group"].inputs[0].default_value'
mat.node_tree.keyframe_insert(dpath, frame=1)

fcurves存储在animation_data.action.fcurves中。为了得到你想要的,你可以通过它的数据路径找到它,对于像location这样的数组值,你还可以指定一个你想要的子值的index

代码语言:javascript
运行
AI代码解释
复制
fc = mat.node_tree.animation_data.action.fcurves.find(dpath)

现在您有了fcurve,添加一个modifier并设置它的一些属性。

代码语言:javascript
运行
AI代码解释
复制
nmod = fc.modifiers.new("NOISE")
nmod.scale = 1.25
nmod.phase = 2.3
nmod.strength = 0.7
nmod.depth = 1.35
nmod.offset = 0.23
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57936733

复制
相关文章
如何将 Matplotlib 可视化 插入到 Excel 表格中?
在生活中工作中,我们经常使用Excel用于储存数据,Tableau等BI程序处理数据并进行可视化。我们也经常使用R、Python编程进行高质量的数据可视化,生成制作了不少精美优雅的图表。
朱小五
2022/04/11
3.7K0
如何将 Matplotlib 可视化 插入到 Excel 表格中?
节点插入
对于早期的w3c浏览器,并没有实现ie的私有方法insertAdjacentHTML(目前已是HTML5标准),可以用appendChild模拟该方法的实现: if(typeof HTMLElement !=='undefined' && !HTMLElement.prototype.insertAdjacentHTML){ var insertAdjacentElement = function(node,position,el){ switch (
欲休
2018/03/15
1.7K0
js插入节点appendChild和insertBefore
首先 从定义来理解 这两个方法:  appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点。语法:appendChild(newchild)  insertBefore() 方法:可在已有的子节点前插入一个新的子节点。语法 :insertBefore(newchild,refchild)  相同之处:插入子节点  不同之处:实现原理方法不同。       appendChild方法是在父级节点中的子节点的末尾添加新的节点(相对于父级节点 来说)。       insertBefore 方
蓓蕾心晴
2018/04/12
3K0
属性 元素的内容 创建,插入和删除节点 虚拟节点
表示HTML文档元素的HTMLElement对象定义了读/写属性。映射了元素的HTML属性。HTMLElement定义了通用的HTTP属性。以及事件处理程序的属性。特定的Element子类型为其元素定义了特定的属性。
mySoul
2018/08/07
2.4K0
Blender 甜甜圈制作
- `吸附` 选为 **面** 选中 **投影到自身** 和 **项目的独立元素**
用户9786230
2022/05/29
1.3K0
Blender 甜甜圈制作
【说站】js中insert如何插入节点
以上就是js中insert插入节点的方法,希望对大家有所帮助。更多js学习指路:js教程
很酷的站长
2022/11/24
2.8K0
【说站】js中insert如何插入节点
pageadmin CMS教程:模板中获取自定义文件的url节点值
我们通过*Route.config配置自定义文件时,模板中可能会用到url中的一些节点,下面这段配置一个自定义搜索页面
Almost Lover
2019/04/04
1.4K0
jquery 元素节点操作 - 创建节点、插入节点、删除节点
前面的篇章对于jquery的元素操作大部分是使用html()的方式来操作,这种直接使用字符串创建的方式也是性能最高的。
Devops海洋的渔夫
2019/05/31
9.1K0
Blender+Geant4一文入门3D模型文件导入
与专业3D建模软件相比,geant4的3D绘制低效且不直观。如果你既想要3D的灵活设计,又想Geant4把它用起来,做到从图1到图2的效果:
梁佐佐
2020/09/04
2.6K0
Blender+Geant4一文入门3D模型文件导入
39 - 读取XML节点和属性值
在当前目录下有一个products.xml 文件,要求读取该文件中products节点的所有子节点的值以及子节点的属性值 <!-- products.xml --> <root> <products> <product uuid="1234"> <id>10000</id> <name>iphone9</name> <price>9999</price> </product> <product uuid="4321"> <id>20000</id> <name>
ruochen
2021/05/25
2.6K0
39 - 读取XML节点和属性值
python在mysql中插入null空值
python在mysql中插入null空值 sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (%s)”%‘NULL’ %s没有引号,可以将“null”中null写进数据库,达到NULL值效果。
kirin
2020/12/03
8.4K0
链表头部插入节点
先创建一个头节点指针置NULL代表链表现在为空,我们通过insert函数给增加的节点分配内存,然后让节点的link指向head(此时head是NULL) 再将head指向此节点,我们大致上就创建出了下图的节点
用户7272142
2023/10/11
2160
链表头部插入节点
链表任意位置插入节点
之前我们的链表代码只能从头部插入节点,也就是通过修改head指向新节点,然后新节点指向head之前指向的节点达到增加头节点的目的。
用户7272142
2023/10/11
1920
链表任意位置插入节点
pdf格式的图片如何插入到word中
1,在R中将图片保存为pdf格式 2,通过在线网站,将pdf转为png 3,将png粘贴到word中即可
邓飞
2020/12/15
4.2K0
如何将元素插入数组的指定索引?
数组是一种线性数据结构,可以说是编程中最常用的数据结构之一。修改数组是一种常见的操作,这里,我们来讨论如何在 JS 中数组的任何位置添加元素。
前端小智@大迁世界
2021/03/02
3K0
如何使用Hutool插入图片到Excel中?
随着办公自动化的发展,越来越多的企业和个人开始使用Excel进行数据分析和处理。在Excel中,除了可以插入文字和数字之外,还可以插入图片,这为我们展示数据、制作报表等提供了更加丰富的方式。但是,在Excel中插入图片并不是一件很容易的事情,需要借助于一些工具来实现。本文将介绍如何使用Hutool插入图片到Excel中,并给出详细的代码示例。
网络技术联盟站
2023/06/05
2.3K0
在单链表中删除值相同的多余节点的算法
思路:分别使用两个指针p和q, 因为可能q->val==p->val时,此时要删除q所指向的节点,所以需要一个s指针记录q,防止发生断链。
lexingsen
2022/02/24
2.6K0
如何将SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
深蓝studyzy
2022/06/16
3.1K0
Maven 如何将本地的项目发布到 Archiva 中
为了一些私有的项目发布到公司内部的 Archiva 中,如何使用 Maven 进行发布。
HoneyMoose
2020/04/11
2.2K0
Maven 如何将本地的项目发布到 Archiva 中
点击加载更多

相似问题

在Blender中获取关键帧点数组

14

blender _ python中的连接节点

12

命名组+x修改器

11

收集选项组值并将值插入到表中

12

如何使用Python在Blender 2.78a中制作关键帧?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档