Unity其他--【MMD】如何在Unity中制作MMD

小菲搖

·之前學習了在Unity中使用動畫狀態機控制人物,以及用Shader去對氛圍圖形進行渲染,然后又刷到一些MMD的視頻,我就想著MMD能做的事情感覺Unity應該也都能做而且更方便的吧,所以就嘗試做了一下。當然這里主要是記錄一下自己是怎么做的,方便以后有需要的時候查看回顧。

主要的學習來自這個視頻:【Unity教程】如何使用Unity制作MMD/如何在Unity里面使用MMD模型


一.準備插件與資源

①準備MMD4Mecanim:去這個博文中的百度云盤下載的【Unity3D】如何用MMD4Mecanim插件將pmx格式模型轉換為fbx格式模型

它用于把MMD的pmx轉化為Unity中的可用模型和動作

②準備PmxEditor:PmxEditor中文版

用于在查看丟失貼圖的材質原本對應的貼圖是什么

③準備動畫渲染的Shader:https://github.com/XiaoYuName/UnityURPToonLitShaderExample

④準備模型與動作:

模型(這里我用的是小菲的模型):https://www.aplaybox.com/details/model/AlyBjBpBrhif

動作(這里我用的是Miku搖的動作):https://www.aplaybox.com/details/motion/0xI6349Do7fe

表情(是來自另一個Miku搖動作里的):https://www.aplaybox.com/details/motion/JlVRymPA8fnd


二.新建Unity工程并導入資源

1.新建工程

我這里版本是2022.3.62f1c1,模板選URP的(不是也行)

2.導入插件

先導入MMDMecanim這個插件(在導入模型動作資源前一定要先導入這個插件)

3.導入資源

3.1.Shader資源

然后把動畫渲染的Shader直接拖到Assets文件夾下即可

3.2.模型動作資源

接著我們把模型文件夾也直接拖入到文件中

把動作文件也拖入到文件中

然后MMDMechanim插件會自動幫助我們生成這樣一個資源,我們需要在右側閱讀使用模型的注意事項后打勾并點擊Agree即可

之后它會變成這樣,我們在下面找到VMD,把對應的動作文件拖入其中,即可。然點擊右下角的Apply再點Process

然后會彈出這個,稍作等待,不用動它,等他把數據裝載后之后會自動消失(這個可能會花上大概兩三分鐘或者更多)

之后我們就可以得到這個裝載了模型和動作資源的文件的小菲啦!

4.修復資源

我們可以把小菲拖到場景中去,可以發現此時小菲全身都是紫色的。這是因為MMD4插件用的材質太老了,不適配比較新版本的Unity,這不好的喵,此時就需要我們手動去給他切換正確的材質的。

一般加載完我們可以看到上面有一個Materials文件夾,里面裝載了這個模型用到的材質球

打開這個文件夾,并且全選里面的材質,把它切換成我們之前導入的卡通渲染的Shader

此時小菲就全身變成白色的了喵,這是因為材質上的貼圖丟失了導致的。有的人可能會問,這不是還有問題嘛?別急喵,我們之前下載的PmxEditor這個時候就有用了。

我們打開PmxEditor(我們電腦現在應該大多都是64位了吧)

把小菲的pmx文件拖入到這里面,選擇OK

然后我們就可以在這里每一個材質中查看對應的貼圖了

之后我們給小菲每個材質貼上對應的材質即可(嗯對的,一個一個貼上去,雖然聽起來很麻煩,但是目前我只會這種解決方案的)

注意逐個材質是發現紋理,需要切換它的紋理類型(不過其實在那個卡通渲染的Shader中似乎并沒有放置法線紋理的位置,之后也是放入Base Color那里的)

全部材質都貼上之后可以看到小菲正常顯示出來了

注意:

小菲的裙子這里會有些很奇怪的斑點閃爍,似乎是因為這個裙子是分里外兩層的,然后渲染的時候有沖突。這里我們先無視這個問題

