アルゴンUE4&アプリ開発日記

UE4の機能やプラグインを紹介します。初心者や中級者向けになってます!!

よく使ってる便利なプラグインなどを紹介する。

この記事は「Unreal Engine 4 (UE4) その2 Advent Calendar 2018」の24日目の記事になります。

qiita.com

今回は自分がよく使ってる便利なプラグインを紹介していこうと思います。

よかったら使ってみてください(^o^)

その1・Spline Snapping Tool

このツールでは

スプラインに合わせて、

物体を配置するのに便利なツールとなっています。

 

このツールを使うためにはプラグインを入れる必要があります。

下記のリンクからプラグインをダウンロードします。

0を指定して、メールアドレスを入力します。

gumroad.com

メールアドレス先に下記の様なメールが届くかと思いますので、

販売コンテンツを見るを選択して、

使用したいバージョンのファイルをダウンロードします。

f:id:yoshikata1990:20181216083641p:plain

ダウンロードが完了したら、ファイルを解凍してフォルダに入れてください。

フォルダの場所はUE4のバージョンが4.21の場合は下記になります。

Program Files\Epic Games\UE_4.21\Enterprise\Pluginsに配置します。

配置完了したら、UE4を起動してプラグインが正常に適応できているか確認します。

モードの一番左にSpline Snapping Toolというのが追加されていればOKです。

f:id:yoshikata1990:20181216102743p:plain

ここからは使用方法を説明していきます。

まずコンポーネントでスプライトを追加します。

テスト用に上に配置しています。

f:id:yoshikata1990:20181216135056p:plainスプラインを設定したら、SplineSnappingToolからスプライン選択のアイコンを選択してスプラインを指定します。

f:id:yoshikata1990:20181216143504p:plain

選択したらオレンジ色にスプラインの色が変化します。

その後、配置したいオブジェクトを選択して左シフトキーを押します。

f:id:yoshikata1990:20181216143626p:plainf:id:yoshikata1990:20181216143641p:plain

そうすることでスプラインに合わせて物体を配置することができます。

Sphereを今回は配置しています。

f:id:yoshikata1990:20181216145614p:plain

こんな感じで配置できます。設定用のパラメータは下記で説明します。

スプラインと配置するオブジェクトの間隔などいろいろ設定できます。

f:id:yoshikata1990:20181216152606p:plain

スプラインスナッピングツールの説明は以上になります。

スプラインの起動に沿って、建物のパーツ配置をしたり

