質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Leap Motion

Leap Motionは、Leap Motionによって開発、販売している、手のジェスチャーでパソコンを操作できるデバイスです。

Q&A

0回答

2281閲覧

unityでLeap Motionを使ったカメラ移動について

tensaikumabouzu

総合スコア45

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Leap Motion

Leap Motionは、Leap Motionによって開発、販売している、手のジェスチャーでパソコンを操作できるデバイスです。

0グッド

0クリップ

投稿2018/08/07 10:46

右手の情報でピンチ動作の際にカメラ移動ができるようにしたくて以下のコードを書いてカメラにアタッチしていますが、
いい感じにカメラ移動ができません。
1フレーム前の右手の位置と現フレームの差から移動比を求めています。
右手の移動でカメラ移動ができるようにするにはどうしたらいいでしょうか?

using System.Collections; using System.Collections.Generic; using UnityEngine; using Leap; public class RightHandCamera : MonoBehaviour { //右手の情報 public GameObject RightHand; Vector3 FirstPos;//右手の初期位置 Vector3 BeforeRHanPos = new Vector3(0,0,0); public float DiffX = 0, DiffY = 0, DiffZ = 0; //LeapControllerから右手のPINCH情報を取得 public GameObject LC; //LeapControllerを突っ込む HandGesture HG; void Start () { FirstPos = new Vector3 (transform.position.x, transform.position.y, transform.position.z); HG = LC.GetComponent<HandGesture> (); } public int FrameCount = 0; public Vector3 Pos20 = new Vector3(0,0,0); public Vector3 Pos30 = new Vector3(0,0,0); public Vector3 NowPos; public float Power = 0; void Update () { FrameCount++; RightHand = GameObject.Find ("/Main Camera/HandModels/RigidRoundHand_R/palm"); Vector3 RHanfPos = RightHand.transform.position;//現フレームの位置 NowPos = new Vector3(transform.position.x, transform.position.y, transform.position.z); Power = HG.secondHandPinchPower; if (Power > 0.9f) { if (FrameCount % 2 == 0) { Pos20 = new Vector3 (RHanfPos.x, RHanfPos.y, RHanfPos.z); } if (FrameCount % 2 == 1) { Pos30 = new Vector3 (RHanfPos.x, RHanfPos.y, RHanfPos.z); Diff = Pos30 - Pos20; if (Mathf.Abs (Diff.x) < 0.2f) { Diff.x = 0; } if (Mathf.Abs (Diff.y) < 0.2f) { Diff.y = 0; } if (Mathf.Abs (Diff.z) < 0.2f) { Diff.z = 0; } transform.position = new Vector3 (NowPos.x - Diff.x * 1.8f, Mathf.Clamp (NowPos.y - Diff.y * 1.1f, -75f, -25f), NowPos.z - Diff.z * 1.8f); } } else { Pos20 = new Vector3 (0, 0, 0); Pos30 = new Vector3 (0, 0, 0); Diff = new Vector3 (0, 0, 0); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2018/08/07 13:26

私はLeap Motion使ったこと無いのでちゃんと回答出来るか分かりませんが、「いい感じにカメラ移動できない」とはどういうことですか?「理想する移動」「現状の移動」を記載してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問