InRangeノードの「Inclusive」とは??

ちょっとした小ネタです。

 

まず、InRangeノードの意味は分かりますか??

 

InRangeノードは、

 

Valueの値が、Min~Maxの範囲内に入っていれば、「True」を返す。

 

というノードです。

 

なので、以下のような場合だと↓

f:id:Free_Gamer:20190108002218p:plain

Trueになります。

f:id:Free_Gamer:20190108002239p:plain

Valueの値「-10」は、

Min「-10」~Max「10」の範囲内の値なので当然ですね。


Valueの値が、Min~Maxの範囲外であれば、↓

f:id:Free_Gamer:20190108002432p:plain

Falseになります。

f:id:Free_Gamer:20190108002452p:plain

 

ここまではいいでしょうか??


では、今回の本題に入りましょう!

 

 

InRangeノードを使ってる時、このチェックボックスが何か気になりませんか??

f:id:Free_Gamer:20190108001514p:plain

一体どういう意味なんだろう??と気になった方もいるんじゃないでしょうか??
(僕は結構気になってたw)

 

この
「InclusiveMin」
「InclusiveMax」

の2つは、

 

結構シンプルな意味を持ってるのです!

 

では、実際にInRangeノードを使ってみましょう!

 

まず、「InclusiveMin」「InclusiveMax」にチェックをつけた状態で使ってみましょう!

f:id:Free_Gamer:20190108002218p:plain

結果はTrue!

f:id:Free_Gamer:20190108002239p:plain

なんだかデジャブ感がありますが、当然の結果ですよねw

 

では、「InclusiveMin」のチェックを外してもう一度検証してみましょう!

f:id:Free_Gamer:20190108003147p:plain

おや??結果がFalseですね。

f:id:Free_Gamer:20190108002452p:plain

 

確かに、Valueの値は、Min~Maxの範囲内に入っている。

f:id:Free_Gamer:20190108003436p:plain

 

ではどうして、

「InclusiveMin」のチェックを外しただけでFalseになってしまったのでしょう??

 

まずInclusiveがどういう意味なのか??

 

Inclusive・・・~を含めて、入れて

 

です。

 

「InclusiveMin」・・・最小を含める(意訳です)

