PerryによるUEFNの浅瀬

UEFN/UE5に関する情報を発信していきます。https://twitter.com/home

UEFNプロジェクトの復元方法【OneDriveによるエラー】

■前提

4月22日、突然ローカルファイルに保存されているUEFNプロジェクトとUEFNエディターの接続が切れてしまいました。
今回はその対処方法の一例を紹介します。

*おそらくWindowsのアップデートの影響でOneDriveの設定が変更されたことによると思われます。
UEFNではOneDrive管理下のフォルダにUEFNプロジェクトを保存することを推奨されていません、OneDrive管理外のフォルダに保存するようにしましょう。


■症状

通常、下記画像のように既存のプロジェクトを開くときは
右下に「開く」という項目があり、プロジェクトを開いていると思います。

しかし、

当然ローカルファイルに保存されているはずのプロジェクトから「開く」の項目が消え

「同期」となっていました。

 

これは通常、リビジョンコントロール有効化されている場合に現れるものです。

 

つまりUEFNがローカル上のファイルを認識していないということで、

この記事ではその対処方法、ローカルファイルの読み込みの方法を解説します。

 



*リビジョンコントロールとは共同編集やチームで制作しているプロジェクトなどに利用される機能でサーバー上でプロジェクトを管理することができます。

リビジョンコントロールの詳細↓

dev.epicgames.com


 

■対処方法

ここで「同期」を選択してしまうと、サーバー上のリビジョンコントロールに保存されているデータを読み込んでしまうので、リビジョンコントロールを正しく使えていない場合や、最新状態をチェックインしていない場合、プロジェクトが巻き戻ってしまい、最悪の場合、初期状態に戻ってしまいます。

①「ブラウズ」を選択

②ローカルファイルから「〇〇(プロジェクト名).uefnproject」を探して
自分の場合Windows(C:) > UEFN > 〇〇(プロジェクト名)にありました。

③「開く」を押す

④UEFNのセキュリティから作成者を信頼しますか?と聞かれるので

「はい、作成者を信頼します」を選択
この場合作成者は自分自身なので信頼して問題ありません。

これで今後から、今まで通りUEFNからローカルファイルを読み込み出来るようになります。



■まとめ

プロジェクトが開けなくなると焦ってしまいますが、落ち着いてローカルファイルを再度読み込んでプロジェクトを取り戻しましょう!

 

マテリアルの数値を可視化するDebugノード4種の使い方 #UEFN

使用例

youtu.be

 

■前提

マテリアルで出力している数値を確認するときにDebug系のノードを利用すると、出力する値を数値として確認することができます。
マテリアル上で数式を組み立てたり、複雑なノード先がどんな値を返しているのか確認することができ、マテリアルに理解に役立ちます。

■ノードの種類

主に使用するのは下記の4種類です。

・Debug Scalar Values

”1つ”の少数の値を持った入力を受け取り数値として返します。

・Debug Float2 Values

”2つ”の少数の値を持った入力を受け取り数値として返します。

・Debug Float3 Values

”3つ”の少数の値を持った入力を受け取り数値として返します。

・Debug Float4 Values

”4つ”の少数の値を持った入力を受け取り数値として返します。

■使い方

左側の最上部(Number/Vector●●)に同じ数の値を持ったノードを接続し、
右側の最上部(Result/ColorCodedOutput)をベースカラーに繋ぎます。
*GreyScaleOutputから出力すると数値の色がグレーになります。

 

Scalar
0.0の入力を受け取り0.0を出力

Vector2

Vector3

Vector4

 

■主な用途

このノードの用途は幅広いですが、

私は主にTimeノードを使って組んだマテリアルが正しい値を出力しているか確認しるために使用しています。
また、初めて触るノードがどういった挙動をしているか確認するためにも非常に便利です。

●例 TimeとFrac
このノードでは
Time:連続的に毎秒1づつ加算される少数を返すノード

Frac:受け取った値の小数点以下のみを返すノード
を接続した挙動の確認を行っています。


youtu.be

●例 TimeとSine,Multiply

この例では
Time:連続的に毎秒1づつ加算される少数を返すノード
Multiply:Timeに0.2を掛け算することで時間の流れを1/5に
Sine:毎秒ごとに0→1→0→-1のように上下する波を生成するノード
これらを組み合わせて5秒かけて数値が0→1→0→-1となるような動きの遅い波をつくっています。

