tamfoiの備忘録スマートフォン用の表示で見るtamfoiの備忘録この広告は、90日以上更新していないブログに表示しています。Qiita6日目の記事になります。0.目次0.目次1.はじめに2.実装2.1.落下処理2.2.レイキャスト2.3.地形に合わせて姿勢変更2.3.姿勢を元に戻す3.おわりに1.はじめに良い単語が思いつかなかったので「壁走り」としましたが、実現したかったのは某レースゲームの機体がコース上を浮いて走るやつです。UE4を始めた頃から定期的にチャレンジしていて、現状で一番楽な方法の紹介です。落下処理は下記のようにしました。Vectorとかを使うほうが良いのでしょうが、空中で慣性移動させるのがパパっとできなかったのでこの形にしました。(ただこれだと下方向の速度をGetVelocityで取得できないですね...)2.2.レイキャスト地形の法線を取得するために下記のようにPawn真下にレイキャストするようにしました。2.3.地形に合わせて姿勢変更レイキャストが成功したら取得した法線に合わせて姿勢を変更します。ZXノードで姿勢を作るというのにたどり着くのにだいぶかかりました...2.3.姿勢を元に戻すレイキャストに失敗したら姿勢を元に戻す処理です。ゲームのデザインによってはいらないと思います。3.おわりにもっといい方法があったら是非共有してもらいたいです。00:00【UE4】なるべく手軽に壁走りを実装してみるTweet広告を非表示にする2017-07-05【UE4】配列から指定個数を重複なく取り出すマクロUE40.目次0.目次1.はじめに2.実装3.おわりに1.はじめに配列の中からランダムで数個だけ処理させたい...って思うことがたまにあったので配列から指定個数を重複なく取り出すマクロを作ってみました。実装は下の画像のようになっています。3.おわりに社会人になってから余裕がなくて記事を書いてなかったのですが、作業してたら自分の前書いた記事を読んでそういやそうだったってなる場面がありました。00:27【UE4】配列から指定個数を重複なく取り出すマクロTweet広告を非表示にする2017-03-14【UE4】RootComponent以外のCollisionを移動時の衝突判定に使う方法と問題点UE40.目次0.目次1.はじめに2.RootComponent以外のCollisionを移動時の衝突判定に使える場合何が嬉しいか3.RootComponent以外のCollisionを移動時の衝突判定に使う方法4.問題点と対策案5.おわりに1.はじめにRootComponent以外のCollisionを移動時の衝突判定に使う方法がありましたのでメモしておきます追記:Characterですと上手く機能しませんでした。Pawn(もしくはFloatingPawnMovement)でないとダメなのかもしれませんバージョン:4.152.RootComponent以外のCollisionを移動時の衝突判定に使える場合何が嬉しいか以下の画像のように設計したいとします。Playerや各Enemyは様々な形をしていると思うので、使いたいCollisionの形も様々だと思います。移動時のSweepのことを考えるとRootComponentにCollisionを指定しなければならないのでこの設計ですとPawnBaseの時点でCollisionの形を一つに決めてしまわなければなりません。Collisionの形を変える可能性があるのならこの設計は諦めてActorComponent等になるべく処理を流してPawnにAttachしていくという風になるかと思います。仮にRootComponent以外のCollisionを移動時の衝突判定に使えれば、PawnBaseにはSceneComponent等を指定しておいてCollision自体は継承先で作るという風に出来ます。3.RootComponent以外のCollisionを移動時の衝突判定に使う方法まず、以下のようにPawnを組んだとします。この状態で、特に何もせずに移動処理を組むと以下のように壁を貫通します。そこで、以下のようにすればRootの子であるCapsuleを移動時の衝突判定に使うことが出来ます。06:23【UE4】RootComponent以外のCollisionを移動時の衝突判定に使う方法と問題点Tweet広告を非表示にする2017-03-13【UE4】AIを空中で移動させる時に使えそうなノードUE40.目次0.目次1.はじめに2.移動に使うノードと空中での使用可否3.おわりに1.はじめにAIの移動処理を作る時に地上ならばナビメッシュがあるのでAIMoveToなどを使えば簡単に作れますが、空中ですと現状のUE4ではナビメッシュが無いので使えるものと使えないものがあります。今回はよく使いそうなノードでどれが空中で使用出来るか調べたもののまとめです。UsePathfindingを外せば使用可能。UsePathfindingを外せば使用可能。UsePathfindingを外せば使用可能。Accelerationが考慮される。Accelerationが考慮される。可変フレームへの対応をする必要あり。可変フレームへの対応をする必要あり。FloatingPawnMovementを完全に無視した状態になります3.おわりにどのノードも一長一短な感じで悩みます。したら良いよとか楽だよっていうのがあったら教えてほしいです。RoborecallのDroneの実装を見たのですがMoveToLocationが使われていました。(というか移動はどのAIも同じものを使ってるっぽいです)あと驚いたのですがUsePathfindingがONの状態で使われていたので、私の使い方が良くないのか、もしくはナビメッシュを拡張しているのかもしれません。19:36【UE4】VectorFieldをBlenderで作る-導入編-Tweet広告を非表示にする2017-01-26【UE4】独自のコリジョンプリセット等を追加する方法UE40.目次0.目次1.はじめに2.プロジェクト設定を開く2.1.ObjectChannelsを追加する2.2.TraceChannelsを追加する2.3.CollisionPresetを追加する3.おわりに1.はじめにメッシュやコリジョン等の詳細やLineTrace等で選択するObjectChannels(ObjectType、オブジェクトチャンネル、オブジェクト応答)TraceChannels(トレースチャンネル、トレース応答)CollisionPreset(コリジョンプリセット)を追加する方法です。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。