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

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

| PAGE-SELECT | NEXT

≫ EDIT

UE4 シンプルな画面のフェードイン・フェードアウト(Start Camera Fade)

シンプルな色を指定した画面のフェードイン、フェードアウトの処理の方法です。
ツイッターをみていたらこういうものを見つけました。

「Start Camera Fade」というのを使うとすぐにできそうですね。

公式ドキュメントはこちら。

・Start Camera Fade
https://docs.unrealengine.com/latest/INT/BlueprintAPI/CameraFades/StartCameraFade/index.html

「Start Camera Fade」ノードはこんな感じに。
シンプルなカメラフェード001
「Target」には「Player Camera Manager」を指定します。
「From Alpha」にはフェード開始時のアルファを指定します。透明からなら0.0。不透明からなら1.0を指定しましょう。
「To Alpha」にはフェード先のアルファを指定します。フェードインなら1.0。フェードアウトなら0.0を指定しましょう。
「Duration」にはフェードの時間を秒で指定します。
「Color」にはフェードに使う画面の色を指定します。
「Should Fade Audio」はオーディオ関係もフェードするかを指定します。

True to fade audio volume along with the alpha of the solid color.

とあるので、オーディオのボリュームをアルファ値を参照してフェードさせるようです。
「Hold When Finished」はフェードが終わった後にそのフェード状態を維持するかを指定します。
これをTrueにしないと、フェードアウトが終わった瞬間画面がすぐに戻ってしまうので注意しましょう。

というわけでフェードインを組んでみるとこんな感じに。
シンプルなカメラフェード002
フェードインは色を変えてみました。

フェードアウトはこんな感じに。
シンプルなカメラフェード000

単純なものなら全然これでいけそうですね。
画面切り替えの際にはこれを使ってみるのがよさそうですね。
スポンサーサイト

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

≫ EDIT

UE4 一定の確率でbool値を返して処理をする(Random Bool、Random Bool with Weight)

ゲームを作ってると一定確率で処理をしたいときが多々あると思います。
そこで、こんなノードがあるようです!

「Random Bool with Weight」というノードがあるみたいですね。
調べてみるとただランダムに処理したい場合は「Random Bool」というノードがあるようです。

まずは「Random Bool」です。
ランダムブール000

公式ドキュメントはこちら。
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Math/Random/RandomBool/index.html

Returns a uniformly distributed random bool


とありますね。

一様分布(いちようぶんぷ)は、離散型あるいは連続型の確率分布である。 サイコロを振ったときの、それぞれの目の出る確率など、すべての事象の起こる確率が等しい現象のモデルである。


調べてみるとこんな感じの乱数のようです。

ランダムブール002
試しにこんな感じでノードを書いてみました。
結果がこちら。
ランダムブール003
いい感じにランダムになってますね。

確率指定をしたい場合は「Random Bool with Weight」を使うのが良さそうです。
ランダムブール001
「Weight」には確率を入れましょう。1.0で100%。0.5で50%といった感じですね。

こちらもこんなノードを書いてみました。
ランダムブール004
25%の確率でtrueを返すようにしてみました。
結果はこちら。
ランダムブール005
こちらもいい感じではないかと!

確率実行はゲームでは結構必須なものなのでこういったノードがあるのは助かります。

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

≫ EDIT

UE4 マウスのホイール回転量の取得(Event Mouse Wheel Axis)

マウスのホイール回転量を取得して処理する方法です。
調べてみるとこんなイベントが。

・Mouse Wheel Axis
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Input/MouseEvents/MouseWheelAxis/index.html

「Mouse Wheel Axis」というイベントを使うと良いっぽいです。
マウスホイール取得001
マウスのホイールを回転させると「Axis Value」に値が入ってくるようですね。

ということで、使いやすいように係数をかけて使ってみました。
マウスホイール取得000
無事思い通りの処理ができました!

といった感じですね。
これも自作のカメラをマウスで操作したくて調べていたのですが
上記イベントを使って無事実装することができました!

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

≫ EDIT

UE4 パッケージ化時には処理されないデバッグ処理を実装する(Is Packaged for Distribution)

配布するときには実行されてほしくないが、
開発途中の状態では実行されてほしいデバッグ機能などがあると思います。
ここらへんどう実装するのかなというのを調べてました。

そうしたらこういう記事がありました。

・UE4で一本出してみて困ったこと (えーでるわいす なる)
http://edelweiss.skr.jp/column/1412_ue4/

えーでるわいすのなるさんの記事ですね。UE4初期の頃の記事ですが。

・#ifdef DEBUG的なものがない
  デバッグ用、開発用の機能を作る時につらい。
  せめてパッケージングの Development, Shipping が判定できたりすると助かる。
>Shun Sasaki @s_ssk13:欲しい! デバッグ用の機能をまとめておく
  CheatManager(そもそもBPに公開されてない?)というのがあるが、それだけじゃ足りない。
>Jun(Epic):今後の課題として検討させていただければと思います。
>alwei @aizen76:Is Packaged for Distributionノードで開発中かパッケージングされたものかの判定はできますね。

この中に上記のようなコメントがありました。
「Is Packaged for Distribution」というノードを使えばできるみたいですね。

ツイッターでもこういったリプライを頂いたのでいけそうですね。

公式ドキュメントはここですね。また英語しかない…。

・Is Packaged for Distribution
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Development/IsPackagedforDistribution/index.html

「Returns whether this is a build that is packaged for distribution」とあるので
パッケージ化されている場合のみ true を返すノードのようですね。

というわけで使ってみるとこんな感じに。
パッケージ化されていない場合のノード000
「パッケージ化」というのがどういう状態なのかちょっと調べて見ないとですが
開発途中の処理はこれで判断しておくと良いかもですね。
ただ、これ全部に埋め込むとめんどくさそうなので、起動時にこれでチェックして作っておくのがよいのかな。
あとは、ノードの情報がマスターにも含まれそうなのがもやもやする感じですかねー。

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

≫ EDIT

UE4 マウスの移動量の取得(Event Input Axis Turn、Event Input Axis LookUp)

マウスの移動量を取得して処理する方法です。
マウスの座標を毎フレーム受け取って差分で処理をするという方法もあるかなと思ったのですが
UE4にマウスを乗っ取られている状態だと
座標の取得がうまくいかないことがわかりました。

なので、これをどうするか調べていたところ、以下のようなドキュメントが。

・ブループリントで入力をセットアップする操作手順
https://docs.unrealengine.com/latest/JPN/Gameplay/HowTo/SetUpInput/Blueprints/index.html

「Input Axis Turn」と「Input Axis LookUp」というイベントが使えそうでした。

「Input Axis Turn」はマウスの横の移動量を取得できます。
マウスの移動量取得000
「Axis Value」で移動量が取得できます。
いい感じに扱うために任意の値を掛けて使うのがよさそうです。

「Input Axis LookUp」はマウスの縦の移動量を取得できます。
マウスの移動量取得001
「Axis Value」で移動量が取得できます。
いい感じに扱うために任意の値を掛けて使うのがよさそうです。

といった感じですね。
自作のカメラをマウスで操作したくて調べていたのですが
上記イベントを使って無事実装することができました!

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

| PAGE-SELECT | NEXT