UE4初心者が頑張ってるブログ

Unreal Engine4を使用した開発メモ、及びそれに関連することについて不定期に書いています。

UE4 グラデーションメモ

使用したバージョンは4.20.2です。

f:id:MozPaca:20180827133137p:plain

 

こんな関数があります。

f:id:MozPaca:20180827133413p:plain

 

中身はこんな風になってます。

f:id:MozPaca:20180827133554p:plain

 

分解して触ってみました。

UVのUをそのままベースカラーに入れます。

f:id:MozPaca:20180827133232p:plain

 

左側が0右側が1で出力されています。

f:id:MozPaca:20180827133827p:plain

 

反転させるならこうですね。

f:id:MozPaca:20180827133250p:plain

 

反転しました。

f:id:MozPaca:20180827133300p:plain

 

UVのVを扱ってみます。

f:id:MozPaca:20180827133311p:plain

 

上が0下が1で出力されます。

f:id:MozPaca:20180827133322p:plain

 

反転させます。

f:id:MozPaca:20180827133333p:plain

 

反転しました。

f:id:MozPaca:20180827133343p:plain

 

色を変えます。

f:id:MozPaca:20180827133352p:plain

 

変わりました。

f:id:MozPaca:20180827133402p:plain

UE4 Wwise始めました(導入編)

何となくWwiseを始めました。

 

導入だけで長くなりそうなので、

初期設定などは別記事にまとめたいと思います。

 

まずはWwise Launcherをインストールします。

www.audiokinetic.com

 

環境に合わせてWindowsMacを選択し、

Wwise Launcherのインストールを行います。

 

私はWindows環境で作業を行うため

Windowsを選択しています。

f:id:MozPaca:20180731144144p:plain

 

ダウンロードしたファイルを開きます。

f:id:MozPaca:20180731145257p:plain

 

するとWwise Launcherが立ち上がるので、

ログインを行います。

アカウントを持っていないのであれば、Sign up nowのボタンから

アカウントを作成しましょう。

f:id:MozPaca:20180731145406p:plain

 

ログインを行うとこのような画面が出ます。

Install Wwise バージョンのボタンをクリックして、

Wwiseをインストールしましょう。

f:id:MozPaca:20180731145754p:plain

 

基本的に必要になるのは、AuthoringとSDK(C++)です。

WwiseチュートリアルにCube(Demo)を使用しているものがあったので、

一応これも一緒にインストールしました。

環境や、配布するものに合わせて、チェックを入れましょう。

 

後はインストールするパスを入力して、

Nextのボタンをクリックします。

f:id:MozPaca:20180731145913p:plain

 

次にインストールするプラグインを選択します。

特に目的がなければ、デフォルトのままで大丈夫です。

f:id:MozPaca:20180731150200p:plain

 

Installのボタンを押すとライセンス同意の確認画面に遷移します。

Acceptのボタンをクリックします。

f:id:MozPaca:20180731150330p:plain

 

インストールが完了しました。

f:id:MozPaca:20180731150454p:plain

 

次にUE4プロジェクトを作成します。

今回は4.19.2を使用しています。

f:id:MozPaca:20180731150524p:plain

 

C++の基本コード、スターターコンテンツ無しで作成します。

f:id:MozPaca:20180731150605p:plain

 

プロジェクトが作成できたら一度閉じておきましょう。

Wwise Launcherに戻ります。

 

Wwise LauncherのUNREAL ENGINEタブに

プロジェクトが追加されていると思います。

f:id:MozPaca:20180731150646p:plain

 

プロジェクトが追加されていなければ、

ハンバーガーアイコンからBrowse for project...をクリックします。

f:id:MozPaca:20180731150817p:plain

 

するとブラウザが立ち上がるので、

追加したいプロジェクトの.uprojectファイルを開きます。

f:id:MozPaca:20180731150922p:plain

 

これでプロジェクトが追加されました。

 

次にインテグレーションを行います。

Integrate Wwise into Project...ボタンをクリックします。

f:id:MozPaca:20180731151027p:plain

 

必要な情報を書き込みます。

画像はインテグレーションしたものを開き直したものなので、

多少見た目や文字が違いますが大凡同じです。

書き込み終わったら下の青いボタンをクリックします。

f:id:MozPaca:20180731151144p:plain

 

インテグレーションが完了しました。

f:id:MozPaca:20180731151200p:plain

 

UE4側からもWwiseの存在を感じることが出来るようになっています。

f:id:MozPaca:20180731151217p:plain

 

f:id:MozPaca:20180731151229p:plain

 

次回はWwiseプラグインの初期設定について書こうと思います。

UE4 4.20 BlutilityとEditor Scriptingを試してみる その3

前回の記事からの続きです。

合わせてお読みください。

mozpaca.hatenablog.com

 

BlutilityとEditor Scriptingの触りの部分を

