【UE4/UE5ゲーム制作講座】超基礎編・これを見ればコリジョンがわかる!

Поделиться
HTML-код
  • Опубликовано: 24 окт 2024

Комментарии • 28

  • @hirokiyamamoto2529
    @hirokiyamamoto2529 2 года назад +2

    当たり前のようで奥が深いコリジョン、今回も非常に分かりやすかったです。
    今回も非常に勉強になりました。

    • @kuriemeiku
      @kuriemeiku  2 года назад

      よかったです~!!!!
      出す前は正直ちょっと不安だったので、そういっていただけると嬉しいです!

  • @Danboorukun.
    @Danboorukun. 2 года назад +3

    怒涛の超基礎編感謝します

    • @kuriemeiku
      @kuriemeiku  2 года назад +1

      怒涛の基礎編めいく学苑!

  • @留りゅう
    @留りゅう 2 года назад +2

    超初心者編は本当にありがたいです。

    • @kuriemeiku
      @kuriemeiku  2 года назад +1

      よかったです~!!!!

    • @留りゅう
      @留りゅう 2 года назад +2

      @@kuriemeiku BGM 切り替え とか 教えて欲しいです030

    • @kuriemeiku
      @kuriemeiku  2 года назад +1

      bgmですね!
      たしかに、サウンドはやってないですね…!!
      もしかして、ましゅまろも送ってくれてます…?

    • @留りゅう
      @留りゅう 2 года назад +1

      @@kuriemeiku あ、それ僕です、マシュマロやり方分かんなくて、送ってたか見分けられなくって(๑•﹏•)

  • @シュン-j6j
    @シュン-j6j 2 года назад +1

    わかりやすい!
    コリジョンプリセットは何故かうまく当たったり当たらなかったりしてたので、参考にさせていただきます!

    • @kuriemeiku
      @kuriemeiku  2 года назад +1

      ありがとうございます~!!!
      この動画を見れば、当たる当たらないが自由自在…のはず!!!

  • @xqs1
    @xqs1 2 года назад +1

    めっちゃわかりやすかったです!
    ありがとうございました

    • @kuriemeiku
      @kuriemeiku  2 года назад +1

      ありがとうございます!!!
      ご参考になればうれしいです~!!!

  • @kinson4540
    @kinson4540 2 года назад +1

    UE初心者でいつも見させてもらっていますが今回はじめてコメントさせていただきます!
    UE5のサードパーソンのチュートリアル?でのコリジョンについての質問があります。
    チュートリアルマップ内の青い箱の重さを重くして遊んでいたのですが、現実のように重くなればなるほど押し込む速度がゆっくりになりリアルさに感激してプレイしていました。
    そこでBP_ThirdpersonCharacterの中に入って、カプセルコリジョンを追加し、体の中心から手前までぐんと伸ばしたあと、コリジョンプリセットをpawnにして再度プレイしてみました(手を触れずモノを押す超能力者をイメージしました)
    そして再度プレイし先ほど重くした青い箱の前に行ったのですが、予想と反し箱が軽々と吹き飛んでしまいました。
    デフォルトのように箱を重くしたならば体当たりで押すときにはゆっくりになってほしかったのですが、どのような原因が考えられますでしょうか…
    もしよろしければご回答いただければ幸いです…!!

    • @kuriemeiku
      @kuriemeiku  2 года назад

      私もめちゃくちゃ詳しいわけではないのですが…
      UEは、ルートコンポーネント(各アクターの一番根元にあるコンポーネント)のコリジョンと、それ以外のコリジョンで結構挙動が違っていて、
      たとえばルートコンポーネント以外にブロックコリジョンをつけても、普通に壁をすり抜けてしまうと思うんですね。
      おそらくそのあたりが影響していると思います。
      じゃあどうすればいいか、なんですけど、ちょっとぱっといい案は思いつかないですね…。
      PawnのようにBlockではなく、Overlapにして、当たった時に相手に対してAddForceやAddImplseを呼ぶ、とかかなあ…。

  • @鮎の塩焼き-i3i
    @鮎の塩焼き-i3i 2 года назад +1

    リクエスト解説みたいになっちゃいましたが、ありがとうございます😭
    追加で質問なのですが、バトルロワイヤルみたいなマルチプレイの時にチームごとにコリジョンの挙動を変えるのってなんか方法ありますか?

    • @kuriemeiku
      @kuriemeiku  2 года назад

      チームが少なければ、コリジョンプリセットを分けて、チーム決定後にコリジョンプリセットをBPでセットする、とかできますが、
      チームが多いと…うーん…
      コリジョンプリセットではなく、当たった後に判定する形ですかね…。

    • @鮎の塩焼き-i3i
      @鮎の塩焼き-i3i 2 года назад

      @@kuriemeiku多くて4チームとかなのでプリセットとかで色々やってみます!ありがとうございます。

  • @user-xf2dg6lv2p
    @user-xf2dg6lv2p Год назад +1

    とても勉強になりました。ありがとうございます。
    サードパーソンキャラの視点移動するとき、
    カメラが物体に当たるとカメラコリジョンの[Do Collision Test]が作動し、
    カメラが物体をすり抜けずプレイヤーにカメラが寄るのですが、
    その際、プレイヤーのカプセルコリジョンをすり抜けてしまいます。
    狭い道などでカメラが物体(壁など)に当たった場合でも、カメラがカプセルコリジョンをすり抜けず
    キャラクターの顔や服を映すためにはどうしたらいいでしょうか。

    • @kuriemeiku
      @kuriemeiku  Год назад

      コメントありがとうございます!
      カプセルコリジョンを抜けないようにするということは、逆に壁のほうに抜けるようにする、ということでしょうか…?
      一応、カメラの位置(SpringArmではなく、その子のカメラ)をX方向にずらせば壁のほうに抜くことはできると思いますが…。
      あとは、おそらくNearClipで切られてしまうのが気になるのではないかと思ったので、プロジェクト設定でNearClipの距離を下げるとか、SpringArmのProbeSizeを下げて壁から離れにくくするとかですかね…。

    • @user-xf2dg6lv2p
      @user-xf2dg6lv2p Год назад +1

      @@kuriemeiku
      ご丁寧にありがとうございます!
      NearClip...全然知らなった。おかげさまで解決しました!

  • @おおみみず
    @おおみみず 2 года назад +1

    どうしても分からなかったのでコリジョンについての質問です。
    現在、頭部と身体にBoxコリジョンがある敵を用意しているのですが、頭部と体を纏めて攻撃すると頭部のコリジョンと体のコリジョン両方が働き、AnyDamageが2回分呼ばれている状況です。
    これを阻止しようと、Boxコリジョンが今オーバーラップしているかどうかをBooleanで返してくれるノードを探しているのですが見当たりません。
    HitEventとかOverlapEventが簡単に使えるからすぐ出てくるだろーなーと思い探してみた所、IsActive、IsCollisionEnabled、IsOverlappingActorなど、大体コリジョンとかGet~、Is~、とかで試してみたのですがどれも違いました。
    やろうとしている事としては片方(頭部、或いは体)のコリジョンが反応している時はもう片方は無反応にして同時ヒットを防ぎたい感じです。
    上記の方法でなくても良いのですが、部位別にコリジョンを用意したとき、同時ヒットを避ける良い方法はあるでしょうか?
    一応OverlapEvent時に接触したかどうか判定する変数追加してEndOverlapEventと組み合わせればできなくもないのですが、部位毎にEvent用意するとイベントグラフで物凄い場所取ってしまうので出来れば純粋関数のようなノードで済ませたいなと考えています。

    • @kuriemeiku
      @kuriemeiku  2 года назад +1

      「Boxコリジョンが今オーバーラップしているかどうかをBooleanで返してくれるノード」という意味で言うと、GetOverlappingActors(各コンポーネント)のがそうかな、と思います(booleanではなく、配列が返ってくるので配列のサイズが1以上なら何かに当たっているという判定)
      個人的には、片方が当たっている間片方を無効にする、みたいなやり方だと大変だと思うので、
      「同じアクターからの同じ攻撃はアクター単位で一回しか受け付けないようにする」みたいな形のほうが楽かな、と思います。
      仕様にもよりますが、ダメージ反応中は別のダメージを受けない、とかにするとより楽ですね。

    • @おおみみず
      @おおみみず 2 года назад

      @@kuriemeiku
      なるほど配列で返ってくるんですね、流石に配列はちょっと考え事が多くなりそうなので、ダメージ反応中は別のダメージを受けない、に習って0.1秒間の無敵時間作る事にします。2人から同時攻撃を受けた場合は片方の攻撃が無効になってしまうので出来るだけ無敵時間を用意したくなかったのですが、難しそうなので妥協しようと思います。

    • @おおみみず
      @おおみみず 2 года назад

      @@kuriemeiku
      お世話になっております。
      現在スタティックメッシュに付いて色々手を焼いているのですが、もしかしてスタティックメッシュのコリジョン設定をオーバーラップにしてもアクターとかキャラクター側のオーバーラップイベントって呼ばれなかったりするのでしょうか?
      着地の判定をテストしている時、スタティックメッシュの上に乗っても無反応だったので気になりました。
      ランドスケープとかはオーバーラップイベントの生成、みたいなチェックボックスがあるのですがスタティックメッシュの方にはそういったものが見当たらなかったです。

    • @おおみみず
      @おおみみず 2 года назад

      とりあえずLineTraceByChannelで下方向に短い線伸ばして、それを着地判定する事で対処してみました。

    • @kuriemeiku
      @kuriemeiku  2 года назад

      @@おおみみず すみません、見逃してました!
      ちゃんとOverlapに設定されていたら、そもそも地形に乗れなくなる気がしますね…。