キャラクターの配置などもできるので、よく活用してます(*´∀`*)

その2・StreetMapPlugin

このプラグインはオープンストリートマップというサイトから

地図のデータを取得してそれを読み込むことで町並みを、

MapというファイルでUE4に表示したり町並みをメッシュとして書き出せます。

※こちらはVer.4.19まで使用できます。

※最新版ではプラグインのビルドに失敗します。ご注意ください。

C++のプロジェクトでビルドして使用するタイプのプラグインになります。

まずは下記リンクからダウンロードします。

github.com

ダウンロードしたら、インストールしたいC++プロジェクトフォルダの

直下にPluginsというフォルダを作成します。

フォルダを作成したら、Githubから落としてきたデータをStreetMapという

フォルダ名に変更します。

f:id:yoshikata1990:20181216195432p:plain

そうしたらあとはプロジェクトを起動して、

途中にプラグインのdllをリビルドするかどうか聞かれるので、

Yesを選択してリビルドします。

成功すればPluginの一番下にプラグインが追加されます。

f:id:yoshikata1990:20181216195727p:plain

ここまで行けばプラグインの登録は完了です。

つづいて下記のサイトから町並みのデータを作成します。

アカウントを作ることでエクスポートできます。

メールアドレスの登録は必要になります。

www.openstreetmap.org

データとして取得したい箇所に領域を当てて、

エクスポートを選択するとmap.osmというファイルがダウンロードできます。

f:id:yoshikata1990:20181216220856p:plain

map.osmのファイルをUE4プロジェクトのコンテンツブラウザに、

入れると認識されます。

f:id:yoshikata1990:20181216223611p:plain

あとはレベル内に配置してあげて見た目として表示されます。

緑色が道で茶色が建物になります。

f:id:yoshikata1990:20181216223836p:plain

これでマップの配置は完了になります。

マップを配置しただけだとCollisionがないので、

詳細のStreetMapの設定からCollisionSettingで「Generate Collision」

のチェックを入れることでCollisionが発生します。

f:id:yoshikata1990:20181216225755p:plain

Create Static Mesh AssetでStaticMeshとしても書き出せます。

その他変更可能な設定としては、

通常の道の色や高速道路の色などを変更できます。

その他プラグインや面白そうなプロジェクト

まず今回紹介したプラグインについては、

下記リンクのサイトで紹介されています。

https://www.openstreetmap.org/https://ue4resources.com/plugins

中でもCustomGravityPluginは面白いので試してみてください。

下記ブログで紹介済みだったため私の方では割愛します。

unrealbussan.hatenablog.com

長くなりましたが今回の説明は以上になります。

ありがとうございました。

次がラストでどんぶつさんのReplicationGraphになります。

【UE4】NiagaraでTextureが使えるようになったよ\(^o^)/

UE4の最新版4.21が出てます!

Niagara(ナイアガラ)でTextureが使える!

UE4のバージョン4.21で、

SampleTextureとしてのSpawnの方法を紹介していきます。

※説明に間違いがあったら指摘お願いしますm(_ _)m

ここからはNiagaraのTextureの使い方などを紹介していきます。

UE4のバージョンは4.21を使用します。

Niagara(ナイアガラ)を使用できるようにする

少し前にNiagaraを試してみました。

Niagaraのプロジェクトの設定方法については、

下記の記事の冒頭にある、プラグイン設定を記載しています。

まずはそちらでNiagaraを使用できるようにしてください。

argonauts.hatenablog.jp

Niagara(ナイアガラ)でSampleTextureを使う

まずはEmitterを作成しないと始まらないので作成します。

4.21からテンプレートから選択できるようになっています。

DirectionalBurstから作成していきます。

f:id:yoshikata1990:20181124185855p:plain

NiagaraのEmitterファイルを作成したら、

Textureに合わせてパーティクルを配置できるようにGridLocationで設定します。

f:id:yoshikata1990:20181124203417p:plain

続いてParticleSpawnからSampleTextureを追加します。

f:id:yoshikata1990:20181124190749p:plain

SampleTextureを追加したら、UVのパラメータを設定します。

デフォルトからSplitVector2Dに変更します。

小さい三角を選択することでパラメータの設定を変更できます。

f:id:yoshikata1990:20181124191341p:plain

続いて、XとYでの設定を設定します。

今回も右側の三角を押してパラメータを変更します。

MakeFloatFromVectorで設定します。

f:id:yoshikata1990:20181124192357p:plain

あとはVectorの値を上記で作成していた、

GridLocationを指定してあげればSampleTextureの設定は完了です。

f:id:yoshikata1990:20181124194835p:plain

その他細かい設定は画像で紹介します。

Emitterの各種設定とLifeCycleは下記の画像のような形です。

テクスチャなので、Zは0に設定してあります。

f:id:yoshikata1990:20181124204025p:plain

 LifeCycleについては特に変更はありません。

個人的にMaxLoopCountとDelayは少し調整しています。

f:id:yoshikata1990:20181124204036p:plain

パーティクルの総量についてはこちらもZを0に指定してます。

f:id:yoshikata1990:20181124205217p:plain

Colorの設定ではSampleTextureの色似合わせるため、

OutputSampleTextureのSampledColorを指定しています。

f:id:yoshikata1990:20181124205300p:plain

動きの箇所としては特に変更はありません。

説明が足りない部分はコメントお願いします。

f:id:yoshikata1990:20181124205551p:plain

ここで注意点ですが、マテリアルは必ず、

TextureSampling_materialにしてください。

表示がうまくいかないことがあります。

f:id:yoshikata1990:20181124205657p:plain

以上で説明は終わりです。

実際に作成するとこんな感じです。

f:id:yoshikata1990:20181124210222p:plain

Twitterで動かすものも載せてみました。

Niagaraは日々進化してるので、いろいろ楽しいです(*´∀`*)

 

UE4のプラグインProceduralTreeで木を生やす。

プラグインのProceduralTreeを試す!

今回は下のリンクの木を生成するプラグインを紹介します。

簡単に木を作るためのプラグインになります。

UE4バージョンは4.20.3を使用していきます。

gumroad.com

プラグインUE4で選択出来るようにする。

まずはプラグインデータを落としてくる必要があります。

冒頭で紹介しているリンクを開いて右側にある、

値段を入力してダウンロードします。

0を入力してダウンロードを行うことが出来ます。。。

gumroad.com

zip形式のファイルですのでそのまま回答してファイルを展開します。

展開が完了したらUE4プラグインのフォルダに設定します。

デフォルトとだとドライブの「Program Files\Epic Games\UE_4.20

の中にUE4のエディターが入っているフォルダがあります。

UE_4.20\Enterprise\Plugins\Editor」に展開したフォルダごと入れます。

f:id:yoshikata1990:20181020153525p:plain

フォルダにプラグインのデータを設置したら、

EpicGameLauncherを起動してプラグインをおいたバージョンのエンジンを、

起動してPluginウィンドウを開き正常に登録されていることを確認します。

正常に追加されているとInstalledに表示されます。

f:id:yoshikata1990:20181020163335p:plain

木を設置してStaticMeshとして書き出す