②重新加載項目,導入新插件之類的時候,MMD4那個插件似乎總是會自動把模型又切換回原來的材質,導致模型又變成紫色的。此時我們再按之前的方法手動把材質都切換為卡通渲染Shader即可。(這里只提供治標的方法,治本的方法之后再研究)


三.添加動作與表情

好啦,現在模型和動作都已經準備好了,我們可以通過Unity的動畫狀態機來控制動作

1.添加動作

這里我們演示用動畫狀態機來給小菲住添加動作

我們隨便在一個文件夾里右鍵創建動畫狀態控制器

雙擊這個動畫狀態機打開,并把模型下的子資源中的動作拖入動畫機窗口中

接著我們給小菲創建動畫機組件

并把我們之前制作的動畫控制器拖入到其中

然后點擊上方的運行按鈕,就可以看到小菲動起來啦!

2.添加表情

2.1.表情修復插件

對于表情,我們需要再去下載一個插件

https://www.bilibili.com/opus/908867611583840278

這個插件用于幫助我們制作表情(MMD4沒辦法順利生成表情不知道為什么)

下載完解壓之后,進入這個路徑,找到這個包去把插件裝入Unity中

2.2.表情修復

裝完后在上方點擊打開窗口

這個位置對應的是小菲的臉(似乎還能控制耳朵的)

把對應的控制小菲臉部的位置和表情拖入其中。改名是給生成的動畫起的名字,方便我們查找。

然后點擊生成按鈕我們就可以看到在對應的路徑下生成了我們需要的表情動畫了

2.3.用TimeLine添加表情

我們打開Timeline窗口

選中小菲的臉部

點擊創建TimeLine

在彈出的窗口中選擇保存的位置,保存的文件名并保存

然后我們先按老樣子創建一個控制表情的動畫控制器

然后給小菲臉部加上一個動畫機組件并把這個動畫控制器拖到上面去

之后選中臉部,在這個Timeline下面創建一個動畫軌道

把小菲臉部物體拖入其中

然后再點擊播放,此時我們可以看到小菲已經是有表情的啦

至此小菲的動作和表情就都設置好了


四.簡單布置場景

小菲搖的很可愛,但是場景什么的似乎有些單調。這里我們可以簡單地給他修改下天空盒,加個地板,調整攝像機位置什么的。

4.1.創建地板

在Hierachy視圖中右鍵,給小菲創建一個簡單的平面作為地板

4.2.移動攝像機

在場景視圖移動到一個看起來還算可以的視角

然后選中攝像機,按快捷鍵【ctrl+shift+F】

就可以把攝像頭顯示在我們想要的位置了

4.3.添加天空盒

天空盒我們可以隨便百度搜一個

https://gitcode.com/Premium-Resources/af321/?utm_source=article_gitcode_universal&index=top&type=card&&uuid_tt_dd=10_30857020650-1754276752878-264643&isLogin=1&from_id=147648845

這里我是去這個地方下載的天空盒素材

下載完解壓后按之前的方法導入Unity中(注意可能導入之后小菲的模型會又變紫,不要驚慌,我們只需要把小菲的材質再切換到卡通渲染用的Shader即可

之后我們打開這個面板

在這里選擇我們覺得合適的天空盒材質即可


五.音樂

這里音樂用的哈基搖我是去網易云下載的,大家也想用去網易云搜索就可以找到并下載的。下載到拖入到Unity的文件夾中即可

我們選中小菲的模型,給她添加這么兩個組件

之后把音樂和組件拖入到各自的位置即可

這里有時候如果模型的物理特性沒有的話,我們可以把這個選項選為Bullet Physics

之后點擊運行就可以看到小菲在載歌載舞啦!

小菲搖

如果想讓它看起來更像那種抖音小視頻,我們可以在這里添加修改分辨率的寬高比(不過這樣的話其實之后用插件內部錄制的時候清晰度有點不好,所以可能還是不調了用后期剪輯比較好)


六.錄制視頻

我們可以去Package Manager中下載這個插件進行錄制(注意下載完之后小菲模型又會變紫,我們再耐心調整一下材質)

然后我們打開錄制窗口并進行錄制。我們這里用1080P的分辨率進行錄制,不要用我們之前修改了的短視頻分辨率,不然會很糊,像上個世紀的老片。

設置完成后點擊左上角的錄制即可,它會變灰然后自動運行場景并開始錄制。當我們再次點擊的時候就結束錄制了


七.其他

缺點與不足:

①每次導入新插件等會讓工程重新編譯的時候,MMD4都會自動又把模型再設置為默認的材質導致模型變成紫色。這個問題之后再研究怎么解決比較好。

②缺少運鏡,因為我還不太熟悉Cinemachine這個插件的使用,也還沒有找到比較方便的插件來控制攝像頭的運動,等后續學習了之后再用到這上面來。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94352.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從技術精英到“芯”途末路:一位工程師的沉淪與救贖

作者:邱戈龍、曾建萍【長昊律所】 專注于商業秘密、軟件著作權的專業型律師事務所,擅長民事、行政、刑事多重救濟途徑,為眾多科學技術領域的商業秘密、軟件著作權類案件提供侵權維權、辯護、司法鑒定、司法審計、調查取證等高品質專項法律服務…

刷題日記0824

兩眼一睜就是刷!今日計劃5道3/5昨天遇到了幾件令人心情不好的小事,今天還要處理一下。一早上的好心情被小小的破壞了一下。1056. 易混淆數 簡單有思路,心情好。耶比耶比,算是一遍過,這次考慮很周。寫完了有一種一遍過的…

Qt c++開發中的delete QThread操作需注意

1、析構函數中,不能執行QEventLoop,會造成 重入問題:事件循環可能觸發其他事件,導致已析構的對象被再次訪問信號槽連接:正在析構的對象可能還有未斷開的信號槽連接未定義行為:對象狀態不確定,可…

Seaborn數據可視化實戰:Seaborn圖表定制與數據可視化入門

高級圖表定制 學習目標 通過本課程你將掌握如何使用Seaborn庫進行高級圖表定制,包括圖表的標題、圖例、注釋的添加,以及圖表布局和大小的調整。這些技能將幫助你更有效地展示數據,使你的數據故事更加生動和有說服力。 相關知識點 Seaborn高級…

nano命令使用方法

nano 是 Ubuntu 等 Linux 系統中常用的輕量級文本編輯器,輕量易用,特別適合適合快速編輯配置文件、腳本等。以下是其核心使用方法:一、基本操作:打開 / 創建文件bash# 打開已存在文件(若文件不存在則創建) …

C#_gRPC

6.3 gRPC:高性能跨語言服務間通信 gRPC是一個高性能、開源、通用的RPC(Remote Procedure Call)框架,由Google開發并基于其多年的內部使用經驗(Stubby)。它現在是Cloud Native Computing Foundation&#xf…

Ubuntu 多版本 librealsense 與 realsense_ros 編譯并兼容 L515 等設備

這篇博客用來記錄如何在 Ubuntu 下編譯多個版本的 librealsense 并使用 L515 和 D435i 等設備。核心在于 L515 這款設備已經停止維護,直接安裝的方案不支持這個設備,只支持 D435i 等后期產品。如果想要同時使用新老的 realsense 產品,需要單獨…

Java 泛型 T、E、K、V、?、S、U、V

目錄 一、概述 二、為什么使用泛型 三、常見泛型類型參數的含義與用途 示例一:使用 T 定義泛型類 示例二:使用 E 表示集合元素 示例三:使用 K 和 V 表示鍵值對 示例四:使用 ? 通配符處理未知類型 四、通配符 ? 的擴展用…

1688拍立淘接口數據全面解析詳細說明(item_search_img)

一、接口概述 1688拍立淘接口是阿里巴巴1688平臺提供的基于圖像識別的商品搜索服務,允許開發者通過上傳商品圖片來搜索平臺上的同款或相似商品。該接口的主要功能是接收用戶上傳的圖片(或圖片的相關信息),并通過1688平臺的圖像識…

【Docker項目實戰】使用Docker部署輕量級LetsMarkdown文本編輯器

【Docker項目實戰】使用Docker部署輕量級Markdown文本編輯器一、LetsMarkdown介紹1.1 LetsMarkdown簡介1.2 主要特點二、本次實踐介紹2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3檢查docker compose 版本四、拉取容器鏡像五…

Node.js自研ORM框架深度解析與實踐

Node.js自研ORM框架深度解析與實踐 前言 在現代Web開發中,對象關系映射(ORM)框架扮演著至關重要的角色。它們為開發者提供了一層抽象,使得數據庫操作變得更加簡單和直觀。本文將深入解析一個基于Node.js和MySQL的自研ORM框架&…

匯總圖片拖進ps中 photoshop同時打開幾個文件夾

如果你有許多文件夾,你想選中一部分,然后把里面的圖片全部拖進photoshop當中,但是文件夾又不能直接拖進去,那么你可以嘗試使用一下這個工具,首先測試一下直接拖文件夾。選中你要處理的文件夾,直接拖進photo…

mysql 5.7 查詢運行時間較長的sql

開發過程遇到sql 執行時間長,又取消不了的情況 可使用 kill query ID 殺死進程獲取正在運行的sqlSELECT ID, -- 進程ID:MySQL服務器分配給每個連接的唯一標識符,用于區分不同的客戶端連接USER, …

MongoDB 從入門到實踐:全面掌握文檔型 NoSQL 數據庫核心操作

目錄 一、MongoDB 基礎準備 1. 官方資源獲取 2. 安裝步驟解析 二、MongoDB 核心指令詳解 1. 數據庫操作指令 2. 集合操作指令 3. 文檔操作指令 查詢文檔 插入文檔 修改文檔 刪除文檔 三、進階查詢技巧 1. 運算符的靈活運用 比較運算符 邏輯運算符 范圍與成員運算…

CVPR2025丨遙感領域,全模態與秒超高清遙感建模重大突破,性能提升創新點

關注gongzhonghao【CVPR頂會精選】剛入門遙感建模時,總好奇別人為什么總能提出新方法?慢慢摸索后才發現,創新點并不是硬憋出來的,而是要從數據特性、傳感器差異、地物細節以及環境變化中發現機會。不同波段、不同分辨率、不同時相…

HTML5詳篇

前端三劍客 前端三劍客是指HTML、CSS和JavaScript: HTML超文本標記語言(Hyper Text Markup Language):簡單理解描述網頁結構的;用于網頁內容的語言。它通過使用不同的HTML標簽來定義頁面中的各種元素,例如標題、段落、圖像、鏈接等【無羽毛的小鳥模型】 CSS層疊樣式表(…

【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的魯棒性

25年最新連接去除場景瞬態對象工程與3DGS的pipeline,改進了spotlesssplats,已開源: [2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: De…

【MySQL】CRUD基礎詳解

CRUD基礎前言:數據庫的層級結構一、新增(Create)1. 單行數據 全列插入2. 單行數據的簡寫插入3. 指定列插入4. 多行數據插入二、查詢(Retrieve)1. 全列查詢2. 指定列查詢3. 查詢結果為表達式(1)…

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析 面試場景設定 本文通過一個嚴肅的面試官和搞笑的水貨程序員大面條之間的對話,模擬互聯網大廠Java崗位的技術面試過程。面試涵蓋Java SE、Spring生態、數據庫、微服務、緩存、安全、消息隊列、AI等多…

response對象的elapsed屬性

在Python的requests庫中,當我們發送一個請求后,會得到一個Response對象,這個對象有一個elapsed屬性,它返回一個timedelta對象,表示從發送請求到收到響應所經過的時間。response.elapsed.total_seconds() 是 Python req…