SubstanceDesinger材质球被锁

Substance Designger 打开后图层右下角有锁,而且也无法查看具体节点?
这个问题可以解决嘛,如果不行的话我也想请教一下怎么给自己的材质球上锁

img

通常在 Substance Designer 中,如果您看到图层右下角有锁图标,这意味着该层处于“只读”状态。这可能是由于该图层的属性设置或您在使用共享资源时造成的。

要解决此问题,请尝试以下步骤:

确保您有适当的权限来编辑该图层,并且该图层未被其他用户锁定。

如果您正在使用共享的资源库,则请确保您拥有足够的权限以编辑该共享。如果您没有权限,请联系资源库管理员以获取更多信息。

如果问题仍然存在,请尝试刷新 Substance 设计器并重新打开此文件。

如果您想在 Substance Designer 中锁定自己的材质球,请按照以下步骤操作:

首先,在添加任何内容之前,选择“Create a Package”。

将所有层和节点放入此包中。

右键单击该包并选择“Set as Read-Only”选项,这将锁定所有内容。

要进行更改,请转到包结构中并在需要更改内容的节点上右键单击并选择“Duplicate”,然后重命名它们。

更改完成后,保存您的更改并关闭文件。

嗯,首先是要看你是否有权限,在图层中上锁是为了防止他人窃取。如果你要想自己给作品上锁,可以右键单击Substance Designer中的包并选择“Set as Read-Only”选项,可以将该包中的所有材质球锁定,从而防止未经授权的编辑或误操作。请注意,这会将包中的所有材质球都设为只读状态,因此在确认要进行此操作前,请确保不需要编辑其中的某些材质球。

可以借鉴下

Substance Designer是Substance贴图工具产品系列之一,它可以帮助美术师高效地创建并且重复应用贴图。SubstanceDesigner是首款能够混合及应用位图, 矢量图和其他元素的专业贴图工具,使用它能够制作复杂的贴图。 用SubstanceDesigner制作的贴图具有许多传统位图不具备的优势。后者相对静止且用线性方式制作,而用Substance Designer制作的贴图更具活力,在制作的每个阶段都可以被高度的自定义。



Allegorithmic的Substance技术为3D图形而提供的、一个新的、采取传统ASSET(资源)的创造过程。Substance替代了原来创建的、固定的、不可改变的位图作为纹理使用的状态,它是动态的、实时的ASSET(资源),在安装时,加载时,甚至运行时都可以被修改。这样的结果是产生了一个更加灵活、强大的ASSET(资源),特别适合于下一代的3D图形。它最关键的在于把传统的位图、矢量图、程序纹理技术结合了起来。Substance是一个混合型ASSET(资源),他结合了传统和程序的元素。



Substances是一场3D图形的革命。一个包含春季,夏季和冬季的Scene(场景)需要三套传统的纹理位图。而一个同样的Scene(场景)只需要设计一组合适的Substs。

Substance是一个xml文件, 描述了纹理的合成信息。Substance最终被渲染成位图的形式放入建模软件或者3D游戏引擎中,使它拥有更强大的实时渲染结果控制的能力。(例如:生成的材质球放入其他软件后,在其他软件中还是提供Substance自带的实时渲染控制项,用户可以通过这些控制项来改变材质球效果,这是其他同类软件所有没有的)

Substances作为一种描述文件被存储在一个文本文档里,而是不作为一个固定的位图设定来存储

Substance Designer材质球
可以借鉴下

https://blog.csdn.net/weixin_43803133/article/details/116996856

Substance Designer 中图层右下角的锁表示该图层已被锁定,不能进行编辑和修改。如果无法查看具体节点,可能是因为此图层已经被锁定了。

要解锁图层,可以简单地右键单击图层并选择 "Unlock Layer"。如果想要锁定自己的材质球以防止其他人更改它,可以在 "Outputs" 面板中为材质球添加 "Instance Parameters",在其中设置需要的属性,然后对材质球进行锁定。步骤如下:

  1. 在 "Outputs" 面板中选择您要添加参数的节点 (例如,如果您要将材质球上的颜色属性锁定,则应该选择 "Base Color")。

  2. 点击 "Create new instance parameter" 按钮,在弹出的对话框中设置参数值。

  3. 对参数进行设置后,右键单击该参数,并选择 "Lock Value" 以将其锁定。

  4. 要解锁参数,请右键单击该参数,并选择 "Unlock Value"。

