【FPS】取得したアイテムをドロップした後、出現するアイテムオブジェクトがおかしい | UE4&5 Forum | Tech Stadium Forum

【FPS】取得したアイテムをドロップし...
 
通知
すべてクリア

【FPS】取得したアイテムをドロップした後、出現するアイテムオブジェクトがおかしい  

固定ページ 1 / 2
  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
01/09/2020 8:06 pm  

First Person Shooterの課題について

取得したアイテムをドロップした後、出現するアイテムオブジェクトがおかしい(サイズが大きくなる、オブジェクトが浮いてる)

これの原因を2時間くらい探したんですけども、なかなか原因が見つかりません。。
This topic was modified 2年前 by Teacher

引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
01/09/2020 8:07 pm  

アイテムのスケールがXYZ共に0.25がデフォルトになっていますが
アイテムをドロップするときにキャラクターのDropPointのTransformでスケールをセットしているため、アイテムが巨大化しています。

This post was modified 4年前 3回 by Teacher

返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
01/09/2020 8:09 pm  

スケールはデフォルトの値で渡せばアイテムが巨大化することはなくなります。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
01/09/2020 8:13 pm  

サンプルのTemplatePickUpとずっと見比べていたのですが、BluePrintは同じ状態でして、、

そしておっしゃるように、Transformに注目してみると、サンプルの方ではRoot(Sceneコンポーネント)の配下にStaticMeshを持たせていたみたいでした。上手くいっていたみたいでした!同様にSceneをかませたら解決しました。

今回は0.25で配置されたものが、Drop時にTransformが1にリセットされて再生成されてしまうバグと認識しました。代替案も大変参考になりました!ありがとうございました。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
01/09/2020 8:13 pm  

ちなみに、GetWorldTransformノードにReturn value Rotation などのピンを追加するのはどうしたら良いでしょうか?
少し調べてみたり、ノード右クリックを片っ端からためしてみても分からず。。


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
01/09/2020 8:13 pm  

Transformのピンのところで右クリックして出てきたメニューの「SplitStructPin」を選択すると分割できます。
出てこない場合は一度ノードを切ってから再度やると出てきます。


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
01/09/2020 8:14 pm  

アイテムが浮いてしまうのは単純に物理挙動が無効化されているからです。
ただし物理挙動を有効化すると処理が重くなります。


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
01/09/2020 8:15 pm  

物理挙動を有効化してアイテムを取得したときにアイテムのコリジョンが無効化するので
床がすり抜けていき、Z軸座標が言って一以下になってアイテムが削除されているのが原因のようです。

よってコリジョンの管理と設計をきちんとやる必要があります。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
02/09/2020 10:45 am  

Dropアイテムボタン押下後に、Blueprint側でコリジョンを有効化し直してるように見えたのですが、これでは十分でない感じでしょうか。。
別でコリジョンを有効化する必要があるのでしょうか


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
02/09/2020 10:46 am  

その前にアイテムを取得した瞬間にコリジョンを切っています。
その時はコリジョンが無い状態になるのでレベルの床との当たり判定が消えて奈落の底に落ち続けていきます。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
02/09/2020 10:47 am  

ここでコリジョンを切らないという選択は邪道でしょうか?


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
02/09/2020 10:47 am  

そこはどう設計するかによりますが
自分がぱっと思いつくのが以下の2つです。

・コリジョンを切ると同時に物理挙動も無効化する
そしてコリジョンを有効化するときは物理挙動も有効化する

・コリジョンを2つ用意して片方はレベル床との当たり判定を常に有効化し、もう片方はプレイヤーとの当たり判定用のコリジョンとして配置し、プレイヤーとの当たり判定用コリジョンの有効無効を切り替えて対応する


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
02/09/2020 10:47 am  

前者でやってて上手くいっていないという印象で、
後者に賭けてみたいと思うのですが、
コリジョン2つ用意するというのはメッシュの形に合わせたコンポーネント?を追加すればいいのでしょうか?


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
02/09/2020 10:48 am  

AddComponentをクリックして「BoxCollison」で立方体のコリジョンを追加できます


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
02/09/2020 10:48 am  

このBoxCollisonのコリジョン設定をレベルの床との判定を行うように設定し、
子のコリジョンは常に有効化にするように処理を変更すればいいかと思います


返信引用
固定ページ 1 / 2
共有:
タイトルとURLをコピーしました