InputAxisの呼び出しタイミング
妹「インプットAxisのノードには、フレームごとに呼び出されるって書いてあるけど、よく考えるとこれってティックとは違うんだよね?」
「ティックのと一緒だと思うけど」
妹「でもティックは、色々忙しい時にフレーム飛ばしてることもあるんでしょ? そしたらフレームごとじゃなくない?」
「飛ばしてる分はノーカウントとしてのフレームごとなんだよ。1日じゃなくて、1営業日みたいな。試しにティックとインプットAxisで、ただPrintStringするだけの実験をするとわかる」
「PC_が付いてる方はプレイヤーコントローラーからの、付いてないのはレベルブループリントからのPrintString。この状態で負荷をかけてみると、フレームスキップは発生するけど、PrintStringの順番は変わらない。つまりティックもインプットAxisも全く同じ基準で動いてるということになる」
妹「フレームごとじゃなかった……あれ? そうすると負荷がかかると足が遅くなったりする? インプットイベントが起きてないわけだから、3秒間押しても3秒分動いてないみたいな?」
「……遅くなったりする。それを防ぐにはGetWorldDeltaSecondsノードで前のフレームからの時間差を図って、それに合わせた仕組みを作る」
妹「標準でこういう風になるようにしといてくれたらいいのに」
「これはこれで問題もあるというか、スキップしてる間に押してたか、押してなかったかっていうのは結局わからないわけだから。スキップしてる間も押してたことにしよう派と、押してなかったことにしよう派も、どっちも正しくはないんだよ。どのみちスキップが発生する時点で動きは悪くなるから、ゲームの都合で決めちゃっていい。オプションでエフェクトの簡素化とかしてフレームスキップ自体をを抑えるという考え方もある」