FC2ブログ

凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

2018年02月 | ARCHIVE-SELECT | 2018年04月

| PAGE-SELECT | NEXT

≫ EDIT

UE4 MP4形式の動画・ムービーを再生する(File Media Source、Media Player、Media Texture)

MP4形式の動画・ムービーを再生する方法です。

・UMGでムービー(動画)を再生する
http://kagring.blog.fc2.com/blog-entry-200.html

ここで動画再生についてはやっていたのですが、
どうもMP4形式の動画再生には手順が異なるようなのでメモです。

詳しい手順や説明は下記サイトにありますので
ここは簡単な手順と自分なりのメモみたいなものになります。

・UE4 ゲーム内で動画を再生する方法
http://papersloth.hatenablog.com/entry/2017/10/31/011909

4.18から少し変わったっぽいのでこちらも乗せておきます。

・Upgrading Media Framework Content to 4.18
https://docs.unrealengine.com/en-us/Engine/MediaFramework/TechReference/Upgrading?utm_source=docs&utm_medium=twitter&utm_campaign=uesocial

MP4形式の動画を再生するにはプラグインを有効にする必要があります。
MP4再生000
「WMF Media Player」プラグインを有効にします。

WMFとはWindows Media Foundationの略称です。
Microsoft Media Foundation (Windows)

調べてみると難しそうな用語が並んでいますが、ざっくりいってしまうと
「マルチメディアを扱うためのMicrosoftのAPI群」です。


次に動画ファイル(MP4)をインポートします。
※「Content/Movies」以下に動画ファイルを保存する必要があるので注意してください。
MP4再生001
インポートすると「File Media Source」アセットが生成されます。

この「File Media Source」アセットの詳細を開いて、
Windows の欄を「WMF」に変更します。
MP4再生002

この際に①で挙げたプラグインのWMF Media Playerが無効だと選択できません。

だそうです!

次に「Media」メニューから「Media Player」を選択して
「Media Player」アセットを作成します。
MP4再生004

こんなダイアログが出るかもしれないのですが、
今回は動画なので
「Video output Medeia Texture asset」にチェックを入れましょう(自分はいれました)
MP4再生003

こうすると「Media Player」と「Media Texture」アセットが生成されます。
MP4再生005

マテリアルを作成して「Media Texture」を割り当てます。
これで準備は整ったのでメッシュにマテリアルを割り当ててあげます。

最後に動画を再生する必要があります。
「Media Player」アセットの詳細の「Playback」の設定をします。
MP4再生006

- Play on Open
Open Source等のノードが呼び出された際に自動で再生するか
- Shuffle
Play Listを設定した場合にシャッフル再生を行うか(動作未確認)
- Loop
動画再生終了時にループ再生を行うか

ということらしいです。
今回は「Play on Open」と「Loop」にチェックをいれました。

あとは、動画の再生命令をBPで組み込みます。
MP4再生007
「Media Player」変数を作成して、
「Open Source」ノード
で動画を開きます。
「Play on Open」にチェックが入っているので開いた時点で動画再生がはじまります。

結果はこんな感じに。


まめおさんのサイトにまとめがのっているので引用しておきます。

①動画インポート
 File Media Sourceの設定を変更
②Media Player作成(同時にMedia Textureも作成される)
③Media Textureを使用したMaterial作成
 UIの場合はUserInterfaceに変更しておく
④MediaPlayerの変数を作成
⑤OpenSource, Playノードを呼び出す
Media Playerで再生しようとした時にエラーが出た場合は動画の保存場所を疑ってみましょう。
Content/Movies以下に保存する必要があります。


これで動画再生はばっちりですね!
スポンサーサイト

| UE4 | 12:53 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 GDC 2018 Unreal Engine 記事まとめ

GDC 2018 での Unreal Engine の情報まとめ。
あとで読む用。

・GDC 2018 で大きな存在感を示すエピック ゲームズ
https://www.unrealengine.com/ja/blog/epic-games-goes-big-at-gdc-2018

・リアルを彷彿とさせるデジタル版 Andy Serkis を生み出した Epic Games と 3Lateral の開発技術
https://www.unrealengine.com/ja/blog/epic-games-and-3lateral-introduce-digital-andy-serkis

