読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

PrintStringの表示を工夫する

f:id:una_unagi:20160514230829p:plain

妹「そういえば、パンチが2回当たる事件の調査ってしてたっけ?」

「そんな話を聞いたことがあるような、ないような。調査はまだしてないかも」

f:id:una_unagi:20160514230940p:plain

妹「こういう風にすると、なぜかパンチが同じ敵に2回当たってる、オーバーラップイベントが起きてるみたいなんだよ。毎回じゃなくて、相手が向かってきてる時に起こりやすいとか、法則はあるっぽいんだけど」

「もう少し色々情報を出したいけど、行数が増えるとわからなくなるので、まずログの表示を改良してみる」

f:id:una_unagi:20160514231721p:plain

「まず1行に詰め込むために、Appendノードで必要な文字をくっつける。完全にくっつくと区切りがわからないから、途中に区切り文字を入れてある。そしてBeginのイベントがあるということはEndのイベントも起きてるはずだから、EndOverlapの方も同じ様なブループリントを作る。PrintStringノードの下の矢印を押して、色設定を変えておくと区別もしやすい」

妹「あと敵じゃなくて自分と重なってる分も要らないかも」

「じゃあそれも除外しておく」

f:id:una_unagi:20160514232411p:plain

「これがパンチ1発分のログだけど、パンチが敵コリジョンの範囲に入って、出て、もう1回入って、出て、という風になってることがわかる。同時にオーバーラップしてるとか、別のコンポーネントにあたってるとかではない」

妹「やっぱり2回当たってる」

「この記録を見た感じと、パンチの動きと敵の動きが交錯した時に、2回当たってるみたい。一応パンチが当たったらフラグを立てて、次にパンチする時にそのフラグをリセットするようにすれば、1回しか判定を行わないようには出来る。もしくは裏技として残すという手も」

妹「仕組みとしてはそれでもいいけど、でもなんで2回当たるのかが気になるんだよね。2回当たるような動き方はさせてないと思うから。コリジョンが思ったのと違う動き方してるのかも」

「じゃあそのへんは明日も引き続き調査してみるということで」