前回と前々回の記事で書きました。

 

今回はエディタからStatic MeshにCollisionをつける

処理を書きたいと思います。

 

今回はテーブルのStatic MeshにCollisionを付けたいと思いますが、

デフォルトでCollisionがついているので、Collisionを削除しておきます

f:id:MozPaca:20180711172744p:plain

 

コリジョンからコリジョンを取り除くを選択してSimple Collisionを削除します。

f:id:MozPaca:20180711172952p:plain

 

これで下準備は終わりました。

前回同様にBPU_ActorActionに処理を追加していきます。

f:id:MozPaca:20180711171909p:plain

 

まずは、関数のオーバーライドからGet Supported Classを選択します。

f:id:MozPaca:20180711171857p:plain

 

この関数は右クリックからScript Actionsのタブを出すフィルター的なものです。

デフォルトでは全てのクラスがリターンノードに渡されています。

今回はStatic MeshにCollisionを付けさせるのが目的なので、

Static Mesh以外でScript Actionsのタブが出ると困ります。

f:id:MozPaca:20180711172019p:plain

 

なので、このようにStatic Mesh Actorに対してだけ、

Script Actionsのタブが出るようにしました。

f:id:MozPaca:20180711172300p:plain

 

確認してみました。

Atmospheric Fogで右クリック→出ない。

f:id:MozPaca:20180711172354p:plain

 

Chair→出た。

f:id:MozPaca:20180711172443p:plain

 

大丈夫っぽいです。

 

次にイベントグラフでこのように処理を書きました。

Get Selected Level Actorsで選択したActorを取得し、

それがStatic Mesh ActorであればSimple Collisionを追加するという処理です。

引数をもたせてCollisionの形も指定できるようにしました。

f:id:MozPaca:20180711172511p:plain

 

では確認してみます。

レベルに配置されているテーブルを右クリック

Script ActionsからCE_Add Simple Collisionsを選択します。

f:id:MozPaca:20180711173039p:plain

 

すると引数に渡していたShape Typeを選択する、

ダイアログが出てきました。

わかりやすくするため、Boxを選択します。

f:id:MozPaca:20180711173152p:plain

 

OKボタンを押すと画面が切り替わり、

指定したBoxコリジョンがついたのが確認できました。

f:id:MozPaca:20180711173254p:plain

 

今回のような処理だと実用性が低いですが、

Editor Scriptingで追加されたノードはかなり多いうえに、

c++ではなくノードでこのようなことができる機能は、

非常に面白いと思います。

 

 

UE4 4.20 BlutilityとEditor Scriptingを試してみる その2

前回の記事からの続きです。

合わせてお読みください。

mozpaca.hatenablog.com

 

前回の記事でBlutilityの使用と、

2つのアセットを作成しました。

今回はそれらの中にEditor Scriptingを

混ぜ込んでいきたいと思います。

 

Editor Scriptingを有効にする

まずはEditor Scriptingを有効にします。

 

エディタの左上のPluginsを開きます。

f:id:MozPaca:20180711170035p:plain

 

Editor Scripting Utilitiesを有効にしてエディタを再起動しましょう。

f:id:MozPaca:20180711170106p:plain

 

 

Editor Scriptingを有効にすると
ブループリントユーティリティのノード一覧に

このようなものが追加されます。

f:id:MozPaca:20180711170410p:plain

 

処理を追加する

前回の記事で作成したBPU_ActorActionに処理を追加します。

f:id:MozPaca:20180711170611p:plain

 

まずはこのように処理を組んでみました。

f:id:MozPaca:20180711170703p:plain

 

次にレベルに配置してある適当なアセットを右クリック、

先程作成したCustom Eventを呼び出します。

f:id:MozPaca:20180711170740p:plain

 

上手く動いていますね。

f:id:MozPaca:20180711170835p:plain

 

アウトライナから複数選択した場合も

f:id:MozPaca:20180711170907p:plain

 

動きました。

f:id:MozPaca:20180711170952p:plain

UE4 4.20 BlutilityとEditor Scriptingを試してみる その1

今回は「Unreal Stream Japan | UE4.20で入る新機能の一部をご紹介」

www.youtube.com

で紹介されていたEditor Scriptingについて

何回かに分けて書いていきます。

 

その2

mozpaca.hatenablog.com

その3

mozpaca.hatenablog.com



基本的なやり方は動画の方でも解説されていますが、
試した際にスクショを撮ったので、

こちらの方でもやっていきたいと思います。

 

準備

今回はUE4 4.20 Preview5を使用します。

f:id:MozPaca:20180711162115p:plain

 

空のプロジェクトを使用してプロジェクトを作成します。

f:id:MozPaca:20180711162229p:plain

 

作成しました。

f:id:MozPaca:20180711162316p:plain

 

まずは、Editor Scriptingに必要になるBlutilityを有効にします。