・エピック ゲームズ、ILMxLAB と NVIDIA と連携。アンリアル エンジン 4 のリアルタイム トレーシングのデモを公開
https://www.unrealengine.com/ja/blog/epic-games-demonstrates-real-time-ray-tracing-in-unreal-engine-4-with-ilmxlab-and-nvidia

・GDC 2018 でエピック ゲームズが最新情報を発表、すべてのプラットフォームで AAAクオリティのサポートが顕著に
https://www.unrealengine.com/ja/blog/epic-games-gdc-2018-updates-underscore-aaa-quality-support-for-unreal-engine-developers-on-all-platforms



















・UE4 GDC 2018 基調講演「State of Unreal」を振り返る
http://unrealengine.hatenablog.com/entry/2018/03/22/234624

・UE4 GDC2018 フォートナイトの最適化について Part1
http://unrealengine.hatenablog.com/entry/2018/03/24/001218

・UE4 GDC2018 フォートナイトの最適化について Part2
http://unrealengine.hatenablog.com/entry/2018/03/26/005632

| UE4 | 15:33 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 メッシュ(Mesh)が持つ全てのマテリアルのマテリアルパラメータ値を外部からセットする(Set Scalar Parameter Value on Materials、Set Vector Parameter Value on Materials)

メッシュが持つ全てのマテリアルに対してマテリアルパラメータを外部からセットする方法です。
今回の方法は簡単なのですが、マテリアルを指定することができず
メッシュが持つ全てのマテリアルに対してマテリアルパラメータのセットが行われます。

まずはマテリアルパラメータを作ります。
マテリアルパラメータ外部から変更003
こんな感じにマテリアルパラメータを作成してあげます。
今回は「Vector Parameter」で「Emissive Color」という名前で作成しました。

これを表示するとこんな感じに。
マテリアルパラメータ外部から変更000

このパラメータをBPからいじってあげます。
「Vector Parameter」をセットするには
「Set Vector Parameter Value on Materials」ノードを使います。
マテリアルパラメータ外部から変更004
「Target」にはメッシュを指定します。
「Parameter Name」にはマテリアルパラメータの名前を指定します。
「Parameter Value」にはセットしたい値を指定します。

と、これだけでマテリアルパラメータの変更が行えます。
Scalar のパラメータを変更したい場合は
「Set Scalar Parameter Value on Materials」ノードを使います。
マテリアルパラメータ外部から変更005
「Target」にはメッシュを指定します。
「Parameter Name」にはマテリアルパラメータの名前を指定します。
「Parameter Value」にはセットしたい値を指定します。

こちらもほほほぼ一緒ですね。

実際にはこんな使い方になります。
マテリアルパラメータ外部から変更002
最初に作ったマテリアルのパラメータを上記のようにしてあげると
こんな感じになります。
マテリアルパラメータ外部から変更001
無事変わってますね。

「Set Scalar Parameter Value on Materials」ノードと
「Set Vector Parameter Value on Materials」ノードは簡単に使えるのですが
マテリアルが異なっていても、同じパラメータ名を持つ場合は
全てのパラメータが変化してしまう
ので注意してください。

| UE4 | 15:05 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 第5回UE4勉強会 in 大阪

第5回UE4勉強会 in 大阪 という大阪でのイベントがあったようなのでまとめです。




弱参照のところは覚えておきたいですね。

とりあえず自分用メモとして。

| UE4 | 16:28 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 外部から値を変更できるようにマテリアルパラメータを作成する(Scalar Parameter、Vector Parameter)

マテリアルを外部からあれこれ変更するためには
マテリアルパラメータを作成してあげないといけないようなので
そのマテリアルパラメータの作成方法です。

こちらを参考に。

・マテリアル エディタ - マテリアル パラメータの作成方法
http://api.unrealengine.com/JPN/Engine/Rendering/Materials/HowTo/Making_Parameters/

ここを読むまでもなく、マテリアルエディタ内のノードで
「Parameter」でノード検索すると割とでてくるので、それを使っても大丈夫そうです。

とりわけ一番簡単に使えそうな
「Scalar Parameter」「Vector Parameter」を作成してみました。

「Scalar Parameter」は「float」単体の値を扱うパラメータです。
マテリアルパラメータ001

使ってみるとこんな感じに。
マテリアルパラメータ000

「Vector Parameter」は名前の通り「Vecor」の値を扱うパラメータです。
マテリアルパラメータ003

