虚数とは?その定義、役割、そして応用分野について:UnrealEngine
虚数とは、数学における概念で、実数では表せない数のことです。特に、虚数単位 を用いて表される数を指します。虚数単位 とは、次の性質を持つ数です:
この性質を満たす数 は、実数では存在しません(実数の平方は必ず非負だからです)。虚数は、通常次のような形で表されます:
ここで:
例えば:
虚数の役割
虚数は、複素数というより大きな数の集合の一部を構成しています。複素数は、実数を拡張したもので、代数方程式の解を完全に記述するために導入されました。
例えば、次の方程式は実数解を持ちません:
解は となり、虚数が必要です。
応用分野
虚数が生まれた背景は少し抽象的かもしれませんが、実際には非常に実用的で、私たちの周りの技術や科学に深く関わっています!
Unreal Engine Niagara:Add Velocityモジュールについて パーティクルに速度を加える
Niagaraの「Add Velocity」モジュールは、パーティクルに対して速度を加える機能を提供します。このモジュールを使うと、粒子の動きに特定の方向性やダイナミズムを与えることができ、動きの制御やエフェクトの表現に役立ちます。
「Add Velocity」の概要
- パーティクルに「速度」を加える(既存の速度に足し合わせる)ためのモジュール。
- エミッタ内で速度をコントロールする基本的な手段。
- 任意の方向、強さでパーティクルを加速させたり、複雑な動きを構成するのに使用されます。
主な用途
-
方向性のある動き
- 一定方向への移動を実現。
- 例: 弾丸の発射、風による流れ、粒子の吹き飛び。
-
複雑な動きの追加
- 他のモジュールと組み合わせて、カスタムな動きや力学を作成。
- 例: Gravity Forceと組み合わせて放物線運動を実現。
-
ランダム性の付加
- ランダムな速度を与えて粒子の動きを多様化。
- 例: 爆発エフェクトの破片や煙の散らばり。
設定項目
「Add Velocity」モジュールには以下のような調整可能なパラメータがあります。
-
Velocity (速度)
- 速度のベクトルを直接設定します。
- 例: (X: 100, Y: 0, Z: 200) → X軸に沿って100、Z軸に沿って200の速度が加えられる。
-
Scale (スケール)
- 速度に掛け合わせる倍率。
- これを使用すると、速度ベクトルを柔軟に調整可能。
-
Random Range (ランダム範囲)
- 速度にランダム性を追加するためのオプション。
- 例: X軸の速度を「50~150」の範囲に設定してランダムな動きを作成。
-
Execution Mode (実行モード)
- モジュールがどのタイミングで適用されるかを指定。
- Spawn Only: 粒子が生成された瞬間にのみ適用。
- Update Every Frame: 毎フレーム実行して連続的に速度を加算。
- モジュールがどのタイミングで適用されるかを指定。
使用手順
-
Niagaraシステムを作成
- 新しいエフェクトを作成するか、既存のものを編集します。
-
Add Velocityモジュールを追加
- 「Particle Update」または「Particle Spawn」のモジュールリストから「Add Velocity」を選択。
-
パラメータを調整
- 必要に応じて速度やランダム性を設定。
-
他のモジュールと組み合わせる
- DragやGravityなどのモジュールと併用して、動きの挙動をさらにカスタマイズ。
実践例
1. 風による粒子の流れ
- 煙や葉っぱが風に流れる動きを再現。
- 設定例:
- Velocity: (X: 200, Y: 0, Z: 0)
- Random Range: (X: ±50)
2. 爆発の破片
- 爆発の際に破片が四方に散らばる動きを作成。
- 設定例:
- Velocity: (X: 0, Y: 0, Z: 300)
- Random Range: (X: ±200, Y: ±200, Z: ±100)
3. 放物線運動
- 重力の影響を受けた放物線運動を表現。
- 設定例:
- Velocity: (X: 500, Y: 0, Z: 600)
- Gravity Forceを併用。
注意点
- Add Velocityは「加速度」ではなく「速度」を直接加算するので、既存の速度に上書きせず足し算されます。
- 他のモジュール(Drag、Gravityなど)とのバランスに注意しないと、意図しない動きになる場合があります。
「Unreal Engine Niagara:Curl Noise Forceとは
Unreal Engineの「Curl Noise Force」モジュールは、Niagaraパーティクルシステムで使用されるもので、粒子の動きに対してカールノイズを適用する力を生成するためのものです。以下に、このモジュールについて詳しく説明します。
カールノイズ (Curl Noise) とは?
- カールノイズは、視覚的に複雑で自然な渦巻きパターンを生成するノイズ関数です。
- 一般的なPerlinノイズとは異なり、カールノイズは「回転するような動き」を持つ力場を作り出します。
- これにより、リアルな煙、雲、水流、エネルギーの流れといった視覚効果を簡単に表現できます。
「Curl Noise Force」モジュールの用途
- Niagaraのパーティクルシステム内で、粒子に乱流のような動きを付与するために使用されます。
- 特に、煙や雲、エネルギーエフェクトなどのリアルな動きを表現する際に役立ちます。
設定項目とパラメータ
「Curl Noise Force」モジュールにはいくつかのパラメータがあり、これらを調整することで動きの特性を変更できます。
-
Strength (強さ)
- カールノイズによる力の大きさを調整します。
- 値が大きいほど、粒子が力に大きく影響されます。
-
Frequency (周波数)
- カールノイズのスケール感を制御します。
- 高い値にすると、より細かく速い乱流パターンが生成され、低い値にすると大きな波状パターンが生成されます。
-
Noise Field Scale (ノイズフィールドのスケール)
- ノイズの空間スケールを調整します。
- 大きなスケールではゆっくりとした動きが、小さなスケールでは急激な動きが発生します。
-
Seed (シード)
- ノイズパターンを再現可能にするためのシード値。
- 同じシードを使用すれば、同じノイズパターンが生成されます。
使用手順
- Niagaraシステムを作成
- 新しいNiagaraシステムを作成するか、既存のシステムを開きます。
- Curl Noise Forceモジュールを追加
- 「Force」カテゴリーのモジュールリストから「Curl Noise Force」を選択して追加します。
- パラメータを調整
- 強さや周波数を変更して、エフェクトに合った動きをカスタマイズします。
実践例
1. スモークエフェクト
- 粒子に緩やかなカールノイズを適用し、自然な揺らぎを表現します。
- 設定例:
- Strength: 50
- Frequency: 0.5
- Noise Field Scale: 10
2. エネルギー波の動き
- 粒子がエネルギー波のように激しく渦巻く動きを表現します。
- 設定例:
- Strength: 200
- Frequency: 2
- Noise Field Scale: 5
注意点
- カールノイズは計算コストがかかる場合があります。複雑なシステムではパフォーマンスへの影響に注意してください。
- 他のForceモジュール(DragやGravityなど)と組み合わせると、より複雑な動きを作ることができます。
メッシュに重なった場合だけ表示されるマテリアル:アンリアルエンジンの活用法

