前言
謝謝Ting Caffeine 咖啡因 上半學期認真教導的網頁課程((拍手!!!!!!!!!),搭ㄚ應該都有懂啦齁,再來就由我接棒~~
大家好,我是Gavin,相信大家在高中或大學時都曾接觸過設計的基礎知識。然而,在這個快速變遷的時代,會不會感覺到自己學到的設計已經跟不上時代的腳步呢?也許,需要跨出舒適圈,開始探索新的領域。在下半學期中,會帶領大家探索虛擬實境設計等新興領域,可能為我們的學習和成長打開全新的可能性,讓自己的設計更上一層樓++plus!!!
課程目標
讓同學掌握Unity開發環境和VR技術,並將其應用於人因設計領域。課程的目標如下:
- 熟悉Unity開發環境:學生將學習如何使用Unity開發引擎,掌握其基本功能和操作界面。
- 了解VR技術:學生將了解虛擬實境(VR)技術的基礎知識,包括其應用場景、特點和限制。
- 掌握VR開發技巧:通過實際項目,學生將學會在Unity中開發和設計VR應用程序,包括場景設計、互動元素添加和性能優化等方面的技巧。
- 理解人因設計原則:學生將瞭解人因設計的基本原則,並將其應用於設計VR應用程序的過程中,以提高使用者體驗和互動效果。
- 展示和評估能力:學生將有機會展示他們的成果,並接受同儕和導師的評估和反饋,從中獲得成長和改進的機會。
應用3D遊戲引擎 x 視覺傳達提升 x 不再怕程式設計
Unity是什麼?
Unity 是一套跨平台的遊戲引擎,可開發 Windows、MacOS、Linux 單機遊戲或 iOS、Android 行動裝置遊戲。Unity 也可開發網頁遊戲,訪客的瀏覽器支援 WebGL 技術即可遊玩 Unity 開發的遊戲。Unity 支援 PhysX 物理引擎、粒子系統,並且提供網路多人連線的功能,無需學習複雜的程式語言,符合遊戲製作上的各項需求。(圖1、圖2)

圖1 UNITY LOGO (以前ㄉ)

圖2 UNITY LOGO (現在ㄉ)
早期的遊戲、程式開發,需要花許多時間透過程式碼建構介面與圖形,比如3D遊戲,你可能要用程式碼來編寫網格、節點,才能組成一個3D模型,連音樂和圖像等也需要用一樣的方式來構成,這樣會花費非常多的時間!(圖3)
(一聽就覺得很麻煩對吧)

圖3 要透過程式碼建構介面與圖形(瘋了)
現代開發工具,有可視化圖形介面輔助編輯,可導入其他工具建置的資源,縮短了許多開發時間。(圖4)

圖4 有可視化圖形介面輔助編輯
阿不然早期的開發一個執行平台就是一個語言,不同的開發環境有不同的程式語言。
如果你只有想做Windows的軟體程式你可能只需要C#去做一個簡單的開發。阿如果需要涉及Linux、Mac、Android等平台,每個不同的平台都需要另外再做不同程式語言的開發,這樣會花費非常多的程式編寫時間,甚至當如果要做不同版本,那所要進行的工作便會變得非常的複雜。(圖5)

圖5 不同的開發環境有不同的程式語言
Unity 的推出(2005)降低遊戲開發的門檻,即使是個人或小型團隊製作遊戲也不再是夢想。對於遊戲公司而言,選擇使用 Unity 引擎也可以縮短遊戲的開發時間。(圖6)

圖6 UNITY 讚
另外,成品輸出也需要建置環境,雖然說是可以跨平台沒錯,但還是需要有一些前置作業。(圖7)比如說Windows可以直接輸出執行檔;但若為ios,就必須有符合規格的Mac設備;Android需要另外安裝其他開發環境才可以正常編譯;如果是家用主機還需要取得Unity官方的授權,以及連繫銷售商。

圖7 雖然說是可以跨平台沒錯,但還是需要有一些前置作業
開發遊戲大概會涵蓋UIUX介面、2D美術、3D美術、音樂、影視等(圖8)
UIUX介面 - 視覺傳達、互動設計、人機介面,軟體:Photoshop、Illustrator等 2D美術 - 視覺傳達、媒體設計、動畫,軟體方面同上 3D美術 - 數位媒體、3D遊戲建模,軟體:Solidworks、Cinema 4D、Blender等 音樂 - 音像設計,軟體:Logic Pro、Cubase等 影視 - 動畫媒體、視訊傳播,軟體:Premiere、AfterEffect、威導等

圖8 UIUX介面、2D美術、3D美術、音樂、影視等
看看下面的圖(圖9),軟體是否很熟習呢?
沒錯,工業設計系就是這麼厲害,除了音樂設計外,幾乎加減都有碰過,那這樣......

圖9 各方面可能使用到的軟體
是不是再學個程式設計,我們就變超強了!?

按邏輯來說是沒錯啦~~
但如果真學得起來,那真的是天賦了XD。有些時候還是要教給專業的來,不然資管、資工就沒頭路啦,開玩笑的啦。因為程式設計靠的是大量的邏輯運算,跟設計系的思維大大不同,這也是為什麼一個好的遊戲,會有一定規模團隊來開發,把上述的大類別下去做分工,甚至分更細,才能把最高品質的遊戲給消費者。
(一個人做開發就知道會多累.....👻👻👻👻)
說那麼多,為啥要我們用Unity來開發??
Unity有多強!!
你知道有多少遊戲是用Unity 引擎的嗎?包括比較早期的《Candy Crush》、《Pokémon GO》、《聖靈之光 Ori and the Blind Forest》到現在的《王者榮耀》、《原神》等知名遊戲都是由Unity 開發。
🐦🐦🐦🐦🐦🐦可以玩看看超難遊戲🐦🐦🐦🐦🐦🐦
Unity遊戲市佔率
有聽過Unity 就應該要聽過Unreal引擎(算是競爭對手),基本上現在全球開發引擎以兩個為主,他們成為遊戲引擎市場的雙寡頭。 Unity以輕量級、易上手、價格低著稱,因此被創業、中小企業所青睞,被廣泛運用於手機遊戲市場。 Unreal的特色是畫面強、功能全、門檻高,被3A大作(高成本、高製作週期、高品質的大型遊戲)廣泛使用。 Unity走是低價路線,主要靠遊戲引擎和遊戲廣告獲利。 Unreal走的是以遊戲營收抽成的高價路線。

圖10 兩大商業遊戲引擎逐年市佔率
第三方市場研究機構Extern Labs數據顯示,2023年Unity在全球遊戲引擎市場(含手機、電腦、主機)市佔率為49%,手遊市佔率高達70%。其競爭對手Unreal市佔率為13%。(圖10)
註:Unity2005年誕生,Unreal1998年誕生
Unity &Unreal 之間的差異
UNITYㄉ特點
- 易於理解的工作流程和架構,可實現快速遊戲開發
- Unity 腳本 API 可以精確控制遊戲功能 API: Application Programming Interface
- 可以輕鬆創建 2D 或 3D 遊戲
- 在所有平台上一鍵部署遊戲,包括 PC、手機或遊戲機
- 來自大型 Unity Asset Store 的即用型遊戲資源縮短了開發時間
- 可以使用內部套件和資源來擴展 Unity 引擎
- 一系列渲染管線選項可優化遊戲效能
- 能夠創建和銷毀自訂遊戲對象
UNREALㄉ特點
- 針對非編碼遊戲開發人員的藍圖視覺化腳本系統
- Unreal Audio Engine 和 MetaSounds 可提供豐富的音訊
- 支援擴增實境 (AR)、混合實境 (MR) 和 VR
- FBX、USD 和 Python 腳本的管道集成
- 使用虛幻編輯器進行世界建構與景觀編輯
- 包含機器學習的角色動畫
- 用於渲染、照明和材質的 Nanite 引擎
- 粒子模擬和效果
- 虛幻運動圖形 (UMG) UI
- C++原始碼存取和API
綜合下來優缺點比較

C++難嗎,我問了資管弟弟 : 能不要碰到就不要碰到,太麻煩了,而且又很不直覺。
C# 語言
using System; // 引入 System 命名空間,其中包含了 Console 類
class Program {
static void Main(string[] args) {
// Main 方法是程式的入口點
// 它接受一個字串類型的陣列作為參數,這些參數包含了命令列傳遞的引數
// 使用 Console.WriteLine 方法將文字 "123" 輸出到控制台
// Console 是一個包含許多靜態方法的類,用於處理控制台輸入和輸出
Console.WriteLine("123");
}
}
C++ 語言 std::cout << "123" << std::endl?????看謀啦
#include <iostream>
int main() {
// 使用 std::cout 對象輸出數字 123
// std::cout 是標準輸出流的對象,用於將資料輸出到控制台
// "<<" 是插入運算子,用於將資料插入到輸出流中
// "123" 是要輸出的資料,這裡是一個字串
std::cout << "123" << std::endl; // 輸出 "123" 並換行
return 0; // 返回程式執行結果,0 表示成功
}
(所以綜合下來,知道為什麼要選Unity了吧~~)
最後總結一下
拿廚房做個比喻好了,開發工具(Unity)就像是廚房,最後會產出一道料理,而我們就是廚師,現在備料素材這些對我們來說已經沒什麼問題了,是不是可以學一些新料理方式了,不要再當個原物料供應商啦 (這樣比喻有對嗎><)(圖11)
開發者---<廚師> 開發工具Unity----<廚房> 3D物件、材質、音樂等----<食材> 程式碼(走跳、碰撞)----<器具、食譜> 輸出成品 遊戲exe./ APP----<美味的一道菜上桌>

圖11 一間廚房的概念
好哦,課程介紹就大致是這樣。
那準備當個(應該)很厲害廚師ㄌ? 👨🏽🍳👨🏽🍳👨🏽🍳👨🏽🍳👨🏽🍳
那就GOGO~~
Copyright © 2024 Gavin HSIEH. All rights reserved.