htkt
(htkt)
1
UE4でゴルフゲームを作成しています。
ランドスケープのレイヤーをいくつか設定して、フェアウェイ、バンカー、カート道、等々を設定したのですが、 ボールが地面を転がった際の挙動をそれぞれのレイヤーによって変えたいと考えています。
(バンカーは転がりにくく跳ねにくい/カート道は転がりやすく跳ねやすい、等々)
この際、ボールの位置に対するランドスケープのそれぞれのレイヤーのウェイト情報を取得できればあとは何とかできそうなのですが、方法がよくわかりません。
ご存じの方がいらっしゃいましたらぜひお教えいただけますと助かります。
できればBlueprintで何とかしたいと思っていますが、Cでしか実装できないのであればそれでも結構です。
よろしくお願いいたします。
現状では取得できなかったかと思います。
C++を使えば可能かと思いますが、似たような質問がAnswerHubにいくつかありますが回答はまだついていないようです。
自分も昔この問題に直面したため、以下の回避策を使いました。
これでそれぞれ起こしたい効果ごとに任意のボリュームを作って対応すると良いかと思います。
下記は足音の記事になりますが、物理マテリアルをチェックして
地面の挙動を変化させる、というのはどうでしょうか?
足音再生部分を挙動変化の処理に変えるだけで行けるかもしれません。
[UE4] 物理マテリアルを使って足音を変化させる
http://monsho.blog63.fc2.com/blog-entry-164.html
UE4で、地面の種類に応じた足音を鳴らすようにしてみる その1
http://pafuhana1213.hatenablog.com/entry/2015/05/20/002301
一応わっしーさんからも出てますが、物理Materialから取得する方法はあるにはあります。
しかし、ちょっと難しいので最初は上記のやり方のほうが良いかもしれません。
一応レイヤーごとに物理Materialを取得する方法を紹介しておきますね。
これはライントレースで行っていますが、たぶんBlockCollisionのHitイベントからも取得できるかと思います。
ゴルフのコースが広く大きい物になる場合はこちらをオススメしますが、処理が重たくなる可能性はあります。
見た目をリッチにする場合はボリュームで対処した方がまだいいかもしれません。
htkt
(htkt)
6
nullponull様、mwashimi様、ありがとうございます。
ライントレースを使えばよいということですね。よくわかりました。
その後私の方でも、各レイヤーのウェイト情報を画像ファイル(png)としてエクスポートが出来ることを知りまして、
それを使えばウェイト情報も取得できそうな感じがしております。
ただ、画像として吐き出す前に、内部情報として利用できればさらに良いのですが、その辺がまだ分からないところです。