左上の編集からエディタの環境設定を開きます。

f:id:MozPaca:20180711162423p:plain

 

実験段階→Editor Utility Blueprints(Bluetility)にチェックを入れます。

f:id:MozPaca:20180711162523p:plain

 

アセットを作成する

コンテンツブラウザからブループリント→

ブループリントユーティリティを選択します。

f:id:MozPaca:20180711162708p:plain

 

ブループリントユーティリティを選択すると、

親クラスの選択画面が出てきます。

 

全てのクラスからAssetActionUtilityを選択します。

f:id:MozPaca:20180711162917p:plain

 

このようなアセットが作成されました。

f:id:MozPaca:20180711163104p:plain

 

アセットに処理を追加したいところですが、

まだこのアセットに何も処理を記述していないのでこのような画面が出てきます。

f:id:MozPaca:20180711163134p:plain

 

アセットを開くには、右クリックからブループリントの編集を選択します。

f:id:MozPaca:20180711163256p:plain

 

いつもの画面が開きました。

f:id:MozPaca:20180711163358p:plain

 

処理を追加する

簡単なCustom Eventを使用した処理を記述します。

処理はこれだけです。

f:id:MozPaca:20180711163429p:plain

 

Custom Eventを選択し、右側の詳細タブで

エディタで呼び出すにチェックを入れます。

f:id:MozPaca:20180711163503p:plain

 

コンパイルするとCustom Eventのマークが変わったと思います。

f:id:MozPaca:20180711163553p:plain

 

エディタから処理を呼び出す

何かしらのアセットを右クリックすると

Scripting Actionsというタブが追加されています。

この中に先程作成したCE_TestLogがあるので、クリックしてみす。

f:id:MozPaca:20180711163630p:plain

 

CE_TestLogに記述したPrintStringが呼び出されました。

f:id:MozPaca:20180711163817p:plain

 

また、BPU_AssetActionを一度閉じて、

ダブルクリックで開き直すとこのような画面が出てきます。

ここにあるボタンをクリックすると、先程右クリックから選択したものと

同じ効果を得られます。

f:id:MozPaca:20180711164008p:plain

 

また、クラスのデフォルトからAuto Run Default Actionにチェックを入れ、

f:id:MozPaca:20180711164217p:plain

 

関数のオーバーライドで呼び出したOn Default Action Checkedに

f:id:MozPaca:20180711164317p:plain

 

このような処理を記述することで、

f:id:MozPaca:20180711164438p:plain

 

アセットのダブルクリックからこの関数を呼び出すこともできます。

f:id:MozPaca:20180711163950p:plain

 

別のアセットを作成する

先程とは変わってActorActionUtilityを親にした、

ブループリントユーティリティを作成します。

f:id:MozPaca:20180711164603p:plain

 

こんな感じ。

f:id:MozPaca:20180711164725p:plain

 

こちらのアセットにはこのように処理を記述しました。

先程とほぼ同じです。

f:id:MozPaca:20180711164805p:plain

 

確認するには、

レベルに配置したアセットを右クリックするか、

f:id:MozPaca:20180711164848p:plain

 

アウトライナにあるアセットを右クリックしてください。

f:id:MozPaca:20180711164923p:plain

 

複数選択した際にも実行されました。

 

まとめ

Asset Action Utilityを親にした場合

・コンテンツブラウザのアセットを右クリックすることで、

 CustomEventなどをエディタから呼び出せる

 

Actor Action Utilityを親にした場合

。レベルに配置したアセット、アウトライナにあるアセットを

 右クリックすることで、Custom Eventなどをエディタから呼び出せる。

 

 

 

UE4 4.20 ゲーム内の音声を録音する

UE4 4.20のPreviewをのんびりと触っていて、

大体検証が終わったので、少しずつ記事にしたいと思います。

 

Unreal Engine 4.20 Preview

forums.unrealengine.com

 

今回はUE4のレコード機能について書いていきます。

割と注目を集めている機能のようです。

f:id:MozPaca:20180622192459p:plain

 

追記

先に取り上げている方がいました。

qiita.com

 

 

検証にはUE4 4.20 Preview3を使用します。

f:id:MozPaca:20180622192440p:plain

 

注意

まず注意としてレコード機能を使用するには

Unreal Audioの機能を有効にする必要があります。

 

プロジェクトを作成後、

-audiomixerの引数を渡してエディタを起動するか、

f:id:MozPaca:20180622192805p:plain

このような.batファイルを作成し、エディタを開いてください。

 

必要なプラグインを有効にする

次に編集→Pluginsから

Sound Utilitiesプラグインを有効にして、エディタを再起動します。

f:id:MozPaca:20180622192920p:plain

 

必要なノードの解説

Start Recording Output

録音を開始するためのノードです。

f:id:MozPaca:20180622193524p:plain

 

