こんにちは。いつもお世話になっています。
UE4.16&Viveを使用。UE4デフォルトのVRテンプレートを使って作っています。
添付画像のように壁を作ってブロッキングボリュームも配置しました。
VRでプレイしてみるとデフォルトのワープ機能はきちんとブロックしてくれるのですが、
ワープ機能を使わず自分の足で歩いて進んでいくと壁を通り抜けることができてしまいます。。。orz
壁を通り抜けできなくさせたいのですが、何か方法はありますでしょうか?
頭の位置にSphere Collision Componentを付けることで実現出来ると思います。
ですが、そうするとトラッキングの位置ズレや現実との不一致で酔いが発生すると思われます。
こんにちは、回答ありがとうございます。
VRPownにSphere Collision Componentをくっつけて
VRプレビューしてテストしてみましたがやはり壁をすり抜けてしまいました。
今はただつけただけの状態なので何か設定しないとだめでしょうか。
SphereのコリジョンプリセットをBlockAllに変更し
DefaultSceneRootにSphereをドラッグ&ドロップし
Sphereを階層構造のルートにすることで適用されます。
paperbag さん
こんにちは、教えていただきありがとうございます。
自分でも色々試してみてはいるのですがVRでプレイすると壁をすり抜けてしまいましたorz
sphereのほかのコリジョンコンポーネントでも試したのですがダメでした。
言葉だけの説明になってしまって恐縮ですが
作成したCollisionをDefaultSceneRootにドラッグ&ドロップして
親のDefaultSceneRootを削除する必要があります。
Viewportではなく、画面左上のコンポーネントパネルでの操作となります。
すいません、VRだとこのままでは当たりませんね。
出先なので、スクショも貼れない状態なのですが
GetOrientation and PositionノードでHMDの位置、回転を取得して
コリジョンの位置をHMDの位置に合わせて補正してやる必要があります。
間があいてしまいすみません。
お返事ありがとうございます。
やってみます。
もんしょさんのブログより
http://monsho.blog63.fc2.com/blog-entry-202.html
こちらの方法でHMDの位置の取得は可能かと思います。
移動をさせないようにするのであれば現在のプレイヤー位置(ルームスケールの場合デフォルトだとトラッキングエリアの中心)にオフセットをかけることで可能かと思いますが、実際の動きと見た目が異なるため気持ち悪く感じる恐れがあると思います。
hri_studioさん
返事が送れてしまい申し訳ありません。
教えていただきありがとうございます。
さっそく試してみます。