2017年3月31日 星期五

Week05_一般Unity專案轉UnityVR版本_呂登祐

其實Unity傳統專案跟VR的差別就在視角及contorller不同上,以下範例將為個位作介紹,如何把VR攝影機camera套用在一般專案上的camera上,及contorller控制器套用在Vive手把上。

SeasawPC Asset簡介

MainCamera
Floor
Rigidbody
Use Gravity: false
Is Kinemaic: true
Bearing
Board
Rigidbody
Freeze Position: x,y,z
中心點不移動
Freeze Rotation: x,y
X軸與y軸不可旋轉, z軸可旋轉

Person A 與 B
Rigidbody
Mass: 70
Use Graity: true
Fixed Joint
Connected Body: Board(Rigidbody) 固定連結在board上
Box Collider
Ground A 與 B
Empty
Box collider
Trigger: true
Reversion Script
以改變質量來使Board搖擺


參考網址:https://drive.google.com/drive/folders/0B3U4TWW5it5nQ2NHRWxuNEJfUFk




2017年3月30日 星期四

week06

到s205實作
用手把偵測產生設定好的prefabs物件
然後就可以做出類似畫畫的效果





.

程式碼如下
using UnityEngine;
using System.Collections;
using Valve.VR;

public class Create : MonoBehaviour {

public SteamVR_TrackedObject rightController;
public GameObject redCube;
public GameObject blueCube;
public GameObject box;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
var device = SteamVR_Controller.Input ((int)rightController.index);
if (device.GetPressDown (SteamVR_Controller.ButtonMask.Trigger)) {
Instantiate (redCube, rightController.transform.position, rightController.transform.rotation, box.transform);

}
if (device.GetPress (SteamVR_Controller.ButtonMask.Trigger)) {
Instantiate (blueCube, rightController.transform.position, rightController.transform.rotation, box.transform);

}
if (device.GetPressUp (SteamVR_Controller.ButtonMask.Trigger)) {
foreach (Transform child in box.transform) {
GameObject.Destroy (child.gameObject);
}
}
}
}



第二個實作
是要把場景中的物件抓取起來
按下版機就可以當手一樣 把物件抓取起來



程式碼如下:
using UnityEngine;
using System.Collections;

public class Touch : MonoBehaviour {

public SteamVR_TrackedObject leftController;
bool isTouch=false;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
var device = SteamVR_Controller.Input ((int)leftController.index);
if (device.GetPressDown (SteamVR_Controller.ButtonMask.Trigger)) {
isTouch = true;
}
if (device.GetPressUp (SteamVR_Controller.ButtonMask.Trigger)) {
isTouch = false;
}
}
void OnTriggerStay(Collider other){
if (other.tag == "catch" && isTouch) {
other.transform.position = this.transform.position;
}
}
}



第三個實作(回家作業)

將模型套入
讓手把在實境內是以光劍模組顯示








































成功後就可以像絕地武士一樣揮舞光劍了!!!!




程式碼如下:
using UnityEngine;
using System.Collections;

public class LightSaberContol : MonoBehaviour {

public SteamVR_TrackedObject Controller;
public GameObject centerBeam;
lightsaber saberOn,saberCenterBeam;


void Start () {
saberOn = this.GetComponent<lightsaber> ();
saberCenterBeam = centerBeam.GetComponent<lightsaber> ();


}

// Update is called once per frame
void Update () {
if (Controller == null)
return;
var device = SteamVR_Controller.Input ((int)Controller.index);
if (device.GetPressDown (SteamVR_Controller.ButtonMask.Grip)) {
saberOn.saberon = !saberOn.saberon;
saberCenterBeam.saberon = !saberCenterBeam.saberon;
print ("Grip");
}

}
}


2017年3月29日 星期三

Week 06 ㄏㄒ - 夏日課程DLC遭流出 網友 : 私

立人上課 ~

丟瓶子的遊戲製作

以抓起球 (物件) 來擊中瓶子的遊戲

手把抓取物件

Week 06 D:

今天一樣是蕭老師上課~

然後今天不同的是分兩批,分別樓上樓下樓下今天教的如下

課堂作業:
一共有兩個分別是 按著按鍵連續輸出物體 以及 抓取物體
首先是連續輸出
當你按下按鍵之後就會一直產生物體

程式碼如下


按下去的瞬間(由於紅色方塊是讓我們確認,然而因為連續輸出藍色的關系所以會有閃爍的現象)

一堆方塊~




在來是抓取物體

程式碼


開始的畫面


拿起來了~




回家作業

光劍
讓你的光劍能伸縮

程式碼

讚哦~

































02162411_劉永健_Week06

圖像裡可能有1 人、站立、螢幕、小孩和室內



圖像裡可能有一或多人和螢幕

Week06

今天一樣由蕭老師上課
上課內容為手把拿起物件並製作出將物件丟向瓶子的小遊戲
本次上課將學生分兩批到205進行實際操作

實際操最內容包含:

手把控制生成物件:

物件拿取:

Grip控制光劍:

2017虛擬實境 賴緯漢_Week5

week06_拿起物件

        今天上課的主題是透過grip、trigger來呈現拿取物件的效果
        在實驗室裡我們先嘗試了應用trigger將物件拿起、移動和放下,放下的部分要看有沒有將 Is Kinematic的選項打勾,有打勾表示我們的cube物件不會有重力的向下掉,可以在我們那起的時候停在空中。
        接著我們想嘗試的是如何將物件丟出去,因為今天所是造的物件只要一丟出去就會有重力的往下掉,沒辦法拋到遠處,所以接下來我們想試著嘗試丟擲這部分的動作。








Week05_02090186_雷淳閔

今日上課內容:

今日由蕭立人老師進行教學

(1)蹺蹺板專案&指南針專案
(2)0315的HTC VIVE 頭盔手把UNITY程式作業





蹺蹺板專案:

因老師使用的是5.5.1版本,所以用5.4.3版本開啟時會無法讀取Scene檔,依照老師的PPT重做。
下面是為快速複習轉成VR頭盔的Camera動作因此用5.5.1版本開啟
檔案開啟時,物件配置即是一個可運作的蹺蹺板模型。




在Main Camera裡加上Steam VR_Camera,按下Expand,讓Main Camera轉換成VR頭盔視角。


把攝影機移動位置到其中一個方塊上變成其子物件,讓視角變成和另一個方塊玩蹺蹺板的樣子。



0315作業:

首先在UNITY中匯入STEAM VR的套件,在場景中拉入[Camera Rig]的Prefab
然後進入寫程式的部分,利用程式把與手把互動的資訊顯示在畫面中。

首先先進行左手的部分



新增一個Empty Object,加入方才寫的程式以及Mesh Render然後開始執行


執行後顯示的資訊


Press Triger的資訊(按鍵與壓力)


Press TouchPad的資訊(按鍵以及空間中的位置)


Press Grip與Press Menu的資訊(按鍵)


右手的部分:
同樣新增一個Empty Object,改為抓右手的資訊,重複套用在左手的動作即可,程式碼也可複製,若為避免名稱重複搞混,可將程式碼中的leftcontroller宣告改成rightcontroller。
執行後建議先把左手的把手display,避免兩手的資訊字樣重疊。