先程のプラグインをONにして再起動します。

ProcedualTreeはコンポーネントの扱いで追加されるため、

コンポーネントを追加」を選択して「ProceduralTree」を選択します。

コンポーネントのため、レベル上のアウトライナを選択してコンポーネントを追加する形になります。

f:id:yoshikata1990:20181020185831p:plain

追加すると木の形をしたモデルが作成されます。

この状態だと全然木には見えないです(´・ω・`)

f:id:yoshikata1990:20181020190604p:plain

コンポーネントを設置出来たら木にマテリアルを適応していきます。

木の幹にはスターターコンテンツをONにしているとデフォルトで入る、

「M_Wood_Walnu」を使用しています。

木の葉っぱについては下記のリンクにあるデータから落とします。

gumroad.com

展開したフォルダの「Content\EssentialTreeKit\BaseMaterial」内部にある、

Tree_Leafのデータを使用しています。

実際にマテリアルを適応するとこんな感じになります。

マテリアルのTree_Leafで木にしか見えなくなります(●´ω`●)

f:id:yoshikata1990:20181020211045p:plain

詳細パネルのGeneralから「CreateStaticMesh」でStaticMeshとして書き出せます。

もちろん葉っぱの数や枝の別れ方も変更出来ます。

f:id:yoshikata1990:20181020211628p:plain

スタティックメッシュのものとコンポーネントを並べてみました。

なぜかスタティックメッシュのほうが小さくなるので、サイズ調整が必要です・・・

f:id:yoshikata1990:20181020212735p:plain

まとめると最終的な工程としては下記のような形です。

1.プラグインUE4に適応する。

2.ProceduralTreeコンポーネントを設定し、マテリアルやコンポーネントを設定する。

3.葉っぱの数や幹の別れ方、木の曲がり方などを設定してスタティックメッシュとして書き出す。

各種パラメータを変更して形の違う木を作る。

このように木を生成するプラグインなどでは、

各種設定があり全く違う形の木を作ることができます!

まずGeneralで設定が可能なところを紹介します。

f:id:yoshikata1990:20181020215948p:plain

TrunkForksを増やすと木の高さを大きく出来たりします。