使ってみるとこんな感じに。
マテリアルパラメータ002

マテリアルパラメータを作成したら
「名前」をつけるのを忘れないようにしましょう。
マテリアルパラメータ004
「詳細」タブの「Parameter Name」で指定することができます。
外部からはこのパラメータの名前でアクセスすることになります。

とりあえずはこれで外部からマテリアルの値をあれこれ変更する土台ができました。
次は実際に外部から値をいじってみようかなと思います。

| UE4 | 12:02 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 メッシュが持つマテリアルをインデックスや名前を指定して取得する(Get Material、Get Material Index)

ブループリント(BP)でメッシュが持つマテリアルを名前やインデックスを指定して取得する方法です。

インデックスを指定してマテリアルを取得することができます。
インデックス指定で取得するには「Get Material」ノードを使います。
マテリアルの取得002
「Target」にはメッシュを指定します。
「Element Index」にはマテリアルのインデックス番号を指定します。

これでインデックス番号を指定してマテリアルを取得する事ができます。

上記「Get Material」ノードを使う場合、インデックスで扱うことになりますが、
「Get Material Index」ノードを使うことで
マテリアル名からインデックス番号を取得することができます。
マテリアルの取得005
「Target」にはメッシュを指定します。
「Material Slot Name」にはマテリアル名を指定します。

この2つをセットで使うことで、マテリアル名からマテリアルを取得することができます。

マテリアルの取得000
ちなみにマテリアル取得関係はこういったノードもあるようです。

| UE4 | 14:38 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 メッシュが持つマテリアル一覧を配列で取得する(Get Materials)

ブループリント(BP)でメッシュが持つマテリアル一覧を配列で取得する方法です。

メッシュが持つマテリアル一覧を配列で取得するには
「Get Materials」ノードを使います。
マテリアルの取得003
「Target」にはメッシュを指定します。

これでマテリアル一覧が配列で取得できます。

マテリアルの取得000
ちなみにマテリアル取得関係はこういったノードもあるようです。

| UE4 | 14:35 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 メッシュが持つマテリアルの名前を取得する(Get Material Slot Names)

ループリント(BP)でメッシュが持つマテリアルの名前を取得する方法です。

com さんに教えていただきました!

メッシュが持つマテリアルの名前を取得するには
「Get Material Slot Names」ノードを使います。
マテリアルの取得004
「Target」にはメッシュを指定します。

これでマテリアルの名前が一覧で取得できます。
こちらも簡単ですね。

マテリアルの取得000
ちなみにマテリアル取得関係はこういったノードもあるようです。

| UE4 | 14:12 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 メッシュが持つマテリアルの数を取得する(Get Num Materials)

ブループリント(BP)でメッシュが持つマテリアルの数を取得する方法です。

メッシュが持つマテリアルの数を取得するには
「Get Num Materials」ノードを使います。
マテリアルの取得001
「Target」にはメッシュを指定します。

これでマテリアルの数が取得できます。
簡単ですね。

マテリアルの数は「Get Material」ノードへのインデックスでも使えそうです。
マテリアルの取得000
ちなみにマテリアル取得関係はこういったノードもあるようです。

| UE4 | 14:07 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ドット絵を表示する(テクスチャのフィルタ設定、マテリアル設定)

こういうツイートを見かけたので
ドットをそのまま表示したいときのためのメモです。

テクスチャの設定とマテリアルの設定両方が必要みたいですね。

というわけでちょっと試してみました。
テクスチャサンプリング000
まずは普通に表示してみました。

そしてまずテクスチャの設定をします。
テクスチャサンプリング001

「Filter」の設定を「Nearest」に変更します。
テクスチャサンプリング002
「Filter」はテクスチャに対するバイリニアフィルタなどを設定するところですね。
このメニューは最初閉じられているので探すのに苦労しました。

次にマテリアルの設定をします。
テクスチャサンプリング003
ノードのマテリアルを選択すると詳細にでてくる
「Fully Rough」にチェックを入れます。
こちらのメニューも最初は閉じられているので探すのに苦労しました。

そして設定して表示してみたのがこちら。
テクスチャサンプリング004
うん。さっぱり違いがわからない!

テストに使う素材を間違えたのかもしれませんね…。
というわけでとりあえずのメモとなります。

| UE4 | 15:08 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT