close

在此附上"Unity 3D體感遊戲實務解析" 章節與筆記

啟稿: 2016/10/03

完稿: 2016/11/17

 

Chapter 1Unity3D 系統概觀與操作

1.1軟體特色及安裝

http:/unity3d.com/unity/download/

 

1.2軟體介面說明

u場景編輯視窗

不同視角看遊戲場景:Alt+滑鼠左鍵

平移觀看:壓住滑鼠滾輪+滑鼠移動

拉近拉遠:滑鼠滾輪

位移:W

旋轉:E

縮放:R

物件放在正中央:F

點對點對齊:按住V,選擇物體對齊的點,再用滑鼠左鍵拖曳該物至對齊的點上

u場景物件管理視窗

所有物件以階層方式清單管理

u專案管理視窗Project

就是資源庫,也就是專案下的Assets資料夾

u物件檢視視窗Inspector

物件屬性、特性、行為

例如:每個物件都有Transform,包括位置Position、角度Rotation、大小Size

 

Chapter 2Unity3D 初體驗

2.1產生基本遊戲物件

2.2調整物件狀態及屬性

2.3賦予物件屬性元件

Rigidbody: 自由落體,Component > Physics > Rigidbody

Use Gravity: default

2.4物件材質給予

Project Window: Create > Material

<F2>更改材質名稱

2.5匯入Unity3D 套件

Project > Import Package

2.6匯入外部遊戲物件

2.7賦予物件行為

2.8遊戲發佈

 

Chapter 3基本材質製作

3.1Diffuse Shader

3.2Specular Shader

3.3Bumped Shader

3.4Transprant Shader

3.5Decal Shader

 

Chapter 4體感遊戲開發基本功

4.1腳本創建、撰寫與套用

4.2程式語法基本認識

4.3程式語法設定物件屬性參數

4.4基本物件移動

u‧ 直接指定物件到某個坐標位置

u‧ 透過移動的方法,讓物件朝某個方向移動

4.5基本物件旋轉

u‧ 直接設定物件的角度

u‧ 透過旋轉方法,讓物件繞著設定的軸向旋轉

4.6Vector3MoveToWards

4.7QuaternionRotateTowards

4.8Vector3Lerp

4.9QuaternionLerp

4.10LookAt

4.11動態生成Instantiate

4.12碰撞偵測

u‧ OnTriggerEnter 事件

u‧ OnTriggerExit 事件

u‧ OnTriggerStay 事件

u‧ OnCollisionEnter 事件

 

Chapter 53ds MAX 人模設定

5.1角色骨架建立

u‧ 取得人物模型

免費資源下載網站:

 

u‧ 3ds Max 基本功

  • 基本操作

    拉遠拉近:滑鼠滾輪

    旋轉視角:alt+壓住滑鼠滾輪

    平移視窗:壓住滑鼠滾輪

    切換三視窗:編輯視窗右下角,點選該按鈕切換

     

  • 選取工具

    選取物件按鈕:

    物件選取方式:

     

     

  • 位移、旋轉、縮放
  • 物件群組

    物件管理視窗,可按shift/Ctrlrg+滑鼠選取

    點選功能表Group

     

  • 物件半透明化

    架設人體骨架時,骨架要包覆在模型內,所以半透明化是很好的工具。Alt+x

  • 物件凍結

    架設人體骨架時,會不小心選到人模。為了方便,可以先將人模凍結,只選到骨架部分。

    先將需要凍結的物件選取,按滑鼠右鍵選擇Freeze Selection,反之則按滑鼠右鍵選擇Unfreeze All

u‧ 人物骨架架設

  • Step1: open model
  • Step2: select all objects and group
  • Step3: select all objects and Alt+x
  • Step4: Menu >>> Create > Systems>Biped設定如下

     

  • Step5:在視角window按熱鍵 F切換到前視角,然後在模型的腳底按住滑鼠右鍵,開始往上頭部方向拉出人體骨骼。
  • Step6: toolbar調整Selection FilterBone或將人物角色凍結;在Command Panel中選Motion,並按下Figure mode

     

  • Step7: F4熱鍵,顯示模型線條,在Command PanelMotion下找到Track Selection,按下座右鍵頭可移動整體骨架,並以滑鼠滾輪放大來確認整體骨架置中。
  • Step8: L熱鍵確認整體骨架置中。
  • Step9: 因為左右對稱,所以可先調整好左邊手腳,在利用複製貼上方法來完成右邊
    選取左手與腳,在Copy/Paste下先按Copy Collection,再按Copy Posture
    接下來按Paste Posture Opposite
  • Step10: 利用將所有骨骼調整位置,並盡量填滿模型,調整完畢記得再按Figure Mode取消

 

5.2人物蒙皮設置

蒙皮主要是將骨骼與人物外皮做綁定

  • Step1: Selection Filter 先改為Bone>All,選擇我們的人物模型,
    Command Panel Modify 加入Skin功能模組
  • Step2: 調整Skin Advanced Parameters 下的Bone Affect Limit=3,意思為一個點同時可受到多少骨骼影響限制
  • Step3: 將所需綁定的骨骼選取進來,可在ModifySkin 參數Parameters 面板中找到Bones旁邊 Add按鈕,選取所有骨骼按select
  • Step4: 一般會移除Bip001, Bip001 L Finger0, Bip001 R Finger0這三根骨骼
  • Step5: 進行蒙皮權重設定;筆者習慣直接修改點的權重,設定如下
    Parameters > Edit EnvelopesVertices打勾
    Display > Show Colored Vertices打勾,Show Colored Faces不要打勾 Show No Envelopes打勾
  • Step6: Parameters > Weight Tool
    >>>
  • Step7: 善用工具列的選取模式來改變權重的點
  • Step8: 在命令面板選擇Bip001 L UpperArm

 

 