今回はワールドに存在するが、メッシュと重なった場合に表示されるマテリアルを作成してみたいと思います。

今回もどこかで書いた記事と一緒で、ワールド内に落ちているキューブを今回も利用していきます。
コピーしても、そのまま利用しても大丈夫です。
今回は、Buleprintフォルダに複製して利用していきます。

次に右クリックからマテリアルを作成します。
どこのフォルダに作成しても大丈夫です。自分が分かりやすい位置に作成しましょう。
今回は、先ほど複製した、キューブと同じフォルダに作成します。
名称:M_Cube

作成したマテリアルを開いてください。

マテリアルの詳細タブにある項目を設定していきます。
◆Material Domainを「Deferred Decal」に設定
◆Blend Modeを「Translucent」に設定

マテリアルグラフを設定していきます。
◆Constant3Vectorを配置(3+左クリックで配置可)
◆ベースからに接続
※色はお好きな色にしてもらえると良いかと思います。
※ワールドに戻るので、マテリアルは保存しておいてください。

ワールド内に、キューブを配置します。

配置したキューブのマテリアルを変更します。
◆作成したマテリアルを設定

変更したらキューブの色が変わります。
今回は透けてる青色にしてみました。

これで、キューブがメッシュと重なっている場合には、表示されるようになりました!