パラメータ

・Expected Duration (float)

 録音する秒数を指定するパラメータです。

 0.0の場合は後述するFinish Recording Outputノードを使用する、

 もしくはゲームを終了するまで録音を続けます。

 

・Submix to Record

 指定したSound Submixの音声を録音します。

 指定しない場合はエンジン出力の音が録音されるようです。

 

Sound Submixについてはこちら

[UE4] Sound Submix を使って音にエフェクトをかける|株式会社ヒストリア

 

Finish Recording Output

録音を終了するためのノードです。

 

f:id:MozPaca:20180622194425p:plain

 

パラメータ

・Export Type

 録音したデータの保存形式を決定します。

 Sound WaveファイルとWavファイルから選択できます。

 

・Name

 保存するファイル名を決定するパラメータです。

 「入力した文字列」.wavのように保存されます。

 

・Path

 保存するパスを相対パスで指定するパラメータです。

 録音したファイルがSound Waveファイルの場合は、

 指定を行うとクラッシュすることがあるので指定しないことをおすすめします。

 指定をしなかった場合は、コンテンツブラウザ直下に保存されます。

 

 録音したファイルがWavファイルであった場合、

 プロジェクトフォルダ/Saved/BouncedWavFiles/からの相対パスになります。

 指定しなかった場合はBouncedWavFilesに保存されます。

 

・Submix to Record

 機能的にはStart Recording Outputと同じようです。

 使い分け方がよくわからないので、詳しい人教えてください。

 

・Existing Sound Wave to Overwrite

 指定したSound Waveを上書きするパラメータ...だと思うんですが、

 何も起こりません。

 

 追記

 ソースを確認すると外側だけの実装のようです。今後扱えるようになると思います。

 

実際に録音してみる

f:id:MozPaca:20180622195753p:plain

 

レベルブループリントにこのように記述しました。

Rキーを押して録音開始。

Rキーを離すか10秒経過すると録音終了になります。

ゲームを実行し、Rキーを押すと押すと録音できるかと思います。

 

このように処理を組んだ場合は

f:id:MozPaca:20180622200246p:plain

 

コンテンツブラウザ直下に書き出されます。

f:id:MozPaca:20180622200404p:plain

 

このように処理を組んだ場合は、

f:id:MozPaca:20180622200434p:plain

 

このように書き出されます。

f:id:MozPaca:20180622200447p:plain

 

なかなか面白い機能だと思います。

皆さんもUE4で録音しまくってください。

 

 

UE4 SphereMaskでホラー的な表現を行う

今回はPostProcess Materialを使用して、
一定以上の距離から先が見えないといった処理を作成します。

作成にはUE4 4.19.2を使用しています。

f:id:MozPaca:20180516153207p:plain

 

First Person Templateを起動してください。

f:id:MozPaca:20180516153343p:plain

 

Materialを作成する

コンテンツブラウザを右クリックから

Materialを選択します。

f:id:MozPaca:20180516153422p:plain

 

Materialが作成できたら

名前を付けましょう。

f:id:MozPaca:20180516153500p:plain

 

MaterialをPostProcessVolumeに適応する

First Person Templateには最初から

PostProcess Volumeが配置されています。

PostProcess VolumeのPostProcess Material内の

Arrayに配列を追加して、先程作成したMaterialを適応します。

f:id:MozPaca:20180516153605p:plain

 

Materialを編集する

先程作成したMaterialを開きます。

まずは、Material DomainをSurfaceから

Post Processに変更します。

f:id:MozPaca:20180516153820p:plain

 

次にこのようにノードをつなげます。

f:id:MozPaca:20180516154027p:plain

Sphere MaskはAにチェックする座標の値、

Bに球体の原点の座標の値を入力し、

RadiusとHardnessに球体の半径と

トランジションエリアのサイズを指定します。

 

確認してみる

ここまでの処理が作成できたら実行して確認してみましょう。

プレイヤーを中心に半径1000の球体マスクが適応されました。

f:id:MozPaca:20180516154409p:plain

 

改良してみる

しかしこのままではプレイヤーや、

その他のオブジェクトが白く塗りつぶされたままになります。

 

そこでのように改良してみました。

f:id:MozPaca:20180516154615p:plain

LerpのAには0を入れ真っ黒になるようにします。

BにはScene Textureで本来描画されるべき色を入力します。

Alphaに先程作成したSphere Maskの値を入れ、

AとBの間を補間します。

 

確認してみる

確認してみると、マスクの範囲内には
正しい色が描画され、範囲外は黒くなりました。

f:id:MozPaca:20180516154859p:plain

 

また、Material Instanceなどで扱う場合は

RadiusとHardnessをパラメータにしておくと便利です。

f:id:MozPaca:20180516155001p:plain

 

パラメータを調整したものがこちらになります。

www.youtube.com