QiitaのBlender Advent Calendar 2021 の4日目として投稿します。
https://qiita.com/advent-calendar/2021/blender
Blender3.0が公開されましたね。
今回は2.93の話題です。
Blender2.93から ノードでモデルを編集できるジオメトリノードが搭載されました。
ただ、どういったノードがあるのか、覚えるのも大変な数になるのと、スクリプトで制御する場合の名称を取得するのも面倒なので
ノードの一覧とスクリプトで作成する時に使う名称と 日本語表示でのノード名を一覧にしてみました
多くの場合typeの部分の表記がほぼ英語環境でノードに表示される名称に対応するようです
因みにジオメトリノードはBlender3.0やそれ以降でノードの構成が異なる等、まだまだ開発中のようです

以下カテゴリごとの一覧になります
属性
| type |
bl_idname |
翻訳 |
| ATTRIBUTE_CLAMP |
GeometryNodeAttributeClamp |
属性範囲制限 |
| ATTRIBUTE_COLOR_RAMP |
GeometryNodeAttributeColorRamp |
属性カラーランプ |
| ATTRIBUTE_COMBINE_XYZ |
GeometryNodeAttributeCombineXYZ |
属性XYZ合成 |
| ATTRIBUTE_COMPARE |
GeometryNodeAttributeCompare |
属性比較 |
| ATTRIBUTE_CONVERT |
GeometryNodeAttributeConvert |
属性変換 |
| ATTRIBUTE_FILL |
GeometryNodeAttributeFill |
属性フィル |
| ATTRIBUTE_MAP_RANGE |
GeometryNodeAttributeMapRange |
属性範囲マッピング |
| ATTRIBUTE_MATH |
GeometryNodeAttributeMath |
属性演算 |
| ATTRIBUTE_MIX |
GeometryNodeAttributeMix |
属性ミックス |
| ATTRIBUTE_PROXIMITY |
GeometryNodeAttributeProximity |
属性近接 |
| ATTRIBUTE_RANDOMIZE |
GeometryNodeAttributeRandomize |
属性ランダム化 |
| ATTRIBUTE_REMOVE |
GeometryNodeAttributeRemove |
属性削除 |
| ATTRIBUTE_SAMPLE_TEXTURE |
GeometryNodeAttributeSampleTexture |
属性テクスチャ取得 |
| ATTRIBUTE_SEPARATE_XYZ |
GeometryNodeAttributeSeparateXYZ |
属性XYZ分離 |
| ATTRIBUTE_VECTOR_MATH |
GeometryNodeAttributeVectorMath |
属性ベクトル演算 |
カラー
| type |
bl_idname |
翻訳 |
| VALTORGB |
ShaderNodeValToRGB |
カラーランプ |
| COMBRGB |
ShaderNodeCombineRGB |
RGB合成 |
| SEPRGB |
ShaderNodeSeparateRGB |
RGB分離 |
VALTORGBはノードの表記はColorRamp
ジオメトリ
| type |
bl_idname |
翻訳 |
| BOUNDING_BOX |
GeometryNodeBoundBox |
バウンディングボックス |
| JOIN_GEOMETRY |
GeometryNodeJoinGeometry |
ジオメトリ統合 |
| TRANSFORM |
GeometryNodeTransform |
トランスフォーム |
入力
| type |
bl_idname |
翻訳 |
| COLLECTION_INFO |
GeometryNodeCollectionInfo |
コレクション情報 |
| IS_VIEWPORT |
GeometryNodeIsViewport |
ビューポート判定 |
| OBJECT_INFO |
GeometryNodeObjectInfo |
オブジェクト情報 |
| RANDOM_FLOAT |
FunctionNodeRandomFloat |
ランダムFloat |
| INPUT_STRING |
FunctionNodeInputString |
String |
| VALUE |
ShaderNodeValue |
値 |
| INPUT_VECTOR |
FunctionNodeInputVector |
ベクトル |
メッシュ
| type |
bl_idname |
翻訳 |
| BOOLEAN |
GeometryNodeBoolean |
ブーリアン |
| EDGE_SPLIT |
GeometryNodeEdgeSplit |
辺分離 |
| SUBDIVIDE |
GeometryNodeSubdivide |
細分化 |
| SUBDIVISION_SURFACE |
GeometryNodeSubdivisionSurface |
サブディビジョンサーフェイス |
| TRIANGULATE |
GeometryNodeTriangulate |
三角面化 |
メッシュプリミティブ
| type |
bl_idname |
翻訳 |
| MESH_PRIMITIVE_CIRCLE |
GeometryNodeMeshCircle |
円 |
| MESH_PRIMITIVE_CONE |
GeometryNodeMeshCone |
円錐 |
| MESH_PRIMITIVE_CUBE |
GeometryNodeMeshCube |
立方体 |
| MESH_PRIMITIVE_CYLINDER |
GeometryNodeMeshCylinder |
円柱 |
| MESH_PRIMITIVE_GRID |
GeometryNodeMeshGrid |
グリッド |
| MESH_PRIMITIVE_ICO_SPHERE |
GeometryNodeMeshIcoSphere |
ICO球 |
| MESH_PRIMITIVE_LINE |
GeometryNodeMeshLine |
ライン |
| MESH_PRIMITIVE_UV_SPHERE |
GeometryNodeMeshUVSphere |
UV球 |
ポイント
| type |
bl_idname |
翻訳 |
| ALIGN_ROTATION_TO_VECTOR |
GeometryNodeAlignRotationToVector |
回転をベクトルに整列 |
| POINT_DISTRIBUTE |
GeometryNodePointDistribute |
ポイント配置 |
| POINT_INSTANCE |
GeometryNodePointInstance |
ポイントインスタンス |
| EULER |
GeometryNodeRotatePoints |
ポイント回転 |
| POINT_SCALE |
GeometryNodePointScale |
ポイントスケール |
| POINT_SEPARATE |
GeometryNodePointSeparate |
ポイント分離 |
| POINT_TRANSLATE |
GeometryNodePointTranslate |
ポイント移動 |
| EULER はノードの表記はPoint Rotate |
|
|
| |
|
|
ユーティリティ
| type |
bl_idname |
翻訳 |
| BOOLEAN_MATH |
FunctionNodeBooleanMath |
ブール演算 |
| CLAMP |
ShaderNodeClamp |
範囲制限 |
| FLOAT_COMPARE |
FunctionNodeFloatCompare |
Float比較 |
| MAP_RANGE |
ShaderNodeMapRange |
範囲マッピングA |
| MATH |
ShaderNodeMath |
数式 |
| ブール演算 Float比較 数式は選択されている計算によって表記が変化 |
|
|
ベクトル
| type |
bl_idname |
翻訳 |
| COMBXYZ |
ShaderNodeCombineXYZ |
XYZ合成 |
| SEPXYZ |
ShaderNodeSeparateXYZ |
XYZ分離 |
| VECT_MATH |
ShaderNodeVectorMath |
ベクトル演算 |
| VECTOR_ROTATE |
ShaderNodeVectorRotate |
ベクトル回転 |
| ベクトル演算は選択されている計算によって表記が変化 |
|
|
ボリューム
| type |
bl_idname |
翻訳 |
| FRAME |
NodeFrame |
|
| POINTS_TO_VOLUME |
GeometryNodePointsToVolume |
ポイントからボリューム |
| VOLUME_TO_MESH |
GeometryNodeVolumeToMesh |
ボリュームのメッシュ化 |
因みにノードの一覧の取得は
import bpy
node_group = bpy.data.node_groups[1]
if node_group.type == 'GEOMETRY':
# 選択されているノードを取得
selected_node = [n for n in node_group.nodes if n.select]
txtdata = ''
selected_node = sorted(selected_node,key = lambda n:n.type)
for n_ in selected_node:
# Markdownの表に成型
txtdata += '| %s | %s | |\n' % (n_.type, n_.bl_idname)
# テキストをクリップボードに
bpy.context.window_manager.clipboard = txtdata
といった感じの簡単なスクリプトで取得しました
何かの参考になればと思います