youtu.be

■投稿者(Xアカウント)

https://twitter.com/perrymotovlog

マテリアルの新機能:カーブ線形カラーの活用方法 #UEFN

使用例

youtu.be

 

■前提

UEFNの2024年4月のアップデートv29.20にて

UEFN に Curve Linear Color Atlases (カーブ線形カラーのアトラス) および Curve Linear Color Curves (カーブ線形カラーのカーブ) を追加し、ユーザーがマテリアル内にグラデーションを組み込めるようにしました。

dev.epicgames.com

 

■何ができるようになったのか

簡潔に言うと

マテリアル内の数値やカラーをあらかじめ設定したカーブを使って、
直感的かつ自由に変更することができるようになりました。
これによりマテリアルでの表現の幅が大きく広がります。

 

今までUEFNにおいてマテリアルの数値を変更する際は

●timeノードなどで扱う等速直線的な数値の変更

●数学的関数に従った数値の変更(sineなど)

●MateriaParameterCollectionを使用したシーケンサーを経由しての数値の変更

などの方法がありましたが、それぞれに使いづらさがありました。

 

■実装方法

①カーブの追加

コンテンツブラウザ上で右クリック
その他 > カーブ > Liner Curve Color > 選択

 

 

②カーブの編集

作成したカーブを開きます。

この状態ではRGBAの線がすべて重なっているので見づらくなっています。
画面左側のRGBAの横のピンのマークをクリックするとそれぞれの表示を非表示にすることができます。

 

画面左上から「絶対表示モード」から「スタックされた表示モード」に切り替えます。

 

今回は画面左側のRGBAからRGBのみを選択してみます。
するとRGBそれぞれのカーブを独立して編集することができます。

 

グラフの説明

このグラフは

縦軸がRGBの0.0~1.0値
横軸が時間軸(厳密には違うかもしれませんが今回はこの理解で問題ありません)
となっており

 

下記の画面では
RGB各色0.0~1.0
時間0.0~1.0秒まで表示しています。

 

カーブ上の任意の点をマウスの中クリックで選択するとキーフレームを追加することができます。
追加したキーフレームをドラッグで任意の位置に移動することができます。

線形の調整は細かくできますがこの記事では操作せずに進めます。(基本的にシーケンサーのカーブテーブルの操作と同じです。)

 

今回は時間0.5の位置のRとGの値を操作して
最初と最後は緑に、中間地点で赤くなるカーブをつくりました。

 

③カーブアトラスの作成

コンテンツブラウザ上で右クリック
その他 > カーブアトラス

 

カーブアトラスを開いて
詳細パネルの

「Gtadient Curves」の「+」から要素を追加して

先ほど作成したカーブを追加します。

 

④-1 マテリアルの作成

マテリアルエディターで右クリック

「CurveAtlasRowParameter」を追加します。

 

追加したノードの左側詳細パネルから

先ほど作成したカーブアトラスとカーブを追加します。

*先にカーブアトラスを追加しないとカーブを追加することができません
カーブアトラス➡カーブの順で追加してください。

 

④-2 マテリアルにおけるカーブの考え方

CurveAtlasRowParameterがScalarの値を受け取ったとき
アトラス上の左端を0

アトラス上の中央を0.5

アトラス上の右端を1

としてカラーを出力します。

 

試しにそれぞれCurveTimeに入力すると下記のように出力されます。

画像の上部の座標の色と対応がとれていることがわかります。

0入力

0.5入力

1入力

 

④-4 実装例

CurveAtlasRowParameterが座標の値を受け取ったとき

動画のような表示をします。


簡単なノードの解説
「TexCoord」

座標情報を出力します。

「Time」

増加していく時間の値を出力します。

「Panner」

座標と時間を受け取りSpeedで受け取った値に応じて座標を動かします。

「Frac」

受けっとった値から小数点以下の値のみを抽出します。

「Mask」
受け取ったUV座標からU(G)の値のみを取り出します。

ノード全体像

youtu.be

 

ゲームプレイでの映像確認

youtu.be

 

 

■まとめ

この記事ではUEFNに新しく追加されたカーブ機能の基本的な概念と実装について解説しました。
使いこなせるようになるとマテリアルの表現力が広がるので、積極的に活用していきましょう。


■執筆(Xアカウント)

https://twitter.com/perrymotovlog

 

参考記事

docs.unrealengine.com

historia.co.jp