PowerPoint Presentation



Similar documents
6-1-1極限的概念

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U )

Microsoft Word - 第四章.doc

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 查 詢 股

實德證券網上交易系統示範

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼 ( 五 ) 健 保 卡 更 換 ( 六 ) 重 寄 確 認 信.

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

Microsoft Word doc

肆 研 究 方 法 進 行 本 研 究 前, 我 們 首 先 對 研 究 中 所 用 到 名 詞 作 定 義 定 義 : 牌 數 : 玩 牌 時 所 使 用 到 撲 克 牌 數 次 數 : 進 行 猜 心 術 遊 戲 時, 重 複 分 牌 次 數 數 : 進 行 猜 心 術 遊 戲 時, 每 次 分

CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

PowerPoint 簡報


章節

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

<4D F736F F D20B2C433B3B92020B971B8F4A4C0AA52A7DEA5A9>

NCKU elearning Manual

授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解

第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀

128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清

五 四 五 說 ( 代 序 ) 李 澤 厚 劉 再 復 I I II IV V VII 第 一 篇 五 四 新 文 化 運 動 批 評 提 綱 附 論 一 中 國 貴 族 精 神 的 命 運 ( 提 綱 )


101年度社會福利方案 網路線上操作手冊

投影片 1

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統 新 用 戶 新 用 戶 登 入 帳 戶 程 序 啟 動 網 上 預 約 面 談 訪 問 帳 戶 核 對 帳 戶 的 地 址 資 料

xls

Microsoft Word - ch07

四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明

題組一 文書排版

內 政 統 計 通 報

第二組掃描器規範書

C CH4.tpf

骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒

(Microsoft Word -

進 入 系 統 1. 請 於 首 頁 右 側 使 用 者 登 入 輸 入 帳 號 密 碼 驗 證 碼 後, 點 選 登 入 進 入 系 統 2. 直 接 點 選 右 側 的 進 入 系 統, 直 接 進 入 題 目 檢 索 頁 面 直 接 進 入 系 統 後, 您 仍 可 瀏 覽 選 擇 您 所 需


BSP 烤箱 - 封面-2

標 準 作 業 程 序 的 版 本 說 明 : 制 定 者 版 本 編 碼 日 期 日 期 主 要 秘 書 處 Version /12/ /12/03 第 一 版 秘 書 處 Version /12/ /12/31 第 一 版 第 一 次 秘

包 裝 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品 營 養 標 示 應 遵 行 事 項 一 本 規 定 依 食 品 安 全 衛 生 管 理 法 第 二 十 二 條 第 三 項 規 定 訂 定 之 二 本 規 定 所 稱 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品, 指

臺灣農產品生產追溯管理作業規範草案

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍

奇 妙 的 24 摘 要 從 撲 克 牌 中 隨 機 抽 取 4 張 牌 可 以 有 1820 種 牌 組, 在 這 1820 種 牌 組 中, 有 1362 組 可 經 由 四 則 運 算 的 方 式, 算 出 24 點, 有 458 組 無 解 快 速 求 解 的 方 法 有 相 加 法 因 數

<4D F736F F D D313032A7DEC075BAC2BC66B56EB04FB44EC5AAA7D3C440A7C7A874B2CEBEDEA740A4E2A5552E646F63>

Microsoft Word - BM900HD-2F電腦設定.doc

1. 安 裝 1.1 手 機 端 安 裝 檔 (cab 檔 ) 請 您 將 下 載 的 cab 檔 案 複 製 到 手 機 內 任 一 資 料 夾, 在 手 機 上 點 擊 cab 檔 案 後 即 可 開 始 安 裝 點 擊 本 檔 案 即 可 開 始 安 裝 請 於 您 的 手 機 上 繼 續 安

Microsoft Word - 雲林區_免試平台_國中模擬選填_操作手冊.doc

簽 呈

Acronis Backup & Recovery 11 進階版本

sle cover 1

16

研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝

55202-er-ch03.doc

life930106

2 2.1 A H ir@abchina.com 2

(Microsoft Word - \246\250\301Z\272\336\262z.doc)

(DP_MFP_Training

寫 作 背 景 導 讀 [98] L Lyman Frank Baum

Microsoft Word - Draft circular on Sub Leg Apr (chi)_Traditional

1 CH1 環 境 介 面 及 面 板 設 定 1-1 Word 2010 環 境 介 面 與 功 能 區 1-2 環 境 介 面 色 調 處 理 1-3 自 訂 快 速 存 取 工 具 列 1-4 Word 選 項 控 制 CH2 文 字 資 料 2-1 建 立 文 字 2-2 貼 入 網 頁 文

<4D F736F F D D C0F4AB4FB870A175C0B3A548BAF4B8F4B6C7BFE9A4E8A6A1BFECB27AA4F4A6C3AC56A8BEAA76B1B9AC49AD70B565BB50B35CA569C3D2A15DA4E5A5F3A15EA4A7A5D3BDD0A142C5DCA7F3A9CEAE69A9B5A141A4CEC0CBB4FAA5D3B3F8A4A7B

大學甄選入學委員會

<30332EAAFEA5F3A440A142A447A142A454A142A57CA147BEC7A5CDB14DB77EC3D2B7D3BEC7B2DFA661B9CF2E786C73>

背書保證作業程序

2 飲 料 調 製 丙 級 技 術 士 技 能 檢 定 必 勝 寶 典 Beverage Modulation Preparation 應 考 綜 合 注 意 事 項 A1 A2 A3 A4 A5 A6 B7 B8 B9 B10 B11 B12 C13

課 程 簡 介 第 一 章 基 本 電 路 理 論 第 二 章 半 導 體 物 理 與 pn 接 面 二 極 體 元 件 分 析 第 三 章 二 極 體 電 路 分 析

虛擬交易所97年GVE3簡易版.doc

瑞興銀行

PART 2 系 統 篇 仔 細 檢 查 記 憶 體 和 顯 示 卡 AIDA64 Everest 操 作 : 使 用 AIDA64 檢 測 主 機 溫 度 AIDA64 DirectX AIDA

二 兒 歌 選 用 情 形 ( ) 2 ( ) ( )

功能名稱

Microsoft PowerPoint - 使用 Word 編輯與排版文件 (II).ppt

Microsoft Word - ch01.doc

1

節 數 內 容 網 頁 設 計 (1): 利 用 Google Sites 制 作 簡 單 文 字 網 頁, 連 結 不 同 版 面 網 頁 設 計 (2): 在 文 字 網 頁 上 加 插 圖, 上 載 網 頁 影 片 設 計 (1): 利 用 Windows Movie


Microsoft Word - 全華Ch2-05.doc

人 們 在 為 生 活 空 間 中 的 物 品 選 擇 色 彩 時, 不 自 覺 地 會 反 應 出 大 腦 對 色 彩 的 解 釋, 設 計 師 若 能 掌 握 色 彩 所 隱 藏 的 訊 息, 便 可 以 充 分 利 用 並 創 造 出 極 具 魅 力 的 產 品 視 覺 對 知 覺 的 影 響

校 長 遴 選 者 就 相 關 遴 選 事 項, 有 程 序 外 之 接 觸 遴 選 會 委 員 在 任 期 間 因 故 無 法 執 行 任 務 或 有 不 適 當 之 行 為 者, 由 各 該 主 管 機 關 解 聘 之 ; 其 缺 額, 依 第 一 項 至 第 五 項 規 定 聘 ( 派 ) 委

<4D F736F F D20AA41B9A2BCD0B7C7A7D6B374A44AAAF92E646F63>

支 持 機 構 : 社 會 文 化 司 主 辦 機 構 : 澳 門 學 聯 澳 門 青 年 研 究 協 會 電 話 : 傳 真 : 網 址 : 報 告 主 筆 : 李 略 博 士 數 據 錄

(Microsoft Word - \244\361\301\311\263W\253h\244\316\255p\244\300\257\ \(1\))

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

壹、組織編制 代碼:C0101意見反映

Microsoft PowerPoint - F263-CH10.ppt [相容模式]

長跨距暨挑高建築特殊結構系統之調查分析

第一章 緒論

<4D F736F F D20A4BDA640BADEB27ABD64C3A5A44AC2BEB4B6B371B67DA6D25FB3F8A6D2B0DDC344B6B05F F636E>

???T????????


iPhone版操作手冊

版 本 記 錄 版 本 日 期 作 者 版 本 版 本 變 更 說 明 2012/08/27 Iden 1.0 初 版 2012/09/18 Iden 1.1 加 入 付 款 流 程 等 章 節 2014/11/03 Iden 1.2 加 入 憑 證 管 理 - 憑 證 二 代 卡 放 行 流 程

CP70D0026D61ETW0R01-01-印刷

文 ( 一 ) 閱 讀 理 解 英 語 數 學 社 會 自 然 及 國 文 ( 二 ) 語 文 表 達 等 各 科 此 外 嘉 義 區 則 另 外 單 獨 辦 理 測 驗 五 專 亦 有 辦 理 特 色 招 生 考 試 分 發 入 學, 與 高 中 高 職 分 開 辦 理, 但 成 績 同 樣 採

Transcription:

DressingRoom

簡 介 DressingRoom 是 利 用 Unity 所 內 建 的 壓 縮 技 術 AssetBundle 將 現 有 的 模 型 材 質 骨 架 貼 圖 動 作 分 開 匯 出 成 檔 案, 放 置 於 網 路 或 本 機 資 料 夾 中, 在 遊 戲 中 達 到 紙 娃 娃 的 功 能

Editor 簡 介 & 功 能 簡 介 如 何 讓 Class 出 現 在 Editor 面 板 上? FBXPostprocessor Generate Materials Create Assetbundles Update Character Element Database

如 何 讓 Class 出 現 在 Editor 面 板 上? 只 需 在 該 script 腳 本 中 加 入 下 面 這 段 語 法 即 可 [MenuItem( 路 徑 / 名 稱 ")] [MenuItem("Character Generator/Create Assetbundles")]

FBXPostprocessor FBXPostprocessor 繼 承 AssetPostprocessor Class, AssetPostprocessor 是 Unity 的 Editor Class, 當 匯 入 asset 時 會 被 呼 叫, 必 須 在 Editor 下 才 能 使 用, 只 能 使 用 於 C#, 使 用 前 要 加 上 using UnityEditor; OnPreprocessModel 匯 入 FBX 之 前 呼 叫 OnPostprocessModel 匯 入 FBX 之 後 呼 叫

FBXPostprocessor.OnPreprocessModel() 所 有 的 FBX ( 包 含 動 作 檔 ) 透 過 ModelImporter 修 改 所 有 的 FBX 的 globalscale 為 1 過 濾 掉 characters 資 料 夾 以 外 的 檔 案 設 定 FBX 上 animationcompression = ModelImporterAnimationCompression.Off, 並 移 除 模 型 上 的 材 質 球

FBX Animation 子 物 件 SkinnedMeshRender Material Bone FBX Animation SkinnedMeshRender Bone * 此 FBX 指 的 characters 資 料 夾 內 所 有 的 FBX( 包 含 動 作 檔 )

FBXPostprocessor. OnPostprocessModel() 過 濾 掉 characters 資 料 夾 以 外 的 檔 案 抓 取 動 作 檔 把 動 作 檔 裡 面 的 所 有 子 物 件 上 的 SkinnedMeshRenderers 和 meshes 移 除 移 除 所 有 動 作 檔 裡 面 的 bone

FBX@ Animation SkinnedMeshRender FBX@ Bone Animation * 此 FBX@ 指 的 characters 資 料 夾 內 所 有 的 動 作 檔

Assetbundle 拆 出 來 的 檔 案 人 物 最 外 層 的 殼 - 人 物 _characterbase.assetbundle_assetbundle 檔 檔 案 裡 面 包 含 的 資 訊 : [CreateAssetbundles 所 產 出 ] Animation SkinnedMeshRender Bone ---------------------------------------------------------------------------------- 人 物 材 質 球 - 貼 圖 名 稱.mat( 貼 圖 名 稱 上 會 代 有 貼 圖 要 使 用 到 的 材 質 球 shader) [GenerateMaterials 所 產 出 ] ---------------------------------------------------------------------------------- 人 物 部 位 - 人 物 _ 部 位. Assetbundle 檔 案 裡 面 包 含 的 資 訊 :[CreateAssetbundles 所 產 出 ] SkinnedMeshRender Bone -------------------------------------------------------------------------- 比 對 檔 - CharacterElementDatabase.assetbundle 人 物 assetbundle 檔 和 材 質 球 檔 名 稱 相 對 應 存 入 資 料 : [UpdateCharacterElementDatabase 所 產 出 ] 人 物 assetbundle 檔 ( 無 副 檔 名 ) 材 質 球 檔 ( 無 副 檔 名 ) 人 物 assetbundle 檔 1( 無 副 檔 名 ) 材 質 球 檔 1( 無 副 檔 名 )...

List<Texture2D> textures GenerateMaterials 透 過 EditorHelpers 收 集 characterfbx 使 用 到 的 貼 圖 檢 查 characterfbx 子 物 件 上 FBX 子 物 件 使 用 到 的 貼 圖 無 normal 有 normal Material 使 用 Specular 的 Shader Material 使 用 Bumped Specular 的 Shader 建 立 檔 案 ( 檔 名 : 貼 圖 名 稱.mat) * 此 作 法 是 將 貼 圖 名 稱 都 已 事 先 命 名 好 相 對 應 的 人 物 _ 部 位 並 加 上 顏 色 以 及 是 否 使 用 normal 在 貼 圖 名 稱 上

CreateAssetbundles FBX Animation SkinnedMeshRender Bone

過 濾 檔 案, 抓 出 Female.FBX Male.FBX characterclone Animation SkinnedMeshRender Bone characterclone Animation SkinnedMeshRender Bone 建 立 assetbundle 檔 ( 檔 名 : 人 物 _characterbase.assetbundle) male _characterbase.assetbundle female_characterbase.assetbundle characterbaseprefab Animation SkinnedMeshRender Bone 經 過 GetPrefab(): 複 製 一 個 空 的 Prefab 將 GameObject 存 入 並 取 代 Prefab

FBX Animation SkinnedMeshRender Bone rendererparent(fbx 父 物 件 ) Animation rendererclone(fbx 子 物 件 ) (eyes face hair..) 角 色 名 稱 male 元 素 face-1 face-2 eyes hair-1 List<Object> toinclude rendererprefab rendererparent Animation rendererprefab rendererclone (eyes face hair..) 經 過 GetPrefab() rendererclone (eyes face hair..)

List<Material> materials 用 EditorHelpers 收 集 GenerateMaterials 所 建 立 出 來 的 材 質 球 檔 EditorHelpers 是 一 個 自 定 義 的 Class, 裡 面 是 一 個 泛 型, 將 要 找 的 檔 案 的 資 料 型 態 給 它, 它 就 會 把 你 要 找 的 檔 案 存 入 List< 資 料 型 態 > 後 回 傳 toinclude 材 質 球 檔 對 應 characterfbx 子 物 件 名 稱 的 檔 案 (.mat) List<string> bonenames 找 出 characterfbx 子 物 件 的 bone.name 將 hold 建 檔 ( 檔 名 :bonenames.asset) toinclude holder holder 把 bonenames 轉 成 Array holder 是 經 過 StringHolder Class 建 立 出 來 的 字 串 陣 列, 而 StringHolder 是 一 個 ScriptableObject, ScriptableObject 是 一 個 Class 讓 你 建 立 物 件 不 必 把 Script 加 到 Gameobject 上, 常 用 來 存 資 料

toinclude rendererprefab 材 質 球 檔 (.mat) holder toinclude.toarray() 建 立 成 assetbundle 檔 案 ( 檔 名 : 人 物 _ 部 位. assetbundle) 刪 除 用 來 存 資 料 的 asset 檔 建 立 assetbundle 檔 案 時 需 在 unity asset 資 料 夾 內 有 實 體 物 件 才 能 建 立 成 assetbundle, 所 以 當 資 料 存 在 ScriptableObject 時, 它 並 不 存 在 unity asset, 必 須 先 存 成 asset 檔 才 能 建 立 成 assetbundle 檔

UpdateCharacterElementDatabase string[] assetbundles assetbundle 檔 剔 除 assetbundle 檔 案 的 副 檔 名 string bundlename assetbundle string[] materials 材 質 球 檔 (.mat) 比 對 assetbundle 和 材 質 球 檔 前 面 的 名 稱 一 樣 List<CharacterElement> characterelements CharacterElement() 方 法 將 對 應 的 資 料 ( 材 質 球 檔 名 稱 去 掉.mat, assetbundle 檔 名 ) 存 入 characterelement 中 的 CharacterElement() 方 法

t characterelements 建 立 asset 檔 ( 檔 名 :CharacterElementDatabase.asset) t 是 透 過 CharacterElementHolder ( 意 義 同 於 StringHolder) 建 立 的 一 個 ScriptableObject 建 立 成 assetbundle 檔 ( 檔 名 :CharacterElementDatabase.assetbundle)

CharacterElement 用 於 處 理 角 色 的 部 位 元 素, 裡 面 含 有 其 材 質 名 稱 對 應 的 assetbundle 名 稱 可 以 取 得 骨 架 的 名 稱 的 方 法.. 等 等

CharacterElement_ 方 法 GetSkinnedMeshRenderer() 生 成 一 個 Object 再 將 materialrequest 賦 予 給 他 回 傳 Object 上 的 smr(renderer) GetBoneNames() 取 得 對 應 的 骨 架 名 稱

CharacterElement_ 變 數 P1 Name 材 質 名 稱 bundlename 對 應 的 assetbundle 名 稱 Wwws 紀 錄 assetbundle 對 應 的 WWW gameobjectrequest 對 應 的 mesh materialrequest 對 應 的 材 質 球

CharacterElement_ 變 數 P2 bonenamerequest 對 應 的 骨 架 名 稱 WWW 包 含 對 應 的 assetbundle IsLoaded 判 斷 是 否 已 經 下 載 完 成 且 是 否 賦 予 在 gameobjectrequest materialrequest bonenamerequest

DressingRoom 執 行 流 程 Part1 Main.Start() F 確 認 資 源 是 否 已 取 出 T T 確 認 是 否 已 有 角 色 資 訊 F 使 用 Female 創 立 新 角 色 使 用 舊 有 資 訊 創 角

DressingRoom 執 行 流 程 Part2 Main.Update() F T 確 認 CharacterGenerator 是 否 存 在 T 確 認 是 否 正 在 創 角 或 換 裝 F F 確 認 資 源 是 否 皆 已 載 入 T 確 認 是 否 為 新 角 色 或 換 角

DressingRoom 執 行 流 程 Part3 T 確 認 是 否 為 新 角 色 或 換 角 F 刪 除 舊 有 角 色 新 增 新 角 色 更 換 指 定 部 位 F 是 否 為 第 一 次 建 立 的 角 色 確 認 是 否 有 動 作 要 播 放 F T T 角 色 從 場 景 外 走 入 播 放 對 應 動 作 角 色 直 接 出 現 在 場 景 內 跳 出

Script 解 析 Main CharacterGenerator

Main 這 個 MonoBehaviour 是 用 來 控 制 CharacterGenerator 類 別 人 物 的 動 畫 還 有 使 用 者 介 面 當 使 用 者 更 換 了 不 同 的 角 色 配 置 時, CharacterGenerator 則 需 準 備 好 需 要 的 物 件 元 素

Main_Start() 此 場 景 程 式 中 的 進 入 點 等 待 CharacterElementDatabase 解 析 完 後 初 始 角 色 使 用 PlayerPrefs.HasKey 確 認 是 否 有 儲 存 的 角 色 資 訊

Main_Other Update() : 用 來 判 斷 是 否 為 第 一 次 創 角 是 否 有 更 換 角 色 或 更 換 部 位 動 作 判 斷 與 播 放 OnGUI() : 繪 製 使 用 者 介 面 AddCategory() : 除 了 Character 按 鈕 需 要 換 腳 色 以 外, 其 他 的 六 顆 按 鈕 則 是 用 來 更 換 某 個 部 位, 主 要 目 的 是 為 了 減 少 code 量 ChangeCharacter() : 更 換 角 色 ChangeElement() : 替 換 部 位

Config 的 存 取 刪 除 範 例 中 Config 的 存 取 是 利 用 unity 內 建 的 api PlayerPrefs 存 : Playerprefs.SetInt ( KeyName,Value) 取 : Playerprefs.GetInt ( KeyName ) 刪 除 : Playerprefs.DeleteKey( KeyName ) 確 認 : Playerprefs.HasKey( KeyName )

PlayerPrefs 的 儲 存 位 置 PlayerPrefs 在 Windows 運 行 環 境 下 將 資 料 存 於 HKCU\Software\[company name]\[product name] PlayerPrefs 在 Windows Web 檔 案 存 於 %APPDATA%\Unity\WebPlayerPrefs 在 Web 運 行 環 境 下 儲 存 的 檔 案 大 小 不 得 大 於 1MB, 不 然 之 後 所 有 的 儲 存 將 會 跳 出 錯 誤

CharacterGenerator 這 個 類 別 裡 包 含 了 許 多 的 方 法 與 變 數, 負 責 資 源 的 處 理 與 角 色 的 combining 存 取 角 色 資 訊 還 有 人 物 的 建 置 與 部 位 的 更 換, 都 是 在 此 類 別 下 做 處 理

CharacterGenerator_ 變 數 P1 Database 用 於 載 入 CharacterElementDatabase. assetbundle sortedelements ( 右 圖 ) 用 於 管 理 所 有 可 用 的 角 色 名 稱 與 部 位 角 色 名 稱 部 位 元 素 Male Face Face-1 Face-2 Eyes Eyes-1 Eyes-2 availablecharacters 儲 存 可 用 角 色 ( 字 串 ) Female Face Face-1 Face-2 Eyes Eyes-1 Eyes-2 characterbasewwws 儲 存 角 色 名 稱 與 對 應 的 Name_characterbase.assetbundle

CharacterGenerator_ 變 數 P2 characterbaserequests 儲 存 所 有 角 色 的 Prefab, 不 含 Mesh 材 質 currentcharacter 目 前 使 用 的 角 色 名 稱 ( 字 串 ) currentconfiguration 目 前 角 色 身 上 的 部 位 資 訊 assetbundlesalreadydownloaded 讀 取 的 進 度 ( 百 分 比 )

CharacterGenerator_ 變 數 P3 ReadyToUse 確 認 sortedelements 是 否 已 解 析 完 成 CurrentConfigProgress 目 前 部 位 的 載 入 進 度 ( 百 分 比 ) ConfigReady 目 前 角 色 的 所 有 部 位 是 否 都 已 載 入 完 成 AssetbundleBaseURL Assetbundle 的 儲 存 路 徑

CharacterGenerator_ 方 法 P1 CreateWithRandomConfig() 呼 叫 PrepareRandomConfig() 隨 機 創 角 ( 含 性 別 ) CreateWithRandomConfig(string character) 呼 叫 PrepareRandomConfig(string character) 隨 機 創 角 ( 指 定 性 別 ) CreateWithConfig(string config) 呼 叫 PrepareConfig(string config) 使 用 已 儲 存 的 Config 創 立 角 色

CharacterGenerator_ 方 法 P2 PrepareRandomConfig() 與 直 接 呼 叫 下 一 個 方 法 的 差 異 在 於 多 了 一 個 Random 角 色 PrepareRandomConfig(string character) 先 將 currentconfiguration 清 空 > 取 得 目 前 使 用 的 角 色 名 稱 > 依 照 取 得 的 角 色 名 稱 填 入 對 應 的 身 體 部 位 ( 隨 機 ) > 偵 測 有 多 少 assetbundle 已 被 下 載

CharacterGenerator_ 方 法 P3 PrepareConfig(string config) 解 析 收 到 的 config 並 將 其 存 入 settings 陣 列 裡 ( 下 圖 ) > 使 用 的 角 色 為 陣 列 的 第 0 格 > 初 始 化 一 個 currentconfiguration 來 儲 存 部 位 資 訊 > 依 序 比 對 settings 陣 列 內 容 是 否 為 可 用 元 素 > 將 部 位 資 訊 存 入 currentconfiguration > 偵 測 有 多 少 assetbundle 已 被 下 載 Settings[0] Settings[1] Settings[2] Settings[3] Settings[4] Settings[5] Settings[6]. Name Category Name Element Name Category Name Element Name Category Name Element Name

CharacterGenerator_ 方 法 P4 GetConfig() 取 得 目 前 的 角 色 部 位 資 訊 並 以 String 回 傳 Ex : Name Face Face-1 Eyes Eyes-2 ChangeCharacter(bool next) 呼 叫 PrepareRandomConfig(string character) 更 換 角 色 ChangeElement(string catagory, bool next) 使 用 currentconfiguration[catagory] = element;. 來 實 做 更 換 特 定 部 位

CharacterGenerator_ 方 法 P5 Generate() 初 始 化 一 個 角 色 根 目 錄 Generate(GameObject root) 紀 錄 所 有 子 物 件 的 transform > foreach (CharacterElement element in currentconfiguration.values) SkinnedMeshRenderer smr = element.getskinnedmeshrenderer(); 取 得 smr 裡 所 有 的 materials > 取 得 smr 裡 所 有 的 mesh > 取 得 smr 裡 所 有 的 bones > 刪 除 smr > 取 得 root 身 上 的 smr > 使 用 CombineMeshes 將 剛 才 取 得 的 所 有 mesh 整 合 > 最 後 將 bones & materials 都 賦 予 在 root.smr 上, 回 傳

人 物 生 成 示 意 圖 CurrentConfiguration. Value female_eyes_brown female_face-2 female_hair-1_red female_pants-2_orange female_shoes-2_yellow female_top-2_purple 初 使 化 角 色 取 得 所 有 子 物 件 的 Transform 資 訊 從 currentconfiguration 裡 取 得 所 有 的 SMR 從 SMR 裡 取 得 Mesh 從 SMR 裡 取 得 materials 從 currentconfiguration 裡 比 對 並 取 得 Bones SMR = SkinnedMeshRenderer 將 materials Bones Combine 後 的 Mesh 賦 予 到 root 身 上 的 SMR 回 傳

Q & A