【Blender×Python】ワールドデータを名称で取得する方法について徹底解説

Blender

「bpy」とは、PythonからBlenderの機能を呼び出すことができるBlender Python APIのことです。Blenderはオープンソースの3Dアニメーションソフトウェアであり、「bpy」を使うことでBlenderの様々な機能をPythonスクリプトから呼び出して利用することができます。本記事では、「bpy」を用いたワールドデータを名称で取得する方法を紹介します。

# worldsプロパティによる名称を用いたワールドデータの取得
bpy.data.worlds[WORLD_NAME]

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Blender上で、どの様にPythonを使うの?
・Blender上のPythonで、どの様にワールドデータを名称で取得するの?

また、「bpy」を使用する上で基礎的な情報は下記の記事で紹介しております。
他の「bpy」のクラスや関数について気になる方はこちらの記事をご覧ください。

worldsプロパティによる名称を用いたワールドデータの取得

bpy.data.worldsプロパティの基本構文

bpy.data.worlds[WORLD_NAME: str]
→ World: bpy.types.World

bpy.data.worldsプロパティの使い方

import bpy

SampleWorld = bpy.data.worlds["World"]
print(f"World:\n{SampleWorld} {type(SampleWorld)}")

print(SampleWorld.name)
print(SampleWorld.name_full)
print(SampleWorld.node_tree)
print(SampleWorld.node_tree.nodes)
print(SampleWorld.node_tree.links)

for key, value in SampleWorld.node_tree.nodes.items():
    print(f"[{key}] {value}, {value.type}, {[value_input.name for value_input in value.inputs]}, {[value_output.name for value_output in value.outputs]}")

for key, value in SampleWorld.node_tree.links.items():
    print(f"[{key}] {value} {value.from_node.name} ({value.from_socket.name}) -> {value.to_node.name} ({value.to_socket.name})")
World:
<bpy_struct, World("World") at 0x000001A037E32388> <class 'bpy.types.World'>
World
World
<bpy_struct, ShaderNodeTree("Shader Nodetree") at 0x000001A037802208>
<bpy_collection[2], Nodes>
<bpy_collection[1], NodeLinks>
[World Output] <bpy_struct, ShaderNodeOutputWorld("World Output") at 0x000001A037DF1EC8>, OUTPUT_WORLD, ['Surface', 'Volume'], []
[Background] <bpy_struct, ShaderNodeBackground("Background") at 0x000001A037DF1D08>, BACKGROUND, ['Color', 'Strength', 'Weight'], ['Background']
[0] <bpy_struct, NodeLink at 0x000001A037E9C588> Background (Background) -> World Output (Surface)

まとめ

「bpy」(Blender Python API)は、Pythonを使ったBlenderの開発に非常に役立ちます。この記事では、ワールドデータを名称で取得する方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to get a world data by name?

関連キーワード

blender, python, get, world, name, 取得, ワールド, 名称, 名前