今回はあるオブジェクト周辺に配置した物をランダムに点滅表示させることをやってみました

一応単体のオブジェクトをランダム点滅させること自体は、過去記事で書き残しました

これの応用としてインスタンス機能を使ってオブジェクト周辺に別のオブジェクトを散らし、ランダムに点滅させてみることにしました

いつもの如く情報がありませんでしたが、それでも形にはなりました

まだ改善点はあるかと思いますが、せっかくなのでメモっていきます

準備

まず初めに準備としてモデラーで

  • 球体
  • 板ポリ

を用意します

板ポリは変形させたりするので、いくらかカットを入れておきます

準備ができたらレイアウトにポイッと投げ込みます

手順

それでは、さっそくやっていきます

手順は以下のようになりました

板ポリを球体に貼り付ける

STEP1
Ray Cast Geometry ノードを追加する

まずは板ポリのオブジェクトプロパティを開いて、ノード変位を有効

ダブルクリックして、ノード編集画面も展開します

STEP2
ノード内の設定を変更する

Ray Cast Geometry ノードを追加

接続は画像の通りです

ノードの繋ぎ方
  • Input の Normal
    • Ray Cast Geometry の Ray Direction
      • Ray Cast Geometry の Clipped Ray
        • Displacement の Input

ただ、まだこの時点では何も起きていません

中身を開いて貼り付け先である球体を有効する必要があります

ちゃんと機能すれば、板ポリが球体に張り付きます

このペタッと貼り付けるのが最初訳が分からなくて、まったくできませんでした

レイ方向の Y をー1にしていますが、これで上から下に向かって影響が飛ぶ設定になっているようです

板ポリをランダムに散らす

STEP1
球体にインスタンスジェネレーターを追加

次に球体のオブジェクトプロパティのインスタンスタブから「インスタンスジェネレーター」を追加

STEP2
板ポリをインスタンスオブジェクトとして追加する

「オブジェクトの追加」から板ポリを選択して追加します

追加できるとビューポート上に青い枠のボックスが表示されます

STEP3
板ポリを散らす

生成タブの「種類」の中身を変更します

いろんなものがありますが、今回は「サーフェイス」に切り替え

さらにインスタンス数を大きい数にします

じゃっく

40 くらいにしました

位置が高いので、オフセットタブからモードを均一にして Y 方向に調整

さらに回転タブの中身を以下に設定

  • 整列:法線
  • 回転軸:ローカル
  • モード:目標アイテム
  • 目標アイテム:球体
  • 目標モード:軸の整列
  • 軸:Y 軸

正しくやれているか不明ですが、これで球体の周りに板ポリがランダムに配置されます

インスタンスノードを設定する

STEP1
インスタンスノードを開く

ノードタブに移動して、ノード使用を有効して開きます

STEP2
必要なノードを追加する

必要なノード群は以下になりました

  • Time:時間
  • Add:足し算
  • Logic:条件式
  • Multiply:掛け算
  • Random Scalar:スカラーをランダムに出す

STEP3
ノードを接続と中身を調整する

画像のように接続して、ノードの中身を一部調整します

ノードの繋ぎ方
  • Input の ID Index
    • Add の A
  • Time の Frame
    • Multiply の A
      • Add の B
  • Add の Result
    • Random Scalar の Seed
      • Random Scalar の Out
        • Logic の A
          • Logic の Out
            • Instance Generator の Weight

やっていることは、素の状態だと切り替えが早すぎるので Multiply の数値を小さく変更

さらに Logic の方も条件式を調整して一度にたくさんの板ポリが出ないようにしました

結果

こちらがその結果

良い感じにパラパラとランダムに表示切替ができています

まとめ

簡単にですが、まとめはこんな感じになりました

まとめ
  • Ray Cast Geometry で板ポリを貼付け
  • インスタンスで板ポリをランダムに配置
  • Random Scalar と Logicノードが結構大事
  • インスタンスノードの Weight に繋げることでランダム点滅できる

今回はあるオブジェクト(球体)の周辺に物を配置して、ランダム点滅させることをやってみました

インスタンス機能の勉強もかねてやってみましたが、それなりにできて良かったです

もう少し使いこなせるようになりたい

あとは板ポリの球体への貼付け方法がちょっと怪しいので、もう少し良い方法が無いか探ってみます

それでは、お疲れさまでした~

おまけ

周辺に稲妻を走らせてみた

せっかくなので球体の周りを稲妻が走るようなものを作ってみました

流れとしてはこんな感じ

稲妻の画像を用意

ペイントソフトで稲妻を描きます

CLIP STUDIO PAINT のデコレーションブラシの中に「ヒビ割れ」というものがあったので、これを使うことにしました

自分で雷を描くことができなかったので、近いものを選んだ感じです

板ポリのノード変位にノードを追加する

板ポリの Displacement ノード内にいくつかノードを追加します

追加したのはこちら

  • Time:時間
  • Add:足し算
  • Multiply:掛け算
  • fdm Noise:ノイズ系のやつ
  • Scale:スカラーからベクター

接続は画像のように行いました

ここで長らく疑問だった Add ノードの効果が分かりました

じゃっく

Add ノードは結果を足す効果があることが分かった

各サーフェイスにノードを追加する

STEP1
板ポリのサーフェイスにノードを追加する

板ポリと球体の色・質感を調整していきます

板ポリの方には

  • Color:色
  • Invert:反転
  • Image:画像

の三つを追加して画像のように接続

Invert ノードを使うことで、雷模様を切り抜くといった感じです

STEP2
球体のサーフェイスにノードを追加する

球体の方には

  • Time:時間
  • Invert:反転
  • Multiply:掛け算
  • Marble:マーブル
  • Scale:スカラーからベクター

を追加して、こちらも画像のように接続しました

見た目は Marble ノード内のコントラストや歪み、ノイズスケールなどを調整して良い感じに変更

さらに Principled BSDF 内の屈折率を 1.0 にしてキレイに透明が抜けるようにしました

板ポリと球体にグロウを付与する

最後に板ポリと球体に特殊効果のグロウを付与します

グロウについては過去記事でやりました

完成した動画がこちら

どうですかね?

じゃっく

まあまあかな

一応それっぽい感じな出来栄えになりました

もうちょっと良い方法と言いますか、より正しい方法があると思いますが、とりあえず表現したい物ができたので OK

ちょっとずつですが、ノードへの苦手意識が減ってきたような気がします

以上おまけでした

参考資料

使用ツール

3DCG
  • LightWave3D
動画
  • Bandicam
  • ScreenToGif
画像
  • CLIP STUDIO PAINT PRO