下記のような感じで高い木を作ることもできます(`・ω・´)

f:id:yoshikata1990:20181020220255p:plain

続いて木の枝の設定になります。

使うのはだいたいGrowthとSweepとInitial-lengthを使う感じです。

f:id:yoshikata1990:20181020222000p:plain

最後に幹関連のものになります。

幹の太さや幹の曲がりなどを色々試すと楽しいです!

f:id:yoshikata1990:20181020223435p:plain

【UE4】Niagaraを今更だけど試す!!

UE4Niagaraの使ってみよう(^o^)!

今まではエフェクトの作成でカスケードを使用してエフェクトを作成していましたが、

今回はNiagaraの構成やエフェクトの作成方法などをやってみます。

Niagara(ナイアガラ)とはどんなものなのか?

UE4ではカスケードとナイアガラでVFXを作成できます。

カスケードの場合、量子シミュレーションなどをハードコードで制御されているが、

ナイアガラの場合はノードグラフによって制御するため、

プログラマを必要とすることなくエフェクトを作成出来るように力を入れている機能。

※間違いがあったら指摘お願いしますm(_ _)m

ここからはNiagaraを実際に動作させてみようと思います。

UE4のバージョンは4.20.3を使用しています。

Niagara(ナイアガラ)のファイルを作る。

ここからNiagaraを作成していきます。

その前にNiagaraを使用する際、プラグインの設定を追加します。

niagara」で検索すれば表示されます。

f:id:yoshikata1990:20180923113327p:plain

Niagaraプラグインを追加することで、

詳細なアセット作成の欄に「FX」という項目が追加されます。

f:id:yoshikata1990:20180923113631p:plain

ここからは実際にNiagaraEmitter等を利用して作成して、

エフェクトを作成していきます。

アニメーションに合わせての粒子分解エフェクト作り

それでは実際に作っていきます。

今回は機能別サンプルのEffectsで使用されているキャラを、

あらかじめデータをプロジェクトに持ってきておきます。

f:id:yoshikata1990:20180924094124p:plain

続いてNiagaraのEffect1つ1つを設定出来るNiagaraEmitterと、

それぞれのNiagaraEmitterを管理するNiagaraSystemファイルを追加します。

加えて今回はキャラクターの位置に合わせて量子エフェクトが出るように、

する必要があるためNiagaraModuleScriptを追加しておきます。

f:id:yoshikata1990:20180924094141p:plain

エフェクトのEmitterの部分を設定していきます。

今回不要なAdd VelocityとAccelerationForceを削除します。

その後Spawn Rateを削除して、Spawn Burst Instantaneouを追加。

これは一度に指定した数だけレンダリングします。

f:id:yoshikata1990:20180924094223p:plain

そこまで完了したら今度はキャラクターのスケルタルメッシュに合わせて、

エフェクトを設定するためにパラメータを追加します。

Particles.SkeltalMeshというパラメータを設定します。

※Particlesの部分が違うと正常にParticlesとして登録できないので注意!

f:id:yoshikata1990:20180924094314p:plain

Particles.SkeltalMeshというパラメータを追加したら、

今回適応するキャラのスケルタルメッシュを指定します。

f:id:yoshikata1990:20180924094332p:plain

f:id:yoshikata1990:20180924094409p:plain

今度はNiagaraSystemの方にEmitterを適応します。

NiagaraSystemはEmitterを設定してレベルのアウトライナに設定したり、

アタッチする以外にNiagaraSystemから直接Emitterの数値をSystem用に、

変更することも可能です。

今回はTrackにエフェクトの動作を設定するだけになります。

f:id:yoshikata1990:20180924094447p:plain

スケルタルメッシュが更新されるたびに、

Emitterが発生する位置を更新する必要があります。

NiagaraModuleScriptを使用してスケルタルメッシュの位置を取得します。

ModuleScriptをEmitterの方から参照する時に分かりやすくするため、

カテゴリを設定しておきます。

f:id:yoshikata1990:20180924094927p:plain

カテゴリ設定が終わったらMapGetに「Particles.SkeltalMesh」を追加し、

MapSetに「Particles.Position」を追加して下記画像の様に、スクリプトを組みます。

f:id:yoshikata1990:20180924094942p:plain

組み終わったら、Emitterにスクリプトを適応します。

Particle Spawnの「+」ボタンを押して、

作成したスクリプトを選択して追加します。

f:id:yoshikata1990:20180924095035p:plain

ここまで完成すればキャラクターのアニメーションに合わせた、

粒子エフェクトが出るようになり、こんな人形になれば問題ありません。

f:id:yoshikata1990:20180924095057p:plain

キャラクターに合わせてだけだと寂しい感じがしたので、

Particle Updateの「+」ボタンを押してCurl Noise Force」を選択します。

f:id:yoshikata1990:20180924095144p:plain

Curl Noise Forceは3軸で強さに応じてエフェクトを霧散出来るので、

色々使えるかと思います。

最後に、作成したNiagaraをキャラクターにアタッチします。

キャラクターはスタティックメッシュしかないので、

ブループリント化していただき、

下記のようにBPを組めば1秒ごとにエフェクトをアタッチしてくれます。

※このBPはテストで作ったものなので、タイマーに変えてあげてください。

f:id:yoshikata1990:20180924095201p:plain

完成すると下のように下の画像のようになります。

f:id:yoshikata1990:20180924095530p:plain

細かく調整するとTwitterで公開している下のような形になります。

Niagara(ナイアガラ)をやってみての感想

プログラムの編集とかはなくすべてノード形式で作れるのと、

簡単にきれいな粒子エフェクトが作れるのでとてもいいと思いました!

今回は以上です!ありがとうございました!!

【UE4】メッシュエディターモードを試す。

UE4でメッシュの処理を編集する。

UE4の4.20でStaticMeshの編集がモードで可能になったので、

今回はそちらを試していく。

UE4のバージョンは4.20.2になります。

メッシュエディターモードに追加する

MeshEditorをONにする場合、コマンドを入力する必要があります。

アウトプットログを常時出しているので、

アウトプットログをから「MeshEditor.Enable」と入力します。

MeshEditと入力すれば下記の様に検索で引っかかります。

※MeshEditについてはプロジェクトを閉じるたびに閉じるので気をつけてください。

f:id:yoshikata1990:20180825124510p:plain

入力が完了したら、モードにタブが追加されるかと思います。

下記のタブが表示されれば問題なくモデルを編集できると思います。

f:id:yoshikata1990:20180825130219p:plain

編集できる項目の説明について

各種項目で出来ることを紹介します。

※すべての項目の説明までは行っていません。

 使用頻度が高くなりそうなものを説明します。

Mesh選択時

AddSubdivisionLevel

→ 選択しているメッシュに対してサブディヴィジョン化する。

RemoveSubdivisionLevel

→ 上の逆の動作を行う。

Quadrangulate

→ メッシュ全体の面を四角面化する。

Polygon選択時

Move

→ 指定したポリゴンを移動させる。

DrawVertices

→ 頂点を追加する

Bevel

→ ベベル

Inset

→面の差し込み

Extrude

→押し出し

Split

→分割

AssignMaterial

→指定したポリゴンだけ別のマテリアルを適応する。

実際にモデルを編集する。

設定が完了したらエディットモードタブを選択した状態で、

レベル上のスタティックメッシュを選択することで編集できます。

いろいろ試すと下のTwitterみたいにいろんな形にできます(^o^)