一定時間無敵状態にする
妹「敵に当たった後はしばらく無敵になるようにしたいんだけど、コリジョンの無効化が上手く出来ない……」
「その場合はコリジョンいじらない方がいいと思うんだけど」
妹「えっ、でもそしたら当たっちゃうじゃん」
「当たらないと床すり抜けて落っこちちゃうから。無敵用の変数を作って、無敵かどうか区別できるようにして、Branchノードで無敵じゃない時だけダメージ関連の処理をすればいいんだよ」
妹「コリジョンはあるけどダメージをくらわない……それでいいのか」
「無敵ってそういうもんでしょ」
妹「じゃあ無敵にするのはダメージくらった時でいいとして、戻すのはどうやればいいんだ? 1秒経ったら無敵じゃなくしたいんだけど」
「Tickイベントだったかな、定期的に実行されるやつがあったでしょ。あれで1秒経ったら無敵用の変数を元に戻すようにすればいい」
妹「むずかしいかも」
「TickイベントのDelta Secondsは秒単位の数字が小数で取得できるみたいだから……無敵用変数も小数にして、無敵になった時に1を代入する。その後Tickイベントの度に、無敵変数が0以上なら、Delta Seconds引いていけばいい。ダメージ処理のところでは0以上なら無敵、0以下なら普通にくらう」
妹「変数とはそうやって使うのか。でもコリジョンの設定は上手くいってないままなんだな。床すり抜けて落ちないといけないはずなんだけど……あ、そうだ、これもすり抜け用変数を作ればいいのか?」
「それは無理。ダメージはブループリントで書いてたから融通効くけど、当たっても通り抜けないようにする処理はブループリントで書いてないから。変数を作ってもそれを使ったBranchノードをはさむところがない」
妹「うーん、そしたらやっぱりコリジョンの設定も出来ないと駄目なのか」
「まあとりあえず今回は要らなそうなので、要るようになってからでいいのでは。今ちょっと触ってみたけどわかんなかったし」
妹「わかんなかったのかよ!」