Blender2.93のジオメトリノード一覧

QiitaのBlender Advent Calendar 2021 の４日目として投稿します。
https://qiita.com/advent-calendar/2021/blender
Blender3.0が公開されましたね。
今回は2.93の話題です。

Blender2.93から　ノードでモデルを編集できるジオメトリノードが搭載されました。
ただ、どういったノードがあるのか、覚えるのも大変な数になるのと、スクリプトで制御する場合の名称を取得するのも面倒なので
ノードの一覧とスクリプトで作成する時に使う名称と　日本語表示でのノード名を一覧にしてみました

多くの場合typeの部分の表記がほぼ英語環境でノードに表示される名称に対応するようです

因みにジオメトリノードはBlender3.0やそれ以降でノードの構成が異なる等、まだまだ開発中のようです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151493/0d5d0107-777a-8c38-bc89-20d33fd24cb5.png)

以下カテゴリごとの一覧になります
## 属性
|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 | ボリュームのメッシュ化 |


因みにノードの一覧の取得は

```py:
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
```

といった感じの簡単なスクリプトで取得しました
何かの参考になればと思います