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
といった感じの簡単なスクリプトで取得しました
何かの参考になればと思います