CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

【Unity】Oculus RiftのTuscanyデモで柵を超える処理を入れる方法

前回説明したOculus RiftのTuscanyという家と庭を歩けるデモを少し変更しました。OVRパッケージを見たのが初めてだったので試行錯誤しましたが、最終的に変更するスクリプトは一つで済みました。

変更手順を解説します。

1. 変更手順

OVR/Scripts/OVRPlayerController.csを開いて、 以下を追加または変更します。

追加するもの

変数
public float jumpForce = 100.0f

private float FallSpeed = -10.0f

public virtual void UpdateMovement()関数の以下を追加または変更

bool変数

bool moveBack = false; の下に bool moveJump = false; を追加

構文
if(Input.GetKey(KeyCode.RightArrow) moveRight = true; の下に
if(Input.GetKey(KeyCode.F)) moveJump = true;  を追加

if (moveRight)
  MoveThrottle += DirXform.TransformDirection(Vector3.right * moveInfluence) * BackAndSideDampen;

 の下に、

if (moveJump)
  MoveThrottle += DirXform.TransformDirection(Vector3.up * JumpForce) * BackAndSideDampen;

を追加

 ここの時点でビルドすると、Fキーを押すとjumpするのが確認できると思います。 しかしその場jumpしかしません(=柵を越えられません)。

指定方向へ進みながらjumpするには、下記を変更します。

変更

if ( (moveForward && moveLeft) || (moveForward && moveRight) || のif文の最終行に、

(moveForward && moveJump ) || (moveBack && moveJump)

を追加

これでビルドし、Fキーを押しながら十字キーの上や下を押せば、jumpしながら前進や後退ができるようになります。

2. 動作確認

このようになりました。

屋根に登ってみる

Tuscanyデモで屋根に登った例

柵の上に立ってみる

Tuscanyデモで柵の上の立った例

ということで、あとは柵の先までjumpするだけです。しかしjumpすると、

f:id:Takyu:20180715203334j:plain

のように、無限落下してしまいました。Tuscanyシーンでは、庭までしかplaneが貼ってなかったということですね。

3. 今後の予定

ひとまず基本動作は確認できたので、何かしら自分でもアプリを作ることに挑戦してみたいと思います。