ゲームを再生してみると、こちらの角度からは画面内に表示されません。
ですが、場所を変えると・・・

キューブが画面に表示されました!
ということ今回もお疲れさまでした。
※ちなみにキューブは見えない状態でも、もの自体はゲーム内に存在するので、見えない状態でも当たり判定はあります。
アンリアルエンジンで光るマテリアルを作成する方法

今回の記事では、発行するマテリアルを作成していきたいと思います。
レッツゴー!!!

まずは、ゲーム内のそこらに落ちているキューブを選択します。

スタティックメッシュのフォルダアイコンをクリックします。

クリックすると、コンテンツドロワーが立ち上がり、選択したキューブのフォルダを開いてくれます。
そしたら、このキューブをコピーします。

そしたら、任意の場所に移動して、ペーストしてください。
今回は新規フォルダ(Tutorial)を作成して、そこに作成します。

そしたら、任意のフォルダ(今回はTutorialフォルダ)で右クリックし、新規マテリアルを作成します。
名称:M_Light

作成したマテリアルを開きます。
3を押したまま、右クリックを押下して、Constant3Vectorを出します。

Material Domainを「Light Function」に変更します

ピンをエミッシブカラーに接続します
接続できたら保存をしてください。

ワールド内に、キューブを配置します

キューブのマテリアルを、今回作成したM_Lightに変更

明るいと分かりにくかったので、暗くして完成です!
キューブが無事光ました✨
今日はここまでにしようと思います。皆さんもお疲れさまでした!

追伸:マテリアルのConstant3Vectorに入力している値を大きくするとより強い光を出すキューブを作成することができました

ここに入力している値です。
では!以上!
UnrealEngineで回転するロゴをゲーム内に配置してみよう!【アンリアルエンジン】【Tutorial】

意外と簡単に作成できるので、みなさんも作成してみてください。
マテリアルを新規で作成します。
名称:M_Logo
マテリアルを開き、詳細タブにて設定します。
◆Material Domainを「Deferred Decal」に設定
◆Blend Modeを「Translucent」に設定
コンテンツドロワーの最上段を選択。
検索窓に「logo」と入力。
◆T_UE_Logo_Mを見つける
◆見つけたT_UE_Logo_Mをマテリアルグラフへドラッグ&ドロップ
◆Constant3Vectorを配置(3を押したままグラフ内を左クリック)
その後Xを10に設定して、ベースカラーとエミッシブカラーと接続
◆LogoのノードRをオパシティと接続
※今回は赤色っぽくするため、Xを10に設定しましたが、別の色にしたい場合、好きなカラーになるようConstant3Vectorの値を設定するといいですよ。

◆右クリック➡Niagaraシステム➡空のシステムを作成➡終了を選択

名称:NS_Decal

作成したNiagaraシステムを開きます。
◆グラフ内を右クリックし「エミッタを追加」を選択し配置。
今回のテンプレートはFountionを使用します。

◆パーティクルのスポーンを下記2つにします。
「Inialize Particle」「Shape Location」
◆パーティクルの更新を下記2つにします。
「Solve Forces and Velocity」「Particle State」

◆パーティクルのスポーン右にある⊕を押す。
検索窓に「ini」と入力し「Initial Mesh Orientation」を追加。

追加したInitial Mesh Orientationを選択します。
◆Mesh Orientation ModeをNoneに設定
◆Rotationのボックスを有効にする

Rotationの設定を下記に設定ください
◆X=0 ◆Y=

◆Sprite Renderを削除
◆レンダリングの⊕を押し「Component Render」を追加
※追加名称は「Decal Component Render」

追加したComponent Renderを選択
◆Component Typeに「Decal Component」を設定
◆Decal Materialに作成したマテリアルを設定

◆Relative Locationを「Perticles.Position」に設定
◆Relative Rotationを「Perticles.Mesh Orientation」に設定

エミッタの更新の項目の削除と追加
◆Spawn Rateを削除
◆Spawn Burst Instantaneousを追加

ここまで作成できたらワールドに作成したNiagaraを配置してみてください。
おそらく、ロゴがワールド内で回転したと思います。
今回もお疲れさまでした。