当ブログのリンクにはプロモーションを含む場合がありますのでご了承下さい

【Substance 3D Painter】新バージョン 10.0がリリース!

2024年5月16日にSubstance 3D Painterの新バージョンである10.0がリリースされました!

新機能

今回のリリースでは主に以下の4つが新機能として取り上げられています。

テキスト機能の強化

アセットパネルでフォントが一覧でき、ドラッグ&ドロップで気軽に使用できるようになっているようです。

一覧できるので使いやすくなっていますね!

Adobe Illustratorファイルをサポート

Substance 3D Assetsを直接ダウンロード

Python レイヤースタックAPIの追加

効率化厨としてはPythonの拡張が気になるぞ!

イラレのファイルが読み込めるのいいなあ
パスもそのまま編集できるの?どうなの?

Adobe公式ブログでも新機能紹介記事があがっていますので要チェックです。

https://blog.adobe.com/jp/publish/2024/05/27/cc-immersive-new-major-new-release-adobe-substance-3d-painter

Pythonやってみた

layerstackモジュールが追加されたようですね。

サンプルコードを実行してみました!

import substance_painter as sp

stack = sp.textureset.get_active_stack()

stack_root_nodes = sp.layerstack.get_root_layer_nodes(stack)

bottom_layer = stack_root_nodes[len(stack_root_nodes) - 1]
position_stack_bottom = sp.layerstack.InsertPosition.below_node(bottom_layer)

my_group = sp.layerstack.insert_group(position_stack_bottom)
my_group.set_name("My Group")
my_group.set_collapsed(False)

position_group_content = sp.layerstack.InsertPosition.inside_node(my_group, sp.layerstack.NodeStack.Substack)
my_fill_layer = sp.layerstack.insert_fill(position_group_content)
my_fill_layer.set_name("My Fill Layer")

fill_layer_resource = sp.resource.search("s:starterassets "
                                         "u:substance "
                                         "n:Paper\\ Grainy=")[0]

my_fill_layer.set_material_source(fill_layer_resource.identifier())

position_effect_stack = sp.layerstack.InsertPosition.inside_node(my_fill_layer, sp.layerstack.NodeStack.Content)

my_fill_effect = sp.layerstack.insert_fill(position_effect_stack)
my_fill_effect.set_name("My Fill Effect")

if not my_fill_layer.has_mask():
    mask_background = sp.layerstack.MaskBackground.White 
    my_fill_layer.add_mask(mask_background)

position_mask_effect_stack = sp.layerstack.InsertPosition.inside_node(my_fill_layer, sp.layerstack.NodeStack.Mask)

my_mask_fill_effect = sp.layerstack.insert_fill(position_mask_effect_stack)
my_mask_fill_effect.set_name("My Mask Fill Effect")

filter_resource = sp.resource.search("s:starterassets "
                                     "u:filter "
                                     "n:Blur=")[0]
sp.layerstack.insert_filter_effect(position_effect_stack, filter_resource.identifier())

smart_mat_resource = sp.resource.search("s:starterassets "
                                        "u:smartmaterial "
                                        "n:Bronze\\ Armor=")[0]

sp.layerstack.insert_smart_material(position_group_content, smart_mat_resource.identifier())

これをMeetMatくんで実行してみると、グループレイヤーや塗りつぶしレイヤー、エフェクトの追加などが自動実行されました。

フィルターなどエフェクト系の操作も出来るのは良さそうですね。

気になった方はチェックしてみてください!