现在,材质球中的这些参数已经被锁定,并且必须在 "Instance Parameters" 中进行修改。

该回答参考ChatGPT:
关于Substance Designer中图层右下角的锁,这是用于锁定图层以防止意外修改的功能。如果您无法查看具体节点,可能是因为该图层已被锁定。您可以通过右键单击该图层并选择“解锁”来解除锁定。

如果您想给自己的材质球上锁,可以在Substance Designer中创建一个新的图层,并在该图层上添加您想要锁定的节点。然后,右键单击该图层并选择“锁定”即可将其锁定。这样,您就可以防止意外修改该节点,确保您的材质球的稳定性和一致性。

答案由GPT-4Plus大模型(语音)与博主@晓码自在合作编写:

Substance Designer中图层右下角出现锁,且无法查看节点,这通常是因为该图层被锁定所致。

要解决这个问题,可以尝试以下操作:

  1. 点击图层右下角的锁图标,解锁该图层。这会恢复图层的可编辑状态,节点也会重新显示。

  2. 如果解锁不成功, posssibly该图层为别的Substance共享或者商店资产,你没有修改权限。这时可以:

    • 联系资产拥有者,请求提供解锁的密钥或文件。有了密钥或文件,在Substance Designer中使用"Add Resource"功能导入,即可解锁图层。
    • 如果无法联系到资产拥有者,只能重新创建类似的图层。这需要对材质及节点有一定了解,可能会有些难度。
  3. 如需给自己的材质球上锁,可以:

    • 选中要上锁的图层,点击"Padlock"按钮或"Layer > Lock Layer"菜单进行锁定。
    • 也可以在"File > Export As..."功能中选择"Locked .sbsar File"文件格式导出,这会自动锁定所有图层,导出的文件无法编辑。
    • 如果想自定义锁定效果,在"Layer > Lock Channel"菜单中选择要锁定的通道(Albedo,法线,高光等),这会只锁定选定的通道,其他通道仍然可编辑。

上述步骤中,解锁图层的方法比较简单,主要是通过点击锁图标解锁或导入密钥文件。给材质球上锁需要使用Substance Designer的锁定功能,通过全局锁定、锁定通道等方式实现不同等级的锁定。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
如果你的材质球被锁住了,你可以尝试以下几个解决方法之一:

  1. 解锁材质球

在Substance Designer中,你可以通过右键单击材质球,在弹出菜单中选择“Unlock all layers”来解锁。

  1. 解除只读状态

有时候材质球的只读状态可能会导致无法编辑和查看节点。你可以通过右键单击材质球,在弹出菜单中选择“Make editable”来解除只读状态。

  1. 重新打开材质球

有时候重新打开材质球也可以解决锁定问题。你可以尝试通过关闭Substance Designer并重新打开来解决这个问题。

  1. 给自己的材质球上锁

如果你想给自己的材质球上锁,你可以通过以下过程来完成:

1) 打开Substance Designer并打开你的材质球。

2) 在材质球图层面板中,选中你想要上锁的图层。

3) 在图层选项面板中,将“Read-only”选项切换为“Locked”。

这样你的图层就会被锁定并且无法编辑和查看。

其中,第4个解决方法是跟你的问题相关的。上面的步骤可以通过以下代码来实现:

import sd
from sd.api.sdproperty import SDPropertyCategory

# 打开你的材质球
context = sd.getContext()
pkg_mgr = context.getSDApplication().getPackageMgr()
pack = pkg_mgr.getUserPackage('path/to/your/package.sbs')
graph = pack.load()

# 获取需要上锁的节点
selected_layers = graph.getCurrentSelectedOutputs()
if not selected_layers:
   print('请选择需要上锁的节点')
   sys.exit()

lock_property = None
for layer in selected_layers:
   layer_node = graph.getOutputFromId(layer)
   property_inst = layer_node.getPropertyFromId('readOnly')
   if not lock_property:
      # 在第一次迭代时获取SDPropertyCategory
      lock_property = property_inst.getPropertyGroup().getCategoryFromId(SDPropertyCategory.Locked)
   # 通过SDPropertyCategory.Locked值来设置读取权限
   property_inst.setValue(lock_property, True)
print('图层已上锁')

希望这些解决方法能够帮助你解决问题。
如果我的回答解决了您的问题,请采纳!