• 沒有找到結果。

4.6. 使用者互動模式(U SER INTERACTION )

4.6.1. Avatar Navigating Mode

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

38

為了證明我們的攝影系統能夠因應故事中情境的改變而改變拍攝方式,我們 實作了互動的介面讓使用者能夠參與故事的進行。在<<奇異箱>>的劇本中,使用 者能控制主角片山作為化身,在故事運行中作出決定與行動,影響故事的發展。

在進行互動操作的環境中,我們需要確保使用者能夠清楚自己的操作狀態,

不會因為環境訊息不足或畫面的錯誤視覺而感到困惑。在系統運行時,會分為兩 種模式來進行,在這兩種模式下,攝影機的規劃政策亦有所不同。相對於使用者 來說,亦是兩種不同的互動操作模式。

我們可於圖 10 中看到兩種互動操作模式在系統運行時如何進行運作。這兩 種模式,分別是 Storytelling Mode(紅色箭號路線)與 Avatar Navigating Mode(綠色 虛線路線),而藍色箭號路線則表示系統統一傳遞資料。

4.6.1. Avatar Navigating Mode

使用者在故事中接受需要於場景中搜尋物品或線索的任務時,便會進入此模 式。在此模式中,使用者可以操作化身在 3D 環境中自由遊走,此時系統即採用 追蹤鏡頭來拍攝化身。

由於需要讓使用者與 3D 環境中的化身有著同樣的視點以便操作,在此模式 中,攝影機主要會處於化身正後方的位置,以介乎於第一人稱與第三人稱的視點 來呈現畫面,讓使用者有置身於 3D 環境中的感覺,另一方面,也是讓使用者在 3D 環境能易於辨識方向,以便控制走動。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

39

在大部份情況下,攝影機會處於化身的正後方(如圖 16),但當化身移動到 某些位置時,攝影機繼續跟隨於化身正後方,便可能會跟場景中的障礙物或是牆 圖 16. Navigating Mode 中使用者可控制 Avatar 在場景中遊走,攝影機在化身正後方

進行跟拍

圖 17. 化身接近角落(左),然後背向牆壁後(右),攝影機則保持在不會發生踫撞的位 置上來觀察化身

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

40

壁發生踫撞,或是攝影機的視線會受障礙物所遮擋,故遇到此類狀況時,便需要 把攝影機從化身正後方調整到其他可以觀察到化身並不會發生踫撞的位置上。為 了減少使用者在操作時受到攝影機調整位置時受到視覺的混淆,新的攝影機位置 應該要儘量接近原來的位置,且新的位置不會讓攝影機的視線受阻,或與障礙物 發生踫撞。當使用者對化身有控制動作時,便會執行下列步驟來更新攝影機的位 置:

(1) 設定理想拍攝距離範圍[rmin, rmax];

(2) 取得化身的位置座標 Ltar

(3) 設置一座標 Lcam於 Ltar正後方距離 d 的位置上;

(4) 建立一圓環區域 Svalid,以 Ltar為圓心,rmin和 rmax分別為內、外半徑

(5) 判斷 Lcam是否處於 Svalid內,以及 Lcam至 Ltar間的視線線段不能完全被其他物 件阻檔

(6) 若果步驟(5)不成立,則取得 Lcam的 1-neighbour 鄰居的座標 Ln,使 Lcam = Ln。 跳至步驟(5);

(7) 若步驟(5)成立,設定攝影機的位置為 Lcam,讓攝影機鏡頭方向朝向 Ltar

圖 18. 正後方跟蹤拍的位置規劃

圖 19 為在 Navigating Mode 中更新跟蹤攝影機的演算法

Director.updateTracking(actor);

[rmin, rmax] = Director.getExpectDistance();

L

tar = actor.getLocation;

Lcam = behind the actor;

camera.setLocation(Lcam);

Svalid = Director.createTrackCamArea(

L

tar);

if(camera.viewOccluded(

L

tar) OR hasCollision(Lcam)){

found = false;

let Ln= Lcam

tempList.insert(Lcam);

while(┐found and ┐tempList.isEmpty()){

Ln = tempList.removeFirst();

if(Ln is un-visited){

camera.setLocation(Lcam);

camera.lookAt(

L

tar);

}

圖 19. Navigating Mode 中,攝影機遇到撞踫或視線被遮擋時,使用 breadth-first search 搜尋到與原來位置最接近而有效的位置。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

42

使用者在 Avatar Navigating Mode 中可自由操作化身探索 3D 環境,並按故事 需求調查環境中的物件來觸發(Trigger)事件發生。當某些條件滿足時,便會進入 下一個劇情節點,此時,則進入另一種模式-Storytelling Mode。