UE4メモ:画面をクリックせずにマウスカーソルの有無の処理を瞬時に切り替える
どういうことかというと、SetShowMouseCursorというノードがありましてそのノードはマウスのカーソルを表示するか設定できるノードなのですが
たとえば以下のノード構成はFを押した際にマウスカーソルとWidgetを表示、もう一度押すとマウスカーソルが消えてWidgetが消えるしたものです。
実行してみるとFを押した際にWidgetが出てきますが、Playerの操作を取得してしまいます。(画面キャプチャでマウスカーソルは消えています。)
一度画面をクリックするとPlayerの操作がきかなくなります。
もう一度Fを押すとWidgetが消えマウスカーソルはなくなりますが、画面を一回クリックしないとPlayer操作が効かない状態となっています。
動画にするとこんな感じです。
これはSetShowMouseCursorをTrueの状態にすると、自動でInputModeがGameOnlyからGame and UIに切り替わる仕組みがあるらしく、
その処理は画面をクリックした際に流れているっぽいです。
マウスカーソルの有無を設定した後に瞬時に処理を切り替えたい場合は、マウスカーソルをTrueにする場合はノードの後にSetInputModeGameandUIノードを、falseにする場合はSestInputModeGameOnlyのノードを置く必要があるっぽいですね。
今後忘れそうなのでメモ程度ですが
以上です。
最近の進捗
制作物の記事を上げたのが2月で震えたので最近の進捗を・・・
最近はマルチプレイの実装を行っています。
ずっと避けていたUE4のネットワーク周りの勉強も兼ねて実装しました。同期の部分で手こずって少し時間がかかってしまいました..... https://t.co/B8tsjHZb6P
— ぶっさん (@Bussan_desu) 2016年4月21日
転んじゃったグレイマン(このポストプロセス色々と使えそうですね https://t.co/fPxhwdpeb4
— ぶっさん (@Bussan_desu) 2016年4月26日
マテリアルとBPの検証中。位置によっては何故かズレるのでBPの構成を考え直そう.... #UE4Study https://t.co/4YJfmDasHG
— ぶっさん (@Bussan_desu) 2016年5月5日
韓国のパーティクル本のURLから素材が落とせないのでPhotoshopの練習がてらテクスチャ作って本見ながらパーティクルを作った。少しは本に近づいたかしら・・・ pic.twitter.com/zWz9hkz2Tj
— ぶっさん (@Bussan_desu) 2016年5月9日
やっとマルチプレイのテスト環境が整いました... https://t.co/pTMyKD4kRD
— ぶっさん (@Bussan_desu) 2016年5月10日
あとはモデル作ったりSubstancePainterをやったりと・・・
モデリングの練習で海外サイトのモデルを見ながら作成。きっとノーマルマップを書き込んだらよく見えるはず・・・はずなんだ・・・https://t.co/Vn1yQ31g6s pic.twitter.com/QZxnQ1vtr6
— ぶっさん (@Bussan_desu) 2016年5月14日
ノーマルマップ入り。色をつければきっとよく見えるはず・・・ pic.twitter.com/Ni0ElIgeh3
— ぶっさん (@Bussan_desu) 2016年5月15日
もっといろいろとやりたいんですけど、忙しいので少しづつ作っていきたいですね・・・
以上
UE4:Widget上にActorを表示する際の新たな手法の模索
Widget上にActorを映しだす方法ってネット上にチュートリアルが存在しています。
Render 3D objects in UMG Widget/HUD | EngineUnreal
この方法、ブロックで部屋を作って映し出す方法なんでもすれども、ブロック無しでできないかなーと思い、この方法を踏襲しつつ違う方法で試してみました。
以前作ったこれを使います。
転んじゃったグレイマン(このポストプロセス色々と使えそうですね https://t.co/fPxhwdpeb4
— ぶっさん (@Bussan_desu) 2016年4月26日
ノード構成ちょっと変えたらテクスチャーもちゃんと表示された。何かに使おう(思いつかない pic.twitter.com/mJ2Mbeu8Cv
— ぶっさん (@Bussan_desu) 2016年4月26日
この方法により
周りにブロックをおかずに
Widget上にだすことが出来ました。
以前からあるチュートリアルを改造した形になるので詳しい実装方法についてはチュートリアルを見てください。
Postprocess側
Can you post process just some actors? - UE4 AnswerHub
このアンサーハブに書いてある手法を用います。
Postprocessのノード構成を若干変えてこのようにしました。
色はRGBで0.1.1となります。
描画ターゲットを作成し、BlueprintのScene2DCaptureを作成します。
記事にもある通り描画ターゲットのテクスチャーサイズを2048にします。
2Dcaptchaを設置し、TextureTargetに作成した描画ターゲットを入れ、ポストプロセスのセッティングのBlendablesに先ほど作成したポストプロセスマテリアルを入れます。
椅子を設置した後にアンサーハブにもあるようにRenderCustomDepthPassにチェックを入れます。
次にCaptureSourceをFinalColorへ変更します。
Widgetに乗せるためのマテリアルも若干変えました。
これでWidgetのimageにマテリアルを貼り付け、CreateWidgetとAddViewノードで画面上に出てきます。
アニメーションと組み合わせてロード画面を作ってみました。
WidgetにActorを出す用途を探してたけどロード画面が良いかもしれないなぁ https://t.co/iBjCUy1nRD
— ぶっさん (@Bussan_desu) 2016年5月1日
カメラには RenderCustomDepthPassにチェックを入れたものしか映らないのでレベルに目立たずに配置出来ると思います。又は一つのBlueprintで管理すればもっと良いのかもしれませんね。
もっといい方法がありましたら、ぜひ共有していただけると幸いです。
以上です。
記事を書いてくださったThomas Coquel氏、アンサーハブに投稿してくださったson1cman氏そして解答してくださったAchilleon氏に感謝いたします。
UE4:HUDを用いたターゲットのマーキングについて
こんな感じのものを作りました。
HUDで行ったのはWidgetだとちょっとめんどくさいなぁと思いこっちで作ってみました。Widgetだとimageを動的に生成することが難しい(調べきれてないだけかも)のです。そうなると、一回はマーキングできますけど2個以降になると難しい。まあ、今回使うマーキングの画像を一つ置いてWidgetを何個も生成すれば出来るけども・・・
とりあえずHUDを用いた方法の一つということでまとめます。
Widgetの方法もあったら是非教えて下さい~!
仕様:
1.アクターに対し右クリックでマーキング
2.アクターに対して左クリックでアクターをマーキングごと消す。
3.一つのKey入力でLevel上にあるアクターすべてをマーキングする
使用するもの
FirstPersonテンプレート
1.アクターに対し右クリックでマーキング
FPSキャラクターのブループリント
まずFire以降のBPを全部消します。
右クリックのInputを設定します。
次にTraceLinebyObjectを用い以下のようにノードを組みます。
これでカメラから先のアクターを認識できます。
続きを読む
UE4:GearVRのアプリ開発で詰まった所
詰まった所が合った場合随時更新します。
はじめに
GearVR買いました。
なので早速UE4でアプリ開発を開始しました。
詰まった部分1「GearVR上でBlackScreenになる」
いろんなサイトを見てGearVRにプロジェクトを映してたんですけど、出来ない。
まずUE4.11で作成をしたのですが、うんともすんとも言わない。
GALAXYを開発者モードにしてもなんともならないのでUE4.10に変えました。
開発者モードで実行した場合きちんと描画されるのですが、GearVRに装着すると音だけでて画面には描画されなくなりました。ブラックスクリーンのままです。
そっから数時間いろいろと設定をした所、ドキュメントに書かれている設定+SteamVRのプラグインを切ることで動きました。
ちなみに同じ設定をUE4.11でやったら出来ませんでした。
以上です。
UE4:フックショットの実装のブループリントについて
先週のTokyoMeetUpにお越しくださった方々そして配信を見てくださった方々ありがとうございました。
先日のTokyoMeetUpで実装した機能の一つを。(プロジェクトを配布と思ったのですが、いろいろとあって記事にします。)
作成したのもはフックショットになります。
簡単にではありますが、実装方法について書きたいと思います。
仕様
1.クリックするとLineTraceでHitした場所へ飛ぶ(フックショット)
2.フックショットの作動中にジャンプをする
3.地面にフックショットを当てた時は自動的にフックショットの動作を停止する
使用するテンプレート
FirstPersonTemplate
実装
1.クリックするとLineTraceでHitした場所へ飛ぶ(フックショット)
まずFirstPersonCharacterのブループリントを開きます。
InputActionFireのノードを切り以下のようにノードを組みます。
このノード構成はTraceLineのノード構成で画面の中心から3000かけた部分へLineTraceを飛ばすようになっています。
次にBoolean型の変数を作成します。今回は”Hit Object?”という名前にしました。
そしてHitOutからBreakHitResultを出しVector変数を作成しLocationとつなぎます。
これでObjectにヒットした時にBoolean型の変数の”HitObject?”がTrueになります。
続きを読むUE4:TokyoMeetUpにてライブノーディングをしました。
【UE4】Unreal Engine Tokyo MeetUp! 2016年03月08日 #uetokyo - Togetterまとめ
当日の様子をTogetterでまとめていただいてます!
第一回UE4TokyoMeetUpにお越しくださったかたありがとうございました。
僕はライブコーディングを行ったのですがどうでしたでしょうか。少しでも楽しんでいただけたでしょうか。
登壇していた側としてはなんとか形にしないとという焦りで客観的に見ることが難しい状況で会場の様子がわかりませんでした。
作成したものは立体機動でゴブリンを倒すゲームです。
進撃のなんとかのパクリです。途中でリクエストが来たので当初フックショットで飛びながらゴールを目指すものから変わりました。
始まった途端THETASで写真撮ったり登壇中にPCが重いぞと文句を言ったり運営の注文にケチ付けたり、アイディアを頂いた際に「うーん、無理」と言ったり作業中にTwitterにてツイートをしたりと舐めたことをした事について不快に思った方がいたのなら申し訳ありませんでした。
ああああああああうあああああああ pic.twitter.com/Ud3Ozf8jkt
— ぶっさん (@Bussan_desu) March 8, 2016
ゴブリンだあああ!!!#UETokyo pic.twitter.com/ubOp4VfqxL
— ぶっさん (@Bussan_desu) March 8, 2016
汚くないよ;;;;#UETokyo
— ぶっさん (@Bussan_desu) March 8, 2016
おいてめぇ線抜いてんじゃねけ
— ぶっさん (@Bussan_desu) March 8, 2016
負けたんだが!ふぁああああ#UETokyo
— ぶっさん (@Bussan_desu) March 8, 2016
緊張感がピークに達すると態度が悪くなるというよくわからない現象に最近襲われています。謎です。本能的な防衛反応でしょうか。
投票的に負けてしまったのですが、個人的にはこんな環境に置かれること自体なかったので楽しかったです。ただ二度とやりたくはないです。
今回説明するときにテンパッて適当に流していたりしていたのがもっとも反省すべき点かと思います。(遠藤くんはちゃんと説明していて凄かったなぁ
作るのに必死になっていて説明スべき部分が出来ていなかった点についてはもっときちんと出来るのではないか、今後同じような失敗がないように考えるべきだと感じます。不十分な説明で申し訳ありませんでした。
2時間でゲームを作るのは非常に難しいです。テンパるとなかなか形にすることが困難になる事がわかったので次やるとしたら慌てずに動かなかった部分やバグを違う視点で見れるといいなぁと思いました。もうやりたくはないですが。
人前に出ること自体苦手なので不愉快な点が多かったと思いますが、人前に出れない人間のリハビリだと思っていただければ幸いです。
今回反省すべき点が多いと思います。知識的に甘かった部分が多かったと思います。
現にゲームとして完成することが出来なかったのは実力不足な部分が多かったからだと考えています。
今後ともUE4をいろいろと勉強して情報共有ができればと思います。
今後ともよろしくお願いします。
今回使用した実装はこのブログにて今後書いていきます。
以上