僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

UE4メモ:画面をクリックせずにマウスカーソルの有無の処理を瞬時に切り替える

 

どういうことかというと、SetShowMouseCursorというノードがありましてそのノードはマウスのカーソルを表示するか設定できるノードなのですが

f:id:Bussan_dayo:20160522153215p:plain

 

たとえば以下のノード構成はFを押した際にマウスカーソルWidgetを表示、もう一度押すとマウスカーソルが消えてWidgetが消えるしたものです。

f:id:Bussan_dayo:20160522153228p:plain

 

実行してみるとFを押した際にWidgetが出てきますが、Playerの操作を取得してしまいます。(画面キャプチャでマウスカーソルは消えています。)

f:id:Bussan_dayo:20160522153248p:plain

 

一度画面をクリックするとPlayerの操作がきかなくなります。

 

もう一度Fを押すとWidgetが消えマウスカーソルはなくなりますが、画面を一回クリックしないとPlayer操作が効かない状態となっています。

f:id:Bussan_dayo:20160522153353p:plain

 

 

動画にするとこんな感じです。

 

 

 

これはSetShowMouseCursorをTrueの状態にすると、自動でInputModeがGameOnlyからGame and UIに切り替わる仕組みがあるらしく、

その処理は画面をクリックした際に流れているっぽいです。

 

マウスカーソルの有無を設定した後に瞬時に処理を切り替えたい場合は、マウスカーソルをTrueにする場合はノードの後にSetInputModeGameandUIノードを、falseにする場合はSestInputModeGameOnlyのノードを置く必要があるっぽいですね。

f:id:Bussan_dayo:20160522154138p:plain

 

 

 

 

今後忘れそうなのでメモ程度ですが

 

以上です。

最近の進捗

 

制作物の記事を上げたのが2月で震えたので最近の進捗を・・・

 

最近はマルチプレイの実装を行っています。

 

 

あとはモデル作ったりSubstancePainterをやったりと・・・

 

 もっといろいろとやりたいんですけど、忙しいので少しづつ作っていきたいですね・・・

 

 

以上

 

 

 

 

UE4:Widget上にActorを表示する際の新たな手法の模索

Widget上にActorを映しだす方法ってネット上にチュートリアルが存在しています。

 

Render 3D objects in UMG Widget/HUD | EngineUnreal

この方法、ブロックで部屋を作って映し出す方法なんでもすれども、ブロック無しでできないかなーと思い、この方法を踏襲しつつ違う方法で試してみました。

 

以前作ったこれを使います。

 

 

 

 この方法により

 

f:id:Bussan_dayo:20160501203707p:plain

 

周りにブロックをおかずに

f:id:Bussan_dayo:20160501203951p:plain

 

Widget上にだすことが出来ました。

 

 

以前からあるチュートリアルを改造した形になるので詳しい実装方法についてはチュートリアルを見てください。

 

Postprocess側

Can you post process just some actors? - UE4 AnswerHub

このアンサーハブに書いてある手法を用います。

Postprocessのノード構成を若干変えてこのようにしました。

f:id:Bussan_dayo:20160501204133p:plain

色はRGBで0.1.1となります。 

 

 

描画ターゲットを作成し、BlueprintのScene2DCaptureを作成します。

記事にもある通り描画ターゲットのテクスチャーサイズを2048にします。

2Dcaptchaを設置し、TextureTargetに作成した描画ターゲットを入れ、ポストプロセスのセッティングのBlendablesに先ほど作成したポストプロセスマテリアルを入れます。

f:id:Bussan_dayo:20160501204521p:plain

 

椅子を設置した後にアンサーハブにもあるようにRenderCustomDepthPassにチェックを入れます。

f:id:Bussan_dayo:20160501204712p:plain

 

 

 

次にCaptureSourceをFinalColorへ変更します。

f:id:Bussan_dayo:20160501204649p:plain

 

 

Widgetに乗せるためのマテリアルも若干変えました。

f:id:Bussan_dayo:20160501205922p:plain

 

 

これでWidgetのimageにマテリアルを貼り付け、CreateWidgetとAddViewノードで画面上に出てきます。

 

 

アニメーションと組み合わせてロード画面を作ってみました。

 

 

カメラには RenderCustomDepthPassにチェックを入れたものしか映らないのでレベルに目立たずに配置出来ると思います。又は一つのBlueprintで管理すればもっと良いのかもしれませんね。

 

もっといい方法がありましたら、ぜひ共有していただけると幸いです。

 

 以上です。

 

記事を書いてくださったThomas Coquel氏、アンサーハブに投稿してくださったson1cman氏そして解答してくださったAchilleon氏に感謝いたします。

 

UE4:HUDを用いたターゲットのマーキングについて

f:id:Bussan_dayo:20160411223921p:plain

 

 

 

 

 

 

 

こんな感じのものを作りました。

HUDで行ったのはWidgetだとちょっとめんどくさいなぁと思いこっちで作ってみました。Widgetだとimageを動的に生成することが難しい(調べきれてないだけかも)のです。そうなると、一回はマーキングできますけど2個以降になると難しい。まあ、今回使うマーキングの画像を一つ置いてWidgetを何個も生成すれば出来るけども・・・

 

とりあえずHUDを用いた方法の一つということでまとめます。

Widgetの方法もあったら是非教えて下さい~!

 

仕様:

1.アクターに対し右クリックでマーキング

2.アクターに対して左クリックでアクターをマーキングごと消す。

3.一つのKey入力でLevel上にあるアクターすべてをマーキングする

 