「InclusiveMax」・・・最大を含める(意訳d(ry)

 

そう、つまりInRangeノードの「Inclusive」チェックは、

 

最小値を含めて判定するか?(InclusiveMin)

最大値を含めて判定するか?(InclusiveMax)

 

という意味なのです!

 

さっき、「InclusiveMin」のチェックを外したらFalseになったのは、

 

最小値(Minの値)を除いて、Valueの値が範囲内かどうか判定されていたからです!

 

つまり、

 

Valueの値「-10」が

Minの値「-9(Minの値『-10』を除いた状態)」

から

Maxの値「10」

の範囲内に入っているかどうか??

 

と判定されていたので、

当然Falseになりますよね!

 

逆にInclusiveMaxのチェックだけ外したら、

f:id:Free_Gamer:20190108005038p:plain

Valueの値「-10」が

Minの値「-10」

から

Maxの値「9(Maxの値『10』を除いた状態)」

の範囲内かどうか

 

と判定されます!

 

ちなみにこれは、Trueになります。

ちゃんと範囲内に入ってますもんね。

 

今回のお話で、InRangeノードの「Inclusive」の意味がお分かりいただけたでしょうか??

 

お分かりいただけたなら幸いです!

 

それではまた!^^ノシ

 

 

 

 

キャラの移動速度と移動アニメーションのレートを左スティックの倒し具合に合わせる方法!

※説明不足・曖昧で適当な表現あり。(まあいつもの事か)

 

 

サードパーソンテンプレートを使って紹介する。

f:id:Free_Gamer:20181225001309p:plain

※今回はXboxのコントローラーを使用した際の説明になっている。

 

まず、左スティックを約半分倒した時、

キャラの移動アニメーションはどう見えるか?

※一部分かりやすいようにスローを使っている。

youtu.be

お分かりいただけただろうか。

 

地面をつるつる滑っている感じで、とても不自然。

地に足をついて歩いている感じがしないだろう。

 

なので今回は、そんな不自然さを無くすために・・・

 

左スティックの倒し具合で

キャラの移動速度と

アニメーションのレートを変える方法

 

を紹介する。

 

サードパーソンテンプレートに最初っから備わっているグレーマンの移動アニメーション(画像だと「ThirdPerson_IdleRun_2D」)をコピーし、

コピーしたもの(画像だと「ThirdPerson_IdleRun_2D_New」を開いて改造しよう。

f:id:Free_Gamer:20181225002015p:plain

 

ThirdPerson_IdleRun_2D_New

以下のように改造しよう。

①ThirdPersonWalk

②ThirdPersonRun

f:id:Free_Gamer:20181225002508p:plain

f:id:Free_Gamer:20181225002627p:plain

レーマンのアニメーションBP「ThirdPerson_AnimBP」を開こう。

f:id:Free_Gamer:20181225003424p:plain

 

イベントグラフ

f:id:Free_Gamer:20181225003530p:plain

関数を2つ作る。

「CalculateGaitValue」

「CalculatePlayRate」

f:id:Free_Gamer:20181225003749p:plain

 

「CalculateGaitValue」

Speed・・・キャラの速度

WalkingSpeed・・・最大歩行速度

RunningSpeed・・・最大走行速度

f:id:Free_Gamer:20181225005350p:plain

f:id:Free_Gamer:20181225004330p:plain

まず「Gait」の意味は??

 

Gait・・・足取り、足元、歩き方

 

である。

 

だが今回の場合は、「歩き方」という意味で捉えたほうが分かりやすいだろう。

 

つまり、この関数「CalculateGaitValue」は、

 

キャラの歩き方を定義するための値を計算する関数なのだ。

 

キャラのSpeedによって、Gait値を変えるようにしてある。

 

Gait値

0・・・Idle(直立)

1・・・Walk(歩行)

2・・・Run(走行)

 

『Idle(0)~Walk(1)に遷移するための処理』

キャラのSpeed(Value)が、「0(InRangeA)」の時、「0(OutRangeA)」を返す。

キャラのSpeed(Value)が「InRangeB(WalkingSpeed)」に設定した値に達した時、「1(OutRangeB)」を返す。

f:id:Free_Gamer:20181225010053p:plain

『Walk(1)~Run(2)に遷移するための処理』

キャラのSpeed(Value)が、「0(InRangeA)」の時、「1(OutRangeA)」を返す。

キャラのSpeed(Value)が「InRangeB(WalkingSpeed)」に設定した値に達した時、「2(OutRangeB)」を返す。

 f:id:Free_Gamer:20181225010104p:plain

A(Speed)の値が、B(WalkingSpeed)の値より大きい場合、

f:id:Free_Gamer:20181225010859p:plain

Trueの値をGait変数に格納。そうじゃなければFalseの値を格納。

f:id:Free_Gamer:20181225011215p:plain

 

「CalculatePlayRate」

Gait・・・キャラの歩行状態

WalkAnimSpeed・・・キャラの最大歩行速度

RunAnimSpeed・・・キャラの最大走行速度

Speed・・・キャラの速度

ここら辺ちょっと理解が曖昧ですが・・・w

f:id:Free_Gamer:20181225014338p:plain

f:id:Free_Gamer:20181225021355p:plain


アニメーションレート

OutRangeA・・・0

OutRangeB・・・1

 

『歩行アニメーションレート計算処理』

キャラのSpeed(Value)が、「0(InRangeA)」の時、「0(OutRangeA)」を返す。

キャラのSpeed(Value)が「InRangeB(WalkingAnimSpeed)」に設定した値に達した時、「1(OutRangeB)」を返す。

f:id:Free_Gamer:20181225015631p:plain

『走行アニメーションレート計算処理』

キャラのSpeed(Value)が、「0(InRangeA)」の時、「0(OutRangeA)」を返す。

キャラのSpeed(Value)が「InRangeB(RunningAnimSpeed)」に設定した値に達した時、「1(OutRangeB)」を返す。

f:id:Free_Gamer:20181225015644p:plain

 

アニムグラフ

f:id:Free_Gamer:20181225022012p:plain
Idle

f:id:Free_Gamer:20181225021803p:plain

Run

f:id:Free_Gamer:20181225021930p:plain

Idle→Run

f:id:Free_Gamer:20181225022052p:plain

Run→Idle

f:id:Free_Gamer:20181225022123p:plain

 

 

レーマンのBPを開こう。

f:id:Free_Gamer:20181225022738p:plain

CharacterMovement(継承)の詳細パネル

MaxWalkSpeedを、設定したRunnnigSpeedの値(375)と同じにする。

f:id:Free_Gamer:20181225022622p:plain

f:id:Free_Gamer:20181225022919p:plain

↓RunnnigSpeedの値と同じにする。

f:id:Free_Gamer:20181225023053p:plain

 


それでは実際にプレイしてみよう!

走行

左スティック全倒し

youtu.be


歩行

左スティック半倒し

youtu.be

 

ゆっくり目の歩行

左スティックちょい倒し

youtu.be

 

左スティックの倒し具合で、キャラのスピードとアニメーションのレートが変わっているのが分かる。

これでかなりリアルな移動アニメーション処理が出来た!

 

自分でもところどころ理解しきれていない部分があるので、ちょくちょく荒い説明になったかもしれないが、

こんな説明でも伝わってくれたら幸いだ。

 

それではまた!^^ノシ







 

 

簡単な瓦礫の作り方!

今回は、

 

瓦礫の作成方法!

 

を紹介する!

 

※瓦礫を作成する為には被破壊メッシュが必要なので、

 

被破壊メッシュのプラグインを有効にする。

f:id:Free_Gamer:20181221175435p:plain

有効が完了したら、ここから本題に入る。

 

まず破壊したいメッシュ(画像だと「Pillar_50×500」)の被破壊メッシュを作成。

f:id:Free_Gamer:20181221175841p:plain

 

被破壊メッシュの編集画面を開く。

EnableImpactDamageにチェックを入れる。

これで、この被破壊メッシュは何かしらの衝撃を受けた時に破壊されるようになる。

f:id:Free_Gamer:20181221180004p:plain

 

作成した被破壊メッシュをレベルに配置。

地面から離れた位置に置く。

f:id:Free_Gamer:20181221180453p:plain

 

配置した被破壊メッシュの「SimulatePhysics」を有効にする。

f:id:Free_Gamer:20181221181015p:plain

 

配置したら、シミュレートを開始する。

f:id:Free_Gamer:20181221180741p:plain

地面に落ちて崩れるだろう。

f:id:Free_Gamer:20181221181106p:plain

 

崩れた被破壊メッシュにマウスカーソルを重ね、右クリック。

赤枠で囲んである部分を選択。(”Pillar_50×500_DM”をスタティックメッシュへ変換)

f:id:Free_Gamer:20181221181603p:plain

スタティックメッシュに変換した被破壊メッシュの名前・保存先を決定する。

(画像では保存先を「コンテンツ」名前を「SM_Rubble」にしている)

f:id:Free_Gamer:20181221181824p:plain

変換したスタティックメッシュがしっかり保存されているのが分かる。

f:id:Free_Gamer:20181221182043p:plain

これで、被破壊メッシュをスタティックメッシュに変換する事が出来た!

 

もちろん変換したスタティックメッシュは好きなだけ配置できる。

ただ、変換した時点ではコリジョンがついてないので、コリジョンが必要な場合はスタティックメッシュ編集画面でコリジョンをつけよう。

f:id:Free_Gamer:20181221182331p:plain

 

さあ!君も色んな瓦礫を作ってみよう!( ◠‿◠ ) 

 

それではまた!^^ノシ

 

いつもと違うお話。そして現在の自分の状態

こんちゃ。

現在抑うつ状態です。

原因は、

・仕事

・理想と現実のギャップ

ざっとこの2つですね。

 

~仕事~

約3年ぐらい工場での仕事を続けています。

マシニングという機械加工による仕事ですね。

僕は、この職場に不満がありました。

・周りからの冷ややかな視線。陰口(これは思い込みの可能性ありw)

・夜勤が定時に来ない。定時の1時間後に来る。必ず。暗黙の了解なのかは不明。

夜勤は全員フィリピン人。17時が定時なのだが1時間後の18時に来る。なので、必ず1時間無駄な残業をしなければならない。ストレスがたまる。

・自分のやりたい仕事程後回しにされる。

「やらなければならない事>やりたい事」になる。

つまり、やりたい仕事よりもやらなければならない仕事のほうが多い。

たまにならまだしも、ほぼ毎回。

あるやらなければならない仕事がようやく終わって、

「よーし!やっとやりたい仕事ができる!」

そしたら社長から、

「次これやって」

・・・・・・やりたくもない仕事が来ました。

そっちよりも、俺こっちやりたいんですよと。

まあでも?僕も一応20歳超した社会人ですから?

「はい!」

快く引き受けます。表面上は。

「まあ、こういうことはどの社会でも起こりうることだよね!」

そう自分に言い聞かせ、我慢して我慢して、全てを割り切って働いてきました。

 

が、

 

そんな日々が続いたある日、

 

もう限界が来ました。

 

「毎日毎日同じことの繰り返し」

「こんな人生意味あるのか??」

「俺は都合のいいロボットか??」

頭の中でそんな言葉が渦巻きました。

 

社長から渡された仕事(図面)を握りつぶすぐらい、

頭が鉛のように重く、硬くなってしまうぐらい、

心臓がズキズキ痛むぐらい、

本当にもう限界でした。

誇張表現ではありません。本当に文字通りこんな感じでした。

 

そして社長に言いました。

「早退します。」

 

あのまま、また我慢して働いていたら自分がどうなっていたか・・・

考えるだけで頭の震えが止まらない。

 

心療内科に通い、医師に事情を説明しました。

適応障害 抑うつ状態 一ヶ月の休職」という内容の診断書を貰い、

寝付けない日々が続いたので、睡眠薬も貰いました。

 

診断書を会社に渡すために社長に連絡をしました。

そしたら・・・

 

「皆、君と同じように我慢して働いている。君だけじゃない。だからそんな理由で診断書は出さない方がいい。」

 

と言われました。

・・・・・・正直ショックでした。

基本的に社長とは結構親しかったので、僕のメンタルの弱さ、そして現在の僕の状態を分かってくれてると思ったので、休ませてくれると思いました。

 

しかし、受け入れてくれず。浅はかな期待をしてしまったのでしょうか。

 

現在3日間仕事を休んでいるが、はっきり言ってもう働きたくないのです。

 

もう、我慢はしたくないのです。

 

我慢の対価はお金なのでしょうか??

 

お金を手に入れるには、我慢しかないのでしょうか??

 

そんなことを真剣に考えるようになりました。

 

我慢してお金が手に入ったとしても、その分自分のメンタルは擦り減ります。

メンタルが擦り減れば、あらゆるものに対する意欲、欲求、活力が失われます。

紙切れが積み重なる分、自分のメンタルは紙切れのように擦り減っていく。

結果、お金を大して使うこともなく、休みの日はだらだら。

これが毎日毎日続く・・・。

 

「皆、君と同じように我慢して働いている。君だけじゃない。だからそんな理由で診断書は出さない方がいい。」

 

皆が我慢してるから、自分もそうしなきゃいけないのでしょうか??

 

労働=我慢 なのでしょうか??

 

世の中、好きなことで生きている人が本当にうらやましいです。

堀江貴文さんや西野亮廣さん。HIKAKINさんやその他諸々・・・

 

僕も、好きなことで生きて生きたい!

 

「じゃあそうすりゃあいいじゃん。」そう思うでしょう。

 

ですが、1つだけ不安要素が。

 

家庭の事です。

 

~理想と現実のギャップ~

僕の家庭は4人家族です。(母、祖父、祖母、僕)

はっきりいって裕福ではないです。

当然母は働いてますが、母の職場の都合上午前中しか働けないみたいです。

 

僕は毎月10万家に入れています。

自分の給料から約7、8割ぐらいを渡してるような感じです。

 

もし、僕が働かなくなって自分の好きなことだけで生きたらどうなるか??

当然家に入れるお金は格段に減るでしょう。

最悪、1万も入れられないかもしれない。

例えばYoutuberをやっていくとしたら??

まあ茨の道でしょう。決して簡単に有名になって稼げるようになるとは思えません。

 

じゃあ我慢して働くか??

また、何年か働いてボロボロになるか??

そしてまた鬱になって、悶々と悩んで・・・

 

もうそんなこと繰り返したくはありません。

 

僕は、自分の好きなことをして生きていきたい。

けど、家庭も守っていきたい。

 

僕と同じような境遇の方はいますか??

そして、僕と同じような境遇を解決した方はいますか??

 

いたら、ぜひお話を聞きたいです。

 

段々文章が雑になってきましたw(いつもの事ですが)

もう文書もメンタルもボロボロなのでこの辺に。

 

コメントでの感想、質問などお気軽にどうぞ!大歓迎です!

 

それではまた!^^ノシ

開いて閉じることが出来るバイス作ってみた!

お久です!

最近UE4に心を折られてしばらくPS4でゲーム三昧だったが、またUE4をやりたくなってきたので、今回やったことを書こうと思う。

あまり役に立たなそうな内容かもだがまあ悪しからずw

 

まずタイトルにあるバイスというのは・・・

これである↓

f:id:Free_Gamer:20181209222400j:plain

ハンドルを回転させることで開け閉めが出来、何かを挟む為の器具である。(もっと知りたければggって!)

 

今回はそのバイスを作った。

こんな感じ↓

youtu.be

 

自由に開け閉めできてるのが分かるだろう。

 

ではレシピ。↓

 

使ったアセット

f:id:Free_Gamer:20181209225530p:plain

www.unrealengine.com

現在(2018年12月中)なら無料で手に入るので、ぜひ購入してみよう!

 

それでは本題↓

「BP_Clampという名前のActorクラスのBPを作成。

f:id:Free_Gamer:20181210023235p:plain

コンポーネント

f:id:Free_Gamer:20181210023602p:plain

ClampBase↓

f:id:Free_Gamer:20181210023737p:plain

f:id:Free_Gamer:20181210023844p:plain

MoveClamp↓

f:id:Free_Gamer:20181210023905p:plain

f:id:Free_Gamer:20181210023921p:plain

MoveClampの位置↓

f:id:Free_Gamer:20181210025243p:plain

「X」を「8」にする。これで開ききった状態になる。

閉じ切った位置は「X:-3.5」である。

 

イベントグラフ

f:id:Free_Gamer:20181210024202p:plain

Qキーを押した時に、バイスを閉じる。

f:id:Free_Gamer:20181210024646p:plain

放した時に、バイスを開くという処理だ。

f:id:Free_Gamer:20181210024709p:plain

Qキー押した時の処理

f:id:Free_Gamer:20181210024750p:plain

前回開くアニメーションを停止した位置(StopReverseLocation)から、バイスが閉じ切った位置「X:-3.5」まで動かす。

f:id:Free_Gamer:20181210024812p:plain

タイムライン「OffSetClampPlay」

長さは「5秒」

「0秒」の時、値は「0」

「5秒」の時、値は「1」

f:id:Free_Gamer:20181210030241p:plain

Qキーを放した時の処理

f:id:Free_Gamer:20181210024855p:plain

前回閉じるアニメーションを停止した位置(StopPlayLocation)から、バイスが開ききった位置「X:8」まで動かす。

f:id:Free_Gamer:20181210024917p:plain

タイムライン「OffSetClampReverse」

長さは「1秒」

「0秒」の時、値は「0」

「1秒」の時、値は「1」

f:id:Free_Gamer:20181210030419p:plain

 

これで冒頭に載せた動画のように動くはずだ。

閉じるときは「5秒」かけて閉じる。

開くときは「1秒」で素早く開き戻る。

そして閉じてる最中、例えば「2秒」経った時にQキーを放すと、「2秒」経った時(バイスが閉じてる最中)の位置から、バイスが開ききった位置まで戻る。

赤線・・・開ききっている位置

青線・・・閉じてる最中の約「2秒」の時の位置

開ききっている状態↓

f:id:Free_Gamer:20181210031607p:plain

閉じてる最中「2秒」の時の状態↓

f:id:Free_Gamer:20181210031316p:plain

Qキーを放したら、青線の位置からそのまま赤線の位置に戻っていくという感じだ。

 

かなり分かりにくい説明だったかもしれない・・・w

分からなければ遠慮なく質問を!

 

それではまた!^^ノシ

 

 

Nearly Equalって??

値同士が同じかどうかを判定する「=」ノード

2つの値のどちらが大か小かは「>」「≧」「≦」「<」を使って判定を行う。

恐らくこれらのノードはよく使うと思う。

 

だがこれは多分あまり使ったことがないんじゃないんだろうか?

f:id:Free_Gamer:20181106213844p:plain

Nearly Equalノード

AとBの値がほぼ等しい場合Trueを返すノードだ。

だが、一体どの程度の差を「ほぼ等しい」というのか。

それは自分で設定できる。

 

例えば・・・

 

f:id:Free_Gamer:20181106215147p:plain

Aに「10」、Bに「9」を入れた。

まあ感じ方に個人差はあれど、ほぼ等しいと言えるだろうw

実際にプレイしてみると・・・

f:id:Free_Gamer:20181106215610p:plain

Falseと判定された。

等しくないと判定されたのだ。

 

今度はAに「10」、Bに「9.9」と入れてみる。

f:id:Free_Gamer:20181106215835p:plain

f:id:Free_Gamer:20181106215910p:plain

またもFalseだ。

全然等しくないらしい。

 

A「10」B「9.9」のまま、Error Toleranceに「0.5」を入れてやってみよう。

f:id:Free_Gamer:20181106221558p:plain

f:id:Free_Gamer:20181106221709p:plain

今度はTrueが出た。「ほぼ等しい」と判定されたのだ。

 

しかし何故、

A「10」B「9.9」を入れた状態で、Error Toleranceに「0.5」を入れたら「ほぼ等しい」と判定されたのか?

 

重要なのは「Error Tolerance」だ。

Error Toleranceは訳すと、「エラー耐性」

」と思うかもだが、Error Toleranceとは「ほぼ等しい」と判定される許容範囲を指定できる部分なのだ。

 

例えば・・・

A「10」B「9」にし、Error Toleranceに「1」を入れてみよう。

f:id:Free_Gamer:20181106222630p:plain

f:id:Free_Gamer:20181106221709p:plain

Trueと判定された。

 

理由は、AとBの差が「1以内」に入っていたからだ。

A「10」‐B「9」=「1(Error Toleranceの値)」

確かにAとBの差は「1」以内だ。

 

A「10」B「9.5」にしても同じ。

f:id:Free_Gamer:20181106223038p:plain

f:id:Free_Gamer:20181106221709p:plain

AとBの値の差が「1(Error Toleranceの値)以内」に入っているのでTrueになる。

 

逆にAとBの値の差がError Toleranceの値を超えるようなら当然Falseになる。

 

※ここで注意※

これは仕様なのか何なのか分からないが、Error Toleranceの値に「0.1」以下の値を入れると、たとえAとBの値の差が「0.1」以内だとしてもFalseと判定されてしまう。

例)

f:id:Free_Gamer:20181106223907p:plain

f:id:Free_Gamer:20181106215910p:plain

A「10」‐B「9.9」=「0.1」

明らかに「0.1」以内のはずなのだが、False扱いされてしまう。

 

何でぇ??詳しい方求ム!!!!!!!!

 

それではまた!^^ノシ

タイマー処理!(十の位とか一の位とかそんな感じの)

今回は、

f:id:Free_Gamer:20181022231821p:plain

この表記でのタイマー処理をする。

 

これがなかなか複雑で難しかった。(もっと効率的な方法があるのかな?)

 

イベントグラフ(僕はGameModeBaseに処理を組んだが、別にレベルBPでもなんでもいいです)

f:id:Free_Gamer:20181022232145p:plain

用意する変数

f:id:Free_Gamer:20181022232346p:plain

変数名の解説

Minute・・・分

Second・・・秒

TensPlace・・・十の位

OnePlace・・・一の位

 

まず「1・2・3・・・・・」と1秒おきにカウントするようにする。

f:id:Free_Gamer:20181022232237p:plain

1秒おきに「TimerSecondOnePlace(秒の一の位)」に「1」を足していく。

「TimerSecondOnePlace」が「10」、つまり「10秒」に達したら「TimerSecondTensPlace(秒の十の位)」に「1」を足す。

そして「TimerSecondOnePlace」の値を「0」にセット。

これで、

「TimerSecondTensPlace(1)」と「TimerSecondOnePlace(0)」で「10秒」になったわけだ。

f:id:Free_Gamer:20181022232533p:plain

 

↓これはタイマーが「9分60秒」に達した時、つまり「10分」になる瞬間の処理。

まず先に「10分」に達する前のFalseに繋がってる処理を見よう。

f:id:Free_Gamer:20181022233000p:plain

 

「TimerSecondTensPlace」が「6」、「TimerSecondOnePlace」が「0」、つまり「60秒」に達した時、「TimerMinuteOnePlace(分の一の位)」に「1」を足す。

そして、「TimerSecondTensPlace」を「0」にセット。

この時点で「TimerMinuteOnePlace(1)」と「TimerSecondTensPlace(0)」「TimerSecondOnePlace(0)」なので、「1分」経ったことになる。

f:id:Free_Gamer:20181022233450p:plain

 

次にTrueに繋がる処理を見よう。

「9分60秒」、つまり「10分」に達した時、処理はTrueを通る。

f:id:Free_Gamer:20181022233000p:plain

 

「TimerMinuteTensPlace(分の十の位)」に「1」を足す。そして「TimerMinuteOnePlace」の値を「0」にセット。

その後、「TimerSecondTensPlace」「TimerSecondOnePlace」の値を「0」にセットする。

これで、「10分」経ったことになる。

f:id:Free_Gamer:20181022233948p:plain

 

あとは、タイマーを表示するための処理を作って完成だ。

(UMGによるテキスト表示の説明は省きます・・・泣)

f:id:Free_Gamer:20181022231821p:plain

f:id:Free_Gamer:20181022234406p:plain

f:id:Free_Gamer:20181022234436p:plain

f:id:Free_Gamer:20181022234546p:plain

 

これでプレイ!

 

10秒に到達した時

youtu.be

 

1分に到達した時

 

10分に到達した時

youtu.be

 

しっかりタイマー処理が行われていた!

 

それではまた!^^ノシ