はじめに
このadd-onを開発するきっかけは,炎・煙・雲などのもやっとした感じのshade nodeを作ったものの,その基底となっているobjectの形ももやっとしたほうが良いのではないかとの考えから作ってみました.
KJ Animated Morph Chaos Nodes は、選択したMesh Objectに Geometry Nodes Modifier を追加し、Object全体の拡大縮小、波打ち、Noiseによる不規則変形、Jitter、Twist、Collapseなどをアニメーション的に変化させるためのAdd-onです。
このAdd-onでは、Presetを選んでも作成されるNode構成は基本的に同じです。
Presetは「作成するNodeを変える機能」ではなく、各Parameterを特定の変化パターンになるように初期設定する機能です。
たとえば、Noise Only を選んでCreateすると、Noise関連だけが初期状態でONになり、Wave、Jitter、Twist、CollapseなどはOFFになります。後から別の変化を追加したい場合は、該当する Enable を 0 から 1 に変更し、関連Parameterを調整します。
Add-onの目的
このAdd-onの目的は、Objectに対して次のような変化を作ることです。
- X/Y/Z方向の拡大縮小
- Frameごとの大きさ変化
- Sine波による周期的な伸縮
- 表面の波打ち変形
- Noiseによる不規則変形
- Jitterによる細かい震え
- Z軸方向のTwist
- Collapseによる崩れ方向の変形
- Z方向Maskによる変形範囲制限
きれいな変形だけでなく、意図的に崩れたカオス的な変化も作れることを目的にしています。
Geometry NodesはObjectのGeometryをノードベースで変更する仕組みで、Geometry Nodes Modifierから利用できます。Set Position Nodeは各Pointの位置を制御できるため、頂点単位の波打ち・Noise・Jitter変形に向いています。Noise Texture NodeはフラクタルPerlin Noiseを評価できるため、不規則な変形の元として使えます。
対応Object
初期版では、対象は Mesh Object です。
対応例:
| Object | 対応 |
|---|---|
| UV Sphere | 対応 |
| Icosphere | 対応 |
| Cube | 対応 |
| Cone | 対応 |
| Cylinder | 対応 |
| Plane | 対応 |
| Torus | 対応 |
Curve、Text、Armature、Camera、Lightなどは初期版では対象外です。
基本的な使い方
- Add-onをインストールする
- BlenderでMesh Objectを選択する
NキーでSidebarを開くKJ Motionタブを開くAnimated Morph / Chaosを開く- Presetを選択する
- 必要に応じて
Add Subdivision before MorphをONにする Create / Replace Morph Chaos Nodesを押す- Modifier欄に追加された
KJ_Animated_Morph_ChaosのParameterを調整する
作成後は、Properties EditorのModifierタブで各Parameterを調整します。
Presetの意味
Presetは、Node構成を切り替えるものではありません。
全Node / 全Parameterは作成され、Presetによって初期値だけが変わります。
つまり、以下の理解が正しいです。
| Presetの役割 | 内容 |
|---|---|
| Nodeの種類を変える | いいえ |
| Parameterの初期値を変える | はい |
| 初期状態のON/OFFを決める | はい |
| 後から手動変更できる | はい |
たとえば Noise Only を選んでCreateすると、NoiseだけがONになります。
ただし、Wave、Jitter、TwistなどのNodeとParameterも作成されています。後からそれらをONにできます。
Preset一覧と特徴
| Preset | 初期状態の特徴 |
|---|---|
| Clean Breathing | Sine Scaleで呼吸のように拡大縮小 |
| Clean Wave | 規則的な波打ち変形 |
| Organic Pulse | Sine Scale + Wave + Noiseの混合 |
| Noise Only | NoiseだけON |
| Soft Noise | 弱いNoise変形 |
| Strong Noise | 強いNoise変形 |
| Low Poly Chaos | Noise + Jitter + Twistによる粗い変形 |
| Violent Chaos | 強いNoise、Jitter、Wave、Twistの混合 |
| Twist Growth | Z方向成長 + Twist + Noise |
| Collapse | 指定方向に崩れるような変形 |
DefaultとNoise Presetの違い
v0.1.1では、Default Presetは Organic Pulse です。
DefaultでCreateした場合:
| Parameter | 初期状態 |
|---|---|
| Enable Sine Scale | ON |
| Enable Wave | ON |
| Enable Noise | ON |
| Enable Jitter | OFF |
| Enable Twist Z | OFF |
| Enable Collapse | OFF |
一方、Noise Only でCreateした場合:
| Parameter | 初期状態 |
|---|---|
| Enable Sine Scale | OFF |
| Enable Wave | OFF |
| Enable Noise | ON |
| Enable Jitter | OFF |
| Enable Twist Z | OFF |
| Enable Collapse | OFF |
つまり、作られるNodeは同じですが、最初に有効になっている変化が異なります。
ON/OFFの考え方
このAdd-onでは、ON/OFFはチェックボックスではなく、数値で表現します。
| 値 | 意味 |
|---|---|
| 0.000 | OFF |
| 1.000 | ON |
| 0.500 | 半分だけ効かせる |
たとえばNoiseをOFFにする場合は、
Enable Noise = 0.000
NoiseをONにする場合は、
Enable Noise = 1.000
にします。
0.3 や 0.5 のような中間値も使えます。これは、単なるON/OFFではなく、効果の混合率として使えます。
Enable一覧
| Enable項目 | 対象 |
|---|---|
| Enable Sine Scale | 周期的な拡大縮小 |
| Enable Wave | 規則的な波 |
| Enable Noise | Noise変形 |
| Enable Jitter | 細かい震え |
| Enable Twist Z | Z軸周りのねじれ |
| Enable Collapse | 崩れ方向の変形 |
| Enable Z Mask | Z方向の範囲制限 |
Noise関連Parameterの意味
| Parameter | 意味 |
|---|---|
| Enable Noise | Noise全体のON/OFF |
| Noise Strength | Noise変形の強さ |
| Noise Scale | Noise模様の大きさ・粗さ |
| Noise Detail | Noiseの細かさ |
| Noise Roughness | Noiseの荒さ |
| Noise Speed | 時間変化の速さ |
| Noise Seed | Noiseパターン変更 |
| Noise Normal | 法線方向への影響量 |
| Noise X | X方向への影響量 |
| Noise Y | Y方向への影響量 |
| Noise Z | Z方向への影響量 |
Noiseを完全に消す場合は、基本的に Enable Noise = 0 にします。Noise Strength = 0 でも見た目上は消えますが、機能全体のON/OFFとしては Enable Noise を使う方が分かりやすいです。
追加で変化パターンを混ぜる方法
Presetで作成した後、追加で別の変化を混ぜたい場合は、次の操作をします。
追加したい機能のEnableを1にする
↓
関連Parameterを調整する
例として、Noise Onlyで作ったObjectにWaveを追加したい場合:
Enable Wave = 1.000
Wave Amount を調整
Wave Speed を調整
Wave Freq X/Y/Z を調整
Wave Normal / Wave X/Y/Z を調整
NoiseにJitterを追加したい場合:
Enable Jitter = 1.000
Jitter Amount を調整
Jitter Scale を調整
Jitter Speed を調整
Jitter Normal / Jitter X/Y/Z を調整
NoiseにTwistを追加したい場合:
Enable Twist Z = 1.000
Twist Amount を調整
Twist Speed を調整
調整の基本手順
最初は、1つの機能だけをONにして効果を確認するのがよいです。
推奨手順:
- すべてのEnableを0にする
- 使いたい機能だけEnableを1にする
- Strength / Amountを小さめに設定する
- Speedを調整する
- 方向Parameterを調整する
- 必要なら別の機能を追加する
複数の変化を一度にONにすると、どのParameterが見た目に影響しているのか分かりにくくなります。
代表的な設定例
Noiseだけを使う
Enable Noise = 1.000
Noise Strength = 0.05〜0.20
Noise Scale = 2.0〜4.0
Noise Detail = 6〜12
Noise Speed = 0.03〜0.15
Noise Normal = 1.000
Noise X = 0.000
Noise Y = 0.000
Noise Z = 0.000
規則的な波だけを使う
Enable Wave = 1.000
Wave Amount = 0.03〜0.10
Wave Speed = 0.05〜0.15
Wave Freq X = 3〜6
Wave Freq Z = 3〜6
Wave Normal = 1.000
Noiseに少しWaveを混ぜる
Enable Noise = 1.000
Enable Wave = 0.300
Noise Strength = 0.10
Wave Amount = 0.05
強いカオス変形
Enable Noise = 1.000
Enable Jitter = 1.000
Enable Twist Z = 1.000
Noise Strength = 0.20〜0.40
Jitter Amount = 0.05〜0.15
Twist Amount = 0.30〜0.70
Object別の使い方
| Object | 向いている表現 |
|---|---|
| Sphere | 有機的な脈動、細胞、泡、肉塊風の変形 |
| Cube | 角ばった崩れ、低ポリ風カオス |
| Cone | 先端が揺れる、ねじれる、触手的変形 |
| Cylinder | 柱のねじれ、波打つ筒 |
| Plane | 布、水面、膜、地形のような変形 |
| Torus | うねるリング、ねじれた管 |
Cubeのように頂点数が少ないObjectでは、NoiseやWaveが粗く出ます。
滑らかにしたい場合は、Add Subdivision before Morph をONにします。
逆に、低ポリの破綻感を使いたい場合は、SubdivisionをOFFにします。
Add Subdivision before Morphについて
Add Subdivision before Morph をONにすると、Geometry Nodesの前にSubdivision Surface Modifierを追加します。
目的は、頂点数を増やして、WaveやNoiseの変形を出やすくすることです。
| 設定 | 結果 |
|---|---|
| OFF | 低ポリ的、粗い変形 |
| ON | 滑らかな波・Noise変形 |
| Level高め | 変形は滑らかになるが重くなる |
カオス表現では、必ずしもSubdivisionが必要とは限りません。
粗い崩れを使いたい場合はOFFの方が向いています。
Transfer Object Scale into Nodesについて
Transfer Object Scale into Nodes は、現在のObject ScaleをGeometry Nodes側の Base X/Y/Z に移すためのOptionです。
ONにすると、
現在のObject ScaleをBase X/Y/Zにコピー
↓
Object Scaleを1,1,1に戻す
という動きになります。
通常はOFFでよいです。
ObjectのScaleをGeometry NodesのParameterとして管理したい場合だけONにします。
Animationさせる方法
各Parameterの右側にある小さい丸は、Keyframe用の欄です。
ここを使うと、EnableやStrengthなどを時間変化させることができます。
例:
Frame 1 Enable Noise = 0
Frame 50 Enable Noise = 1
このように設定すると、途中からNoise変形が出るAnimationになります。
また、
Frame 1 Noise Strength = 0.00
Frame 80 Noise Strength = 0.25
のようにすれば、徐々にNoiseが強くなります。
よくある疑問
Presetを変えたら既存Modifierも変わるか
変わりません。
PresetはCreate時の初期値に使われます。
Presetを変えた後に反映したい場合は、Create / Replace Morph Chaos Nodes を押して作り直します。
Noise Presetを選ぶと他の変形は削除されるか
削除されません。
Wave、Jitter、Twist、CollapseなどのNodeとParameterは残っています。
ただし、初期状態ではそれらのEnableが0になっているため、見た目には効いていません。
Enableを1にしたのに変化しない
関連する強度Parameterが0になっている可能性があります。
例:
Enable Wave = 1
Wave Amount = 0
この場合、WaveはONですが、強さが0なので見た目には変化しません。
NoiseをOFFにするにはどこを触るか
Enable Noise を0にします。
Enable Noise = 0.000
Noiseを少しだけ混ぜるにはどうするか
Enable Noise を中間値にします。
Enable Noise = 0.300
または、Enable Noise = 1.000 のまま Noise Strength を小さくします。
注意点・例外
このAdd-onは、綺麗な変形だけでなくカオス変形も目的にしています。
そのため、強いNoise、Jitter、Twistを組み合わせると、面の自己交差、法線の乱れ、極端な変形が起こることがあります。
これは表現としては有効ですが、次の用途では注意が必要です。
| 用途 | 注意点 |
|---|---|
| 3Dプリント | 自己交差や面破綻が問題になる |
| Boolean処理 | 変形後Meshで失敗しやすい |
| Rig付きCharacter | ArmatureやShape Keyとの順序に注意 |
| 物理Simulation | Modifier順序で結果が変わる |
| 重いScene | Subdivision Levelを上げすぎない |
【根拠】
BlenderのGeometry Nodesは、ObjectのGeometryをNodeで変更するための仕組みです。Set Position Nodeは各Pointの位置を変更するNodeであり、波打ちやNoise変形のような頂点単位の処理に向いています。Transform Geometry NodeはGeometry全体の移動・回転・Scaleに使えます。Noise Texture NodeはPerlin Noiseを評価できるため、不規則な変形の元として使えます。
【注意点・例外】
本記事のAdd-on仕様は、ここまでの会話で設計した v0.1.1 の内容に基づきます。
実機Blender 5.1でSocket名やUI表示が異なる場合は、Python APIやGeometry Nodes側の仕様に合わせて調整が必要です。
【確実性: 高】
Preset、Enable、Noise、Wave、Jitter、Twist、Collapseの使い方に関する説明は、この会話で提示したv0.1.1コード構造に基づいているため確実性は高いです。
ただし、実機Blender 5.1でのUI表示やSocket名については、環境差が出る可能性があります。