Chapter 6體感介紹與Kinect 訊號擷取

6.1體感興起

6.2體感未來應用

6.3Kinect 訊號擷取

u‧ Kinect 裝置原理

兩種方法:一、透過微軟官方所釋出Kinect for Windows SDK

二、透過OpenNI(Open Natural Interaction)提供的動作擷取計算模組API

Kinect利用紅外線發射器及紅外線COMS攝影機構成所謂的深度攝影機,主要來偵測場景深度,利用光源計算碰到物體的來回時間,得到距離深度。

 

u‧ Microsoft Kinect 開發環境介紹

u‧ OpenNI 系統架構與介紹

Old web:

http:// openni.org/Documentation/

http://www.openni.org/

New web:

http://openni.ru/openni-sdk/

 http://structure.io/openni

        https://github.com/OpenNI/OpenNI

OpenNI架構分為三層:

Application, OpenNI Interface and Hardware Device(Sensor)

 

 

 

 

 

 

 

 

 

  • OpenNI Interface : 主要的部分為感測硬體及相關的中介元件,提供溝通介面並分析感測器訊號來源

    中介元件包含下列四種:

    Full body analysis middleware:處理感測器資料並產生與全身動作相關資訊,如:關節位置,角度、人體質心位置。

    Hand point analysis middleware: 產生手部位置資訊

    Gesture detection middleware: 預先定義一些辨識的姿勢,如揮手、舉手。

    Scene Analyzer middleware: 其他資訊,如背景資訊、人像辨識、地板座標等。

  • Hardware Device: 目前支援模組
    3D sensor, RGB Camera, IR Camera, Audio Device

 

u‧ OpenNI 動作資料擷取與轉換

OpenNI定義了Production Nodes,而這些Production Nodes是OpenNI Interface的基礎元素。每一個Production Nodes都封裝產生特定資料,但要得到有意義的邏輯資料,必須套用許多模組插到OpenNI

例如追蹤人像的應用,需要一個Production Nodes提供身體資料給應用程式,而提供身體資料的就是User Generator。而User Generator資料是從Depth Generator得到。而Depth Generator也是一個Production Nodes,根據感測器所擷取的資料來產生並輸出

 

u‧ OpenNI Production Node

  • 感測器相關(Sensor Related)

Device:

Depth Generator:

Image Generator:

IR Generator:

Audio Generator:

  • 中介軟體相關(Middleware Related)

Gesture Alert Generator

Scene Analyzer: 主要輸出為標記的深度資訊圖labeled depth map

Hand Point Generator

User Generator

  • 錄製/播放

Recorder

Player

Codec

 

u‧ OpenNI Production Chains

所謂的Production Chains就像是:為了產生身體資料,所以必須透過低階的深度產生器得到相關的原始資料,再傳送給使用者產生器

u‧ 姿勢辨識流程及追蹤

攝影機要追蹤人體骨架有幾個重點:

  • 新使用者判斷
  • 骨架校正
  • 骨架追蹤
  • 玩家移除

    OpenNI提供四種骨架更新方式

  • WaitAnyUpdateAll()
  • WaitOneUpdateAll()
  • WaitNoneUpdateAll()
  • WaitAndUpdateAll()

 

u‧ OpenNI 開發環境安裝 (scan pdf)

 

Chapter 7OpenNI for Unity3D Package

7.1OpenNI for Unity3D 套件下載與匯入

u‧ 套件下載

OpenNI 為Unity3D開發了一個完整的套件如下:

http://www.openni.org/Downloads/OpenNIModules.aspx

Downloads>OpenNI modules>選擇OpenNI Compliant Middleware Binaries>選擇Stable>選擇PrimeSense Unity Wrapper Stable Build vxxx

 

u‧ 套件匯入與說明

Import Package>Custom Package

 

u‧ OpenNI SingleSkeleton

7.2骨架追蹤範例實作

u‧ 間接操控與直接操控

u‧ 間接操控範例實作

u‧ 直接操控範例實作

 

Chapter 8FAAST

FAAST: Flexible Action and Articulated Skeleton Toolkit,是一種可以辨識人體姿勢的中介軟體

Web: http://projects.ict.usc.edu/mxr/faast/

 

8.1FAAST 關節架構與辨識類型

8.2FAAST 操作說明

8.3辨識動作種類設定

u‧ 全身擺動辨識

u‧ 關節間位置辨識

u‧ 關節角度辨識

u‧ 關節移動速度

u‧ FAAST 多重姿勢組合

u‧ Unity3D 與FAAST 連接

u‧ FAAST 啟動偵測與暫停偵測

 

Chapter 9體感遊戲範例實作

9.1OpenNI for Unity3D 套件

9.2FAAST 套件

 

 

 

arrow
arrow
    文章標籤
    unity3d
    全站熱搜
    創作者介紹
    創作者 Philip4G 的頭像
    Philip4G

    Philip4G四眼仙機的部落格

    Philip4G 發表在 痞客邦 留言(0) 人氣()