使用するもの

FirstPersonテンプレート

 

 1.アクターに対し右クリックでマーキング

FPSキャラクターのブループリント

まずFire以降のBPを全部消します。

f:id:Bussan_dayo:20160411215928p:plain

 

右クリックのInputを設定します。

 

f:id:Bussan_dayo:20160411223331p:plain

 

次にTraceLinebyObjectを用い以下のようにノードを組みます。

f:id:Bussan_dayo:20160411220150p:plain

これでカメラから先のアクターを認識できます。

 

続きを読む

UE4:GearVRのアプリ開発で詰まった所

詰まった所が合った場合随時更新します。

 

はじめに

GearVR買いました。

 

なので早速UE4でアプリ開発を開始しました。

 

詰まった部分1「GearVR上でBlackScreenになる」

いろんなサイトを見てGearVRにプロジェクトを映してたんですけど、出来ない。

 

まずUE4.11で作成をしたのですが、うんともすんとも言わない。

GALAXYを開発者モードにしてもなんともならないのでUE4.10に変えました。

開発者モードで実行した場合きちんと描画されるのですが、GearVRに装着すると音だけでて画面には描画されなくなりました。ブラックスクリーンのままです。

 

そっから数時間いろいろと設定をした所、ドキュメントに書かれている設定+SteamVRのプラグインを切ることで動きました。

ちなみに同じ設定をUE4.11でやったら出来ませんでした。

 

以上です。

UE4:フックショットの実装のブループリントについて

f:id:Bussan_dayo:20160314020551p:plain先週のTokyoMeetUpにお越しくださった方々そして配信を見てくださった方々ありがとうございました。

 

先日のTokyoMeetUpで実装した機能の一つを。(プロジェクトを配布と思ったのですが、いろいろとあって記事にします。)

 

作成したのもはフックショットになります。

 

 

 

 

簡単にではありますが、実装方法について書きたいと思います。

仕様

1.クリックするとLineTraceでHitした場所へ飛ぶ(フックショット)

2.フックショットの作動中にジャンプをする

3.地面にフックショットを当てた時は自動的にフックショットの動作を停止する

 

使用するテンプレート

FirstPersonTemplate

 

実装

1.クリックするとLineTraceでHitした場所へ飛ぶ(フックショット)

まずFirstPersonCharacterのブループリントを開きます。

InputActionFireのノードを切り以下のようにノードを組みます。

f:id:Bussan_dayo:20160314020558p:plain

このノード構成はTraceLineのノード構成で画面の中心から3000かけた部分へLineTraceを飛ばすようになっています。

 

次にBoolean型の変数を作成します。今回は”Hit Object?”という名前にしました。

そしてHitOutからBreakHitResultを出しVector変数を作成しLocationとつなぎます。

f:id:Bussan_dayo:20160314020602p:plain

これでObjectにヒットした時にBoolean型の変数の”HitObject?”がTrueになります。

続きを読む

UE4:TokyoMeetUpにてライブノーディングをしました。

atnd.org

 

【UE4】Unreal Engine Tokyo MeetUp! 2016年03月08日 #uetokyo - Togetterまとめ

当日の様子をTogetterでまとめていただいてます!

 

第一回UE4TokyoMeetUpにお越しくださったかたありがとうございました。

僕はライブコーディングを行ったのですがどうでしたでしょうか。少しでも楽しんでいただけたでしょうか。

登壇していた側としてはなんとか形にしないとという焦りで客観的に見ることが難しい状況で会場の様子がわかりませんでした。

 

作成したものは立体機動でゴブリンを倒すゲームです。

進撃のなんとかのパクリです。途中でリクエストが来たので当初フックショットで飛びながらゴールを目指すものから変わりました。

 

始まった途端THETASで写真撮ったり登壇中にPCが重いぞと文句を言ったり運営の注文にケチ付けたり、アイディアを頂いた際に「うーん、無理」と言ったり作業中にTwitterにてツイートをしたりと舐めたことをした事について不快に思った方がいたのなら申し訳ありませんでした。

 

 

緊張感がピークに達すると態度が悪くなるというよくわからない現象に最近襲われています。謎です。本能的な防衛反応でしょうか。

 

投票的に負けてしまったのですが、個人的にはこんな環境に置かれること自体なかったので楽しかったです。ただ二度とやりたくはないです。

 

 

 

今回説明するときにテンパッて適当に流していたりしていたのがもっとも反省すべき点かと思います。(遠藤くんはちゃんと説明していて凄かったなぁ

作るのに必死になっていて説明スべき部分が出来ていなかった点についてはもっときちんと出来るのではないか、今後同じような失敗がないように考えるべきだと感じます。不十分な説明で申し訳ありませんでした。

 

 

2時間でゲームを作るのは非常に難しいです。テンパるとなかなか形にすることが困難になる事がわかったので次やるとしたら慌てずに動かなかった部分やバグを違う視点で見れるといいなぁと思いました。もうやりたくはないですが。

 

人前に出ること自体苦手なので不愉快な点が多かったと思いますが、人前に出れない人間のリハビリだと思っていただければ幸いです。

 

今回反省すべき点が多いと思います。知識的に甘かった部分が多かったと思います。

現にゲームとして完成することが出来なかったのは実力不足な部分が多かったからだと考えています。

今後ともUE4をいろいろと勉強して情報共有ができればと思います。

 

今後ともよろしくお願いします。

 

 

今回使用した実装はこのブログにて今後書いていきます。

 

以上