raharik
(raharik)
1
壁際にプレイヤーがいるとき、カメラがコリジョンに押されてプレイヤーのメッシュの中身が見えてしまうことがあると思いますが、
このとき、メッシュの中身を見せないよう、メッシュを非表示にしてしまいたいです。
(徐々に半透明とかじゃなく、Visibleをいじって消す感じのを考えています)
プレイヤーのカメラが、プレイヤーのメッシュにhitしたときや、
カプセルコンポーネントにhitした時などで判定を取って非表示にさせようとしたのですが、
うまく判定が取れず困っています。
こういったとき、皆さんはどのように実装していますでしょうか?
御存知の方いらっしゃいましたらご教授頂ければと思います。
creatorue
(creatorue)
2
カメラとスプリングアームの距離をとって5、60以下だったら非表示とかではだめでしょうか?
徐々に半透明にするのが普通な気がするので、そっちだったら割と簡単に実装できるのですが…カメラとスプリングアームの距離を測って、100以下になったらSet Materialで半透明マテリアルに変えて、100~40でLerpしてダイナミックマテリアルを使って透明度を調整するとか。
どうしてもvisibleをいじりたいのなら、LineTraceByChannelを「Ignore Selfのチェックを外して」、カメラの位置からカメラの前方に向かって10とかそこらの距離で飛ばして、トレースが自分にヒットしたらvisibleを切り替えるとかもありかもしれません。
自分の中だけで当たり判定をどうこうするのはムズイ気がします。そもそも当たり判定の部分に多少バグがありますし…以上の方法などを提案します。.まあ、当たり判定を気にしなければやりようはいくつかありますよ。
creatorue
(creatorue)
3
徐々に半透明にできるならばしたいというのなら詳しい方法をお教えしますので、また言ってください。
簡単なBPで申し訳ありませんが作ってみました。
キャラクターのBPに加えればうまくいくと思います。
(follow cameraにはカメラコンポーネント、camera boomにはスプリングアームコンポーネントを指定してあります。)
原理はcreatorueさんの仰る通り、カメラとスプリングアームの距離を測定し、一定の距離(画像では100)以下になるとアクターを非表示にさせています。
まさか答えを書き込んでいる途中に他の方と被ると思ってませんでしたが…参考なれば幸いです。
raharik
(raharik)
6
creatorue さま、fiorarisia1122 さま
回答ありがとうございます!
試してみたらうまくいきました!
>>徐々に半透明に~
そっちのほうがきれいだとは思うのですが、マテリアルまわりのことにあまりまだ詳しくないため、
BPの知識以外に自分でももうちょっと調べてから取り掛かりたいと思い、まずはいったん非表示で実装しておいて、あとから差し替えてみようかと思います。
(自分でもいろいろ調べて詰まっちゃったらまた質問するかもしれませんがw)
本当にありがとうございました!
raharik
(raharik)
7
ご回答ありがとうございます!
↑のコメントにも書きましたが、一旦はマテリアル周りの知識をつけてからじゃないと厳しい気がするので、まずはそこから取り掛かってみようと思います。
raharik
(raharik)
8
ご回答ありがとうございます!
スクショつきでご教授頂き、とても助かりました。
alwei
(alwei)
9
解決済みの場合であれば以下の解決に沿って解決済みにしていただきたいです。
Answerhub クイックスタートヘルプ日本語訳: Answerhub クイックスタートヘルプ日本語訳 - AnswerHub - Unreal Engine Forums