2020年5月23日星期六

Steam :: 更改國區

前言


不知道大家有否清楚 Steam 是會跟據不同國家商店地區去調整不同遊戲的販賣價錢
而且, 價錢差距可以十分巨大

<Granblue Fantasy: Versus> Steam 港區原價 HKD $438.00:


<Granblue Fantasy: Versus> Steam 阿根廷區價錢 HKD $73.97:


以上資料截取自 steamdb.info
價錢差都快 6 倍了有沒有, 還不快剁手 (⁎⁍̴̛ᴗ⁍̴̛⁎)‼

免責聲明

以下是更改國區會帶來的風險, 請各位自行抉擇

  • 個別遊戲會鎖運行地區
  • 個別遊戲會鎖連線區域

以上的問題是有對應方法的, 可以在購買前確認

  • 由於違反用戶條約, Steam 有權利封鎖帳戶

以上的問題沒有對應方法, 但實質會否執行就全看 Steam 了

基本說明

就正常而言, Steam 商店國家地區會受兩個不同因素所影響:

  • 主要因素: User 錢包貨幣(與商店地區相互影響)
  • 次要因素: User IP Address

而更改 Steam 商店國家地區可以透過兩個不同方法達成

正常方法

此篇還會再更新。

標籤:

2017年9月18日星期一

MMDAgent :: 總結

標籤:

2017年9月15日星期五

MMDAgent :: 音響模型製作方法

前言


正如題目所言、此篇將會解說應要如何自行創作一個可用於替代"メイ"的語音模型。

創作 MMDAgent 的語音模型是必需使用建基於 Debian 的 Linux 系統去作適當的調整(推薦使用 Ubuntu)
所以以下將會先解說下有關如何可以讓非 Linux 使用者在不𨍭換作業系統的情況下創作語音模型。

Virualbox
接下來的例子都將會以在 Virualbox 上安裝 Ubuntu 系統為例, 若要安裝其他系統的朋友請自行作用適當的調整。

Windows 10
先解說下有關 Windows 10 作業系統上所需要的安裝方法。

下載:

有關 ATR503文章読み上げ
ATR503文章読み上げ 是由 磯健一、渡辺隆夫、桑原尚夫 等人專為日語語音數據庫開發的朗讀文章, 當中兩個音素連鎖的句子有 402 種, 三個音素連鎖句子有 223 種, 共 625 句擁有良好平衡的句子。

一共有 A set 至 J set 共 10 set, 每 set 50 個句子。(J set 有 53 句)
取得 ATR503文章読み上げ的 Data 意思為朗讀並錄製全數 ATR503文章読み上げ 句子, 而需要儲存成以下格式:
  • 1. 必需在 Windows 系統下製作
  • 2. 需要是 .wav 的檔案
  • 3. 檔案要是 48 kHz, 16 bit 以及單聲道

以上為在 Windows 系統上須要下載的工具列表。

Ubuntu
以下將會說一下在 Ubuntu 系統中所須的東西。

此外, 最好也把 MMDAgent 的 Linux 開發環境安裝好
有需要用到 Terminal 的地方, 所以需要認識基本的 Linux Command

下載:

在 Terminal 輸入以下的指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ kutengf@sawaho-Alex911a:~$ sudo apt-get install patch]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

這樣就可以使用到與 Patch 相關的指令了。
Make the directories yourself

Julius 的安裝(Ubuntu)
  • 1. 先把下載來的 julius-4.2.1-linuxbin.tar.gz 進行解壓縮。
  • 2. 把解壓好 julius-4.2.1-linuxbin.tar.gz 內 directory 的全數文件複製至 Julius 的 directory(home/kutengf/Julius)。

Dictation-kit 的安裝(Ubuntu)
  • 1. 先把下載來的 dictation-kit-v4.1.tar.gz 進行解壓縮。
  • 2. 把解壓好 dictation-kit-v4.1.tar.gz 內的指定 directory/file 複製至 Julius 的 directory(home/kutengf/Julius)。

以下為指定文件:
  • model/
  • HOWTO.txt
  • TROUBLE.txt
  • fast.jconf
  • light.jconf

Segmentation-kit 的安裝(Ubuntu)
  • 1. 先把下載來的 segmentation-kit-v4.0.tar.gz 進行解壓縮。
  • 2. 把解壓好 segmentation-kit-v4.0.tar.gz 的 directory 複製至 Julius 的 directory(home/kutengf/Julius)。

HTS 的安裝(Ubuntu)
  • 1. 先把下載來的 HTS-2.2_for_HTK-3.4.1.tar.bz2, HTK-3.4.1.zip 和 HDecode-3.4.1.zip 進行解壓縮。
  • 2. 把解壓好 HTK-3.4.1.zip 和 HDecode-3.4.1.zip 的 file/directory 放到 HTK directory。
  • 3. 把 HTS-2.2_for_HTK-3.4.1.tar.bz2 directory 內的 HTS-2.2_for_HTK-3.4.1.patch 複製至 HTK directory。
  • 4. 把 HTK directory 複製至 HTS directory(home/kutengf/HTS)。

打開 Terminal 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ kutengf@sawaho-Alex911a:~$ cd /home/kutengf/HTS/HTK/]
[ kutengf@sawaho-Alex911a:~$ patch -p1 -d . < HTS-2.2_for_HTK-3.4.1.patch]
[ kutengf@sawaho-Alex911a:~$ ./configure --prefix=/home/kutengf/HTS/HTK/]
[ kutengf@sawaho-Alex911a:~$ make]
[ kutengf@sawaho-Alex911a:~$ make install]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

hts_engine_API 的安裝(Ubuntu)
  • 1. 先把下載來的 hts_engine_API-1.06.tar.gz 進行解壓縮。
  • 2. 把解壓好 hts_engine_API-1.06.tar.gz 的 directory 複製至 HTS directory(home/kutengf/HTS)。

打開 Terminal 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ kutengf@sawaho-Alex911a:~$ mkdir /home/kutengf/HTS/hts_engine_API/]
[ kutengf@sawaho-Alex911a:~$ cd /home/kutengf/HTS/hts_engine_API-1.06/]
[ kutengf@sawaho-Alex911a:~$ ./configure --prefix=/home/kutengf/HTS/hts_engine_API/]
[ kutengf@sawaho-Alex911a:~$ make]
[ kutengf@sawaho-Alex911a:~$ make install]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SPTK 的安裝(Ubuntu)
  • 1. 先把下載來的 SPTK-3.5.tar.gz 進行解壓縮。
  • 2. 把解壓好 SPTK-3.5.tar.gz 的 directory 複製至 HTS directory(home/kutengf/HTS)。

打開 Terminal 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ kutengf@sawaho-Alex911a:~$ mkdir /home/kutengf/HTS/SPTK/]
[ kutengf@sawaho-Alex911a:~$ cd /home/kutengf/HTS/SPTK-3.5/]
[ kutengf@sawaho-Alex911a:~$ ./configure --prefix=/home/kutengf/HTS/SPTK/]
[ kutengf@sawaho-Alex911a:~$ make]
[ kutengf@sawaho-Alex911a:~$ make install]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ActiveTcl 的安裝(Ubuntu)
  • 1. 先把下載來的 ActiveTcl8.4.19.4.292682-linux-ix86.tar.gz 進行解壓縮。
  • 2. 把解壓好 ActiveTcl8.4.19.4.292682-linux-ix86.tar.gz 的 directory 複製至 HTS directory(home/kutengf/HTS)。

打開 Terminal 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ kutengf@sawaho-Alex911a:~$ mkdir /home/kutengf/HTS/ActiveTcl/]
[ kutengf@sawaho-Alex911a:~$ cd /home/kutengf/HTS/ActiveTcl8.4.19.4.292682-linux-ix86/]
[ kutengf@sawaho-Alex911a:~$ sh install.sh]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 3. 在安裝介面出現沒多久就會看到 "Please specify the installation directory", 此時要選擇 ActiveTcl 的 directory(home/kutengf/HTS/ActiveTcl)。
  • 4. 之後按照安裝介面的指示便可。

到這裡, 你應該要錄好 ATR503文章読み上げ 的語音檔, 並用 Switch Sound File Converter 轉換好檔案格式, 如果到現在還未有自己語音檔的話就可以先用 HTS-demo_NIT-ATR503-M001.tar.bz2 進行代替。

使用 demo sample 去試作音響模型(如你已錄製 ATR503文章読み上げ 的語音檔, 可直接使用)
  • 1. 先把下載來的 HTS-demo_NIT-ATR503-M001.tar.tar 進行解壓縮。
  • 2. 把解壓好的 HTS-demo_NIT-ATR503-M001 複製至 HTS directory(home/kutengf/HTS)

打開 Terminal 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ kutengf@sawaho-Alex911a:~$ cd /home/kutengf/HTS/HTS-demo_NIT-ATR503-M001/]
[ kutengf@sawaho-Alex911a:~$ ./configure]
[ --with-tcl-search-path=/home/kutengf/HTS/ActiveTcl/bin]
[ --with-sptk-search-path=/home/kutengf/HTS/SPTK/bin]
[ --with-hts-search-path=/home/kutengf/HTS/htk/bin]
[--with-hts-engine-search-path=/home/kutengf/HTS/hts_engine_API/bin]
[ kutengf@sawaho-Alex911a:~$ make]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

標籤:

2017年9月11日星期一

MMDAgent :: Plugin 的製作

標籤:

2017年7月13日星期四

MMDAgent :: 檔案格式

前言


在上一篇已經說了 MMDAgent "Sample Script" 中不同檔案的作用和內容了, 所以在本篇就主要會介紹那些檔案的書寫格式, 還有如何去改寫它們的內容。

".FST"檔的格式

在".Fst"檔的指令當中, 一般都會有分成 4 個區域 (Field)。
  • 第一區域 (1st Field) 主要是有關初始狀態, 就是該項目最原始的狀態。
  • 第二區域 (2nd Field) 主要是有關最終狀態, 就是該項目完成命令後的狀態。
  • 第三區域 (3rd Field) 主要是有關於指令輸入, 就是你想要 MMDAgent 作出什麼行動。
  • 第四區域 (4th Field) 主要是有關於回應輸出, 就是 MMDAgent 作出了什麼几行動。

以下將會逐個部分作出例子...

與 Model 相關的:
  • MODEL_ADD | (model alias) | (model file name) | (x position), (y position), (z position) | (x rotation), (y rotation), (z rotation) | (ON or OFF for cartoon) | (parent model alias) | (parent bone name)

<*Example*> MODEL_ADD|メイ|Model\mei\mei.pmd|0.0,0.0,-14.0|0.0,0.0,0.0|OFF

解釋: 如果指令讀取成功的話, 系統便會把"メイ"這個單位和"mei.pmd"這個單位畫上等號。期次, 在以上的例子中我並沒有加入 Parent Model Alias 和 Parent Bone Name, 這是因為"メイ"並沒有任何親本模型, 而且這點又和默認的指令相同。所以把指令跳過不輸入也是可以的。

  • MODEL_CHANGE | (model alias) | (model file name)

<*Example*>MODEL_CHANGE|メイ|Model\IA\IA.pmd

解釋: 如果指令讀成功的話, 系統便會把"メイ"這個單位, 從"mei.pmd"給轉換成為"IA.pmd"。

  • MODEL_DELETE | (model alias)

<*Example*>MODEL_DELETE|メイ

解釋: 如果指令讀成功的話, 系統便會把對應的模型從任務中移除。如果按照以上例子來說的話, 系統便會把"メイ"也就是"IA.pmd"移除出該任務中。

  • MODEL_EVENT_ADD | (model alias)
  • MODEL_EVENT_CHANGE | (model alias)
  • MODEL_EVENT_DELETE | (model alias)

與 Motion 相關的:
  • MOTION_ADD | (model alias) | (motion alias) | (motion file name) | (FULL or PART) | (ONCE or LOOP) | (ON or OFF for smooth) | (ON or OFF for repos)

<*Example*> MOTION_ADD|メイ|Wait|Motion\Wait\wait.vmd|FULL|LOOP|ON|OFF

解釋: Full / Part 的意思是要使用模型的全部骨架還是部分骨架, Smooth 的作用是令到模型在轉換動作更加流暢, Repos 就是 Reposition 的意思, 也就是當模型完成任務時把模型的骨架撤回原點(Center)。

  • MOTION_ACCELERATE | (model alias) | (motion alias) | (speed) | (duration) | (specified time for end)

<*Example*> MOTION_ACCELERATE|メイ|Wait|Motion\Wait\wait.vmd|5.0|2.0|1.0

解釋: 如果指令讀取成功的話, 系統便會把模型以正常速度運作1秒, 之後再進行加速。 Speed 是以動作的當前速度去以倍數增加, Duration 其實我並不覺得它是維持時間用的指令, 因為這個指令的作用是減慢加速速度, 而不是控制加速的持續時間, Specified time for end 反而更像是持續時間用的, 不過他的用法是倒置的(像是冷卻時間)。

  • MOTION_CHANGE | (model alias) | (motion alias) | (motion file name)

<*Example*> MOTION_CHANGE|メイ|Wait|Model\Laugh\Laugh.vmd

解釋: 如果指令讀取成功的話, 系統便會把"Wait"這個動作, 從"wait.vmd"給轉換成"Laugh.vmd"。

  • MOTION_DELETE | (model alias) | (motion alias)

<*Example*> MOTION_DELETE|メイ|Wait

解釋: 如果指令讀取成功的話, 系統便會直接把對應的動作從任務中移除。如果按照以上例子來說的話, 系統便會把"Wait"也就是"Laugh.vmd"移除出該任務中。

  • MOTION_EVENT_ADD | (model alias) | (motion alias)
  • MOTION_EVENT_ACCELERATE | (model alias) | (motion alias)
  • MOTION_EVENT_CHANGE | (model alias) | (motion alias)
  • MOTION_EVENT_DELETE | (model alias) | (motion alias)

與 Move And Rotate 相關的:
  • MOVE_START | (model alias) | (x position), (y position), (z position) | (GLOBAL or LOCAL position) | (move speed)

<*Example*> MOVE_START|メイ|0.0,10.0,0.0|GLOBAL|2.0

解釋: 如果指令讀取成功的話, 系統便會把模型以兩倍速向中心點(Center)為本的 0.0, 10.0, 0.0 坐標移動, GLOBAL 是指以原點(Center)作為中心點, 而 LOCAL 則是以模型骨架(Model Bone)作為中心點。換言之, 若果使用 GLOBAL 指令的話, 不論執行多少次, 模型也只會移動一次, 並且停留在坐標 0.0, 10.0, 0.0 處, 但如果是用 LOCAL 去執行指令的話, 模型就會不停地向自己的 Y 軸 10.0 方向移動, 每執行一次就會移動一次。

  • MOVE_STOP | (model alias)

<*Example*> MOVE_STOP|メイ

解釋: 如果指令讀取成功的話, 系統便會把移動中的模型停止。

  • MOVE_EVENT_START | (model alias)
  • MOVE_EVENT_STOP | (model alias)
  • TURN_START | (model alias) | (x position), (y position), (z position) | (GLOBAL or LOCAL position) | (rotation speed)

<*Example*> TURN_START|メイ|0.0,10.0,0.0|GLOBAL|2.0

解釋: 如果指令讀取成功的話, 系統便會把模型緩慢地向後翻, 並在到達適當位置時停止(Global)。如果在 Local 的情況下, 模型(mei)便會緩慢地向後翻並永遠都不會停止。TURN 的坐標次序為 (X, Y, Z)。(尚未知道 Z 軸的作用, X, Y, Z 軸是分別代表 "左右軸", "上下軸" 和 "前後軸")。(我稱之為注視點角度轉向)

  • TURN_STOP | (model alias)

<*Example*> TURN_STOP|メイ

解釋: 如果指令讀取成功的話, 系統便會把轉向中的模型停止。

  • TURN_EVENT_START | (model alias)
  • TURN_EVENT_STOP | (model alias)
  • ROTATE_START | (model alias) | (y rotation), (z rotation), (x rotation) | (GLOBAL or LOCAL rotation) | (rotation speed)

<*Example*> ROTATE_START|メイ|10.0,0.0,0.0|GLOBAL|2.0

解釋: 如果指令讀取成功的話, 系統便會把模型緩慢地向前傾斜, 並在到達適當位置時停止(Global)。如果在 Local 的情況下, 模型便會緩慢地向前傾斜並永遠都不會停止。TURN 的坐標次序為 (Y, Z, X)。( Z 軸的作用和 TURN 的 Y 軸作用相同。(ROTATE 的轉速比 TURN 的慢)(我稱之為直接角度轉向)

  • ROTATE_STOP | (model alias)

<*Example*> ROTATAE_STOP|メイ

解釋: 如果指令讀取成功的話, 系統便會把轉向中的模型停止。

  • ROTATE_EVENT_START | (model alias)
  • ROTATE_EVENT_STOP | (model alias)

與 Sound 相關的:
  • SOUND_START | (sound alias) | (sound file name)

<*Example*> SOUND_START|IA_Concert|Music\Vocaloid\IA\IA_Concert.mp3

解釋: 如果指令讀取成功的話, 系統便會開始播放 IA_Concert。

  • SOUND_STOP | (sound alias)

<*Example*> SOUND_STOP|IA_Concert

解釋: 如果指令讀取成功的話, 系統便會停止播放 IA_Concert。

  • SOUND_EVENT_START | (sound alias)
  • SOUND_EVENT_STOP | (sound alias)

與 Stage 相關的:
  • STAGE | (stage file name)

<*Example*> STAGE|Building

解釋: 如果指令讀取成功的話, 系統便會加載場景"Building"。(主要檔案格式為".pmd")

  • STAGE | (bitmap file name for floor), (bitmap file name for background)

<*Example*> STAGE|Stage\building2\floor.bmp,Stage\building2\background.bmp

解釋: 如果指令讀取成功的話, 系統便會加載 MMDAgent_Example 的背景。(主要檔案格式為 ".bmp"))

與 Light 相關的:
  • LIGHTCOLOR | (red), (green), (blue)

<*Example*> LIGHTCOLOR|0.0,90.0,0.0

解釋: 如果指令讀取成功的話, 系統便會把屏幕畫面將會轉為綠色。(此功能是利用三原色的不同度數去互相作配合而製作顏色。)

  • LIGHTDIRECTION | (x position), (y position), (z position)

<*Example*> LIGHTDIRECTION|0.0,90.0,0.0

解釋: 如果指令讀取成功的話, 系統便會把照射模型的光源轉到去模型的正上方。(可以從模型改變了的影子判斷而出。(尚未知道 Z 軸的作用。)

與 Camera 相關的:
  • CAMERA | (x position), (y position), (z position) |(y rotation), (x rotation), (z rotation) | (distance) | (fovy)(field of view, y axis) | (time)

<*Example*> CAMERA|0.0,15.0,0.0|0.0,15.0,0.0|5.0|5.0|5.0

解釋: 此指令的坐標次序為 X, Y, Z, 迴轉次序為 Y, X, Z (未知道坐標 Z 的作用, 只知道使用後鏡頭和目標距離會縮短。 迴轉 Z 的作用為旋轉)。(Fovy 的作用為"指定視野的垂直方向核")

  • CAMERA | (motion file name)

<*Example*> CAMERA|Camera\Camera.vmd

解釋: 如果指令讀取成功的話, 系統便會把鏡頭跟隨著在 Camera.vmd 內已儲存好的資料作出相關的控制。
與 Speech recognition 相關的:
  • RECOG_EVENT_START
  • RECOG_EVENT_STOP | (word sequence)
  • RECOG_MODIFY | GAIN | (ratio)
  • RECOG_MODIFY | USERDICT_SET | (dictionary file name)
  • RECOG_MODIFY | USERDICT_UNSET
  • RECOG_MODIFY | CHANGE_CONF | (config file name)

根據 MMDAgent 版本 1.7 更新說明, 有關 RECOG_MODIFY 的作用都是用來改變語音識別配置的。(Change configuration of speech recognition.)(由於未有詳細研究, 因此說明不多。)

與 Speech synthesis 相關的:
  • SYNTH_START | (model alias) | (voice alias) | (synthesized text)

<*Example*> SYNTH_START|メイ|mei_voice_normal|こんにちは。

解釋: 如果指令讀取成功的話, 系統便會使用 mei_voice_normal 的聲音開始語音合成。

  • SYNTH_STOP | (model alias)

<*Example*> SYNTH_STOP|メイ

解釋: 如果指令讀取成功的話, 系統便會停止合成中的語音。

  • SYNTH_EVENT_START | (model alias)
  • SYNTH_EVENT_STOP | (model alias)
  • LIPSYNC_START | (model alias) | (phoneme and millisecond pair sequence)

<*Example*> LIPSYNC_START|メイ|こんにちは。

解釋: 如果指令讀取成功的話, 系統便會根據指令中的文字而合成相關的嘴唇模型動作。

  • LIPSYNC_STOP | (model alias)

<*Example*> LIPSYNC_STOP|メイ

解釋: 如果指令讀取成功的話, 系統便會停止合成相關的嘴唇模型動作。

  • LIPSYNC_EVENT_START | (model alias)
  • LIPSYNC_EVENT_STOP | (model alias)

有關 LIPSYNC 的作用是用來合成嘴唇模型動作的, 通常是用於 OpenJTalk 的插件內部調整。而且此指令的作用已經包含了在 SYNTH 的指令中, 所以正常來說是沒什麼機會可以使用到此指令。(要體驗此指令的話, 是需要把系統語言設置成日文。否則會導致指令失去作用)

與 Variable 相關的:
  • VALUE_SET | (variable alias) | (value)

<*Example*> VALUE_SET|X|1

解釋: 此指令的作用就等同於宣告出 X = 1。

  • VALUE_SET | (variable alias) | (minimum value for random) | (maximum value for random)

<*Example*> VALUE_SET|X|1|9

解釋: 此指令的作用就等同於宣告出 X = 1 ~ 9 中的隨機一個數。

  • VALUE_UNSET | (variable alias)

<*Example*> VALUE_UNSET|X

解釋: 此指令的作用就等同於重設 X 的定義。

  • VALUE_EVAL | (variable alias) | (EQ (Equivalent With) or NE (Not Equivalent With) or LE (Less Than Or Equivalent With) or LT (Less Than) or GE (Greater Than Or Equivalent With) or GT (Greater Than) for evaluation) | (value)

<*Example*> VALUE_EVAL|X|LE|10

解釋: 此指令的作用就等同於宣告出 X <= 10 的任何數字(Less Than Or Equivalent With 10)

  • VALUE_EVENT_SET | (variable alias)
  • VALUE_EVENT_UNSET | (variable alias)
  • VALUE_EVENT_EVAL | (variable alias) | (EQ (Equivalent With) or NE (Not Equivalent With) or LE (Less Than Or Equivalent With) or LT (Less Than) or GE (Greater Than Or Equivalent With) or GT (Greater Than) for evaluation) | (value) | (TRUE or FALSE)
  • TIMER_START | (count down alias) | (value)

<*Example*> TIMER_START|CountDown|5

解釋: 此指令將會為名為 "CountDown" 的任務保留 5 秒。

  • TIMER_STOP | (count down alias)

<*Example*> TIMER_STOP||CountDown

解釋: 此指令將會刪除名為 "CountDown" 的任務。

  • TIMER_EVENT_START | (count down alias)
  • TIMER_EVENT_STOP | (count down alias)

TIMER 是一種轉接型指令, 很少會獨立使用。

與 Plugin 相關的:
  • PLUGIN_ENABLE | (plugin name)
  • PLUGIN_DISABLE | (plugin name)
  • PLUGIN_EVENT_ENABLE | (plugin name)
  • PLUGIN_EVENT_DISABLE | (plugin name)

有關 PLUGIN 的作用都是用來增加或改變 MMDAgent 的功能, 由於本人並沒有安裝過, 所以說明不多。

與 Other events 相關的:
  • DRAGANDDROP | (file name)

<*Example*> DRAGANDDROP|Music\IA_Test.mp3

解釋: 此指令的作用等同於半自動化 Drag & Drop。

  • KEY | (key name)

與 Other commands 相關的:
  • EXECUTE | (file name)

<*Example_1*> EXECUTE|http://www.google.com/
<*Example_2*> EXECUTE|C:\Steam\Steam.exe

  • KEY_POST | (window class name) | (key name) | (ON or OFF for shift-key) | (ON or OFF for ctrl-key) | (On or OFF for alt-key)

<*Example*> KEY_POST|MMDAgent|x|OFF|OFF|OFF

解釋: 此指令的作用等同於半自動化按下鍵

以上就是各種不同 .Fst 指令的格式。
接著以下將會說明.Fst 的直接書寫格式。

.Fst 的書寫格式

.Fst 指令主要是用於控制 MMDAgent 程式與最終用戶直接接觸的部份, 而只要有一點的書寫文法錯誤就可以導致整個 MMDAgent 程式沒法運作。
所以.Fst 簡單點來說就是 MMDAgent 的故事腳本。此為重要部分, 請大家多加留意。

先看一下以下.Fst 的書寫例子

以第一行為例
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[   0   11   <eps>     MODEL_ADD|bootscreen|Accessory\bootscreen\bootscreen.pmd|0.0,12.85,17.6|0.0,0.0,0.0|OFF ]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

從以上的指令, 我們可見得指令一共可被分拆為4個部份:

  • 第一部分[0], 這是起始的頁數, 用於告訴 MMDAgent 系統指令該從哪裏開始執行。系統會跟據起始頁數的數目大小而選擇該從哪裏開始執行指令,數目越小則越優先採用。(0 為最小)
  • 第二部分[11], 這是結束的頁數(或者可以當作下一頁), 用於告訴 MMDAgent 系統下一步該使用哪一頁的指令。
  • 第三部分<eps>, 這是指令的觸發條件(EVENT 類的指令只可以在此部份使用), 是要使用者先滿足這裡所訂下的條件後系統才會執行下一部份的指令。(<eps>意思為無需條件。)
  • 第四部分 MODEL_ADD, 這部份是指令內容, 是一行指令中的最終部分。(這部份也可以使用 <eps>, 作用是等同於跳過(Skip)。)在這部份的一些特定指令是可以簡寫的。(若跳過一些值的輸入, 系統便會自動用預設的值去填補被漏空的位置)

一套完整指令的例子
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[   1   31   RECOG_EVENT_STOP|こんにちは     SYNTH_START|メイ|mei_voice_normal|こんにちは]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

こんにちは (Kon ni chi wa)

解釋: 此指令的作用為, 如果系統偵察到使用者說出"こんにちは", 那麼系統便會控制模型"メイ", 並採用 mei_voice_normal 的聲音模組去語音合成出"こんにちは"。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[   1   31   RECOG_EVENT_STOP|こんにちわ     SYNTH_START|メイ|mei_voice_normal|こんにちは]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

こんにちわ (Kon ni chi wa)

解釋: 此指令意思同上, 只是把用家語音輸入由"こんにちは"改成"こんにちわ"。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ 31   32   <eps>     MOTION_ADD|メイ|action|Motion\mei_greeting\mei_greeting.vmd|PART|ONCE]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解釋: 此指令的作用為, 如果系統偵察到頁數 31 中的指令已經完成了的話, 系統便會控制模型"メイ", 並採用 mei_greeting.vmd 的動作模組。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ 32     2   SYNTH_EVENT_STOP|mei     <eps>]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解釋: 此指令的作用為, 如果系統偵察到頁數 32 中的指令和 SYNTH_START 已經完成了的話, 那麼系統便會將 MMDAgent 的讀取頁數重設回第 2 頁, 並等待下一個指令。

從以上的例子可以讓我們得知數件事:
  • 1. 數項不同的指令是可以導向同樣結果的。
  • 2. 有效地利用同音字是可以大為增加語音識別的成功率。
  • 3. MMDAgent 的 .Fst 系統其實就是一個不斷的循環(Loop), 所以如果下一頁的頁數填錯了的話, 循環(Loop)自然便會被中斷, 系統也就不能執行下一個指令。

有關 .Fst 的總結與補充

感想:
起初學 .Fst 檔案時其實是很痛苦的, 因為周邊的教學全都是用日文寫的, 而且我個人理解能力又差.. 結果是花上了好一段時間才明白到 .Fst 檔案的基本用法。但是用慣了後就會覺得寫指令就像寫故事一樣, 做出什麼選擇就會導向什麼結果, 所以我個人認為也是挺好玩的。

提示:
  • 1. 有效地利用頁數是可以製造出 HotWord Detection 的效果

例子:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[   2   21   <eps>                                          TIMER_START|idle1|20]
[ 21   22   TIMER_EVENT_START|idle1     TIMER_START|idle2|40]
[ 22   23   TIMER_EVENT_START|idle2     TIMER_START|idle3|60]
[ 23     1   TIMER_EVENT_START|idle3     VALUE_SET|random|0|100]
[   1     1   RECOG_EVENT_START           MOTION_ADD|mei|listen|Expression\mei_listen\mei_listen.vmd|PART|ONCE]
[   1     1   TIMER_EVENT_STOP|idle1      MOTION_ADD|mei|idle|Motion\mei_idle\mei_idle_boredom.vmd|PART|ONCE]
[   1     1   TIMER_EVENT_STOP|idle2      MOTION_ADD|mei|idle|Motion\mei_idle\mei_idle_touch_clothes.vmd|PART|ONCE]
[   1     1   TIMER_EVENT_STOP|idle3      MOTION_ADD|mei|idle|Motion\mei_idle\mei_idle_think.vmd|PART|ONCE]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[   1     3   RECOG_EVENT_STOP|メイ     <eps>]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解釋: 此指令的作用為, 如果系統偵察到使用者說出"メイ"後就會進入第 3 頁面, 進入到此頁面後除非使用者說出"こんにちは"又或者"こんにちわ", 否則 MMDAgent 的系統並不會作出任何回應。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[   3   31   RECOG_EVENT_STOP|こんにちは     SYNTH_START|mei|mei_voice_normal|こんにちは。]
[   3   31   RECOG_EVENT_STOP|こんにちわ     SYNTH_START|mei|mei_voice_normal|こんにちは。]
[ 31   32   <eps>                                                     MOTION_ADD|mei|action|Motion\mei_greeting\mei_greeting.vmd|PART|ONCE]
[ 32     2   SYNTH_EVENT_STOP|メイ                 <eps>]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解釋: 如果指令讀取成功的話, 系統便會要你先叫"メイ"(HotWord)後, 才能激活並使用其他功能。
不過這樣做會有可能導致其他雜音影響, 而識別錯誤系統亂開功能。(前題是在".Dic"檔案中把"メイ"的識別率調得太高)

有關指令 EXECUTE 的作用
如果運用得當的話, 是可以靠它去聲控電腦。(Etc.. Siri, Amazon Echo, Google home..)

以上就是有關".Fst"檔案的說明, 日後如有需要會再更新。
接下來就是有關".Mdf"檔案的說明。

".MDF"檔的格式

正如我在上一篇中所說的, ".Mdf"檔案為 MMDAgent 程式的場景/模型輔助檔, 因為在".Mdf"檔案中主要都是靠輸入特定函數以改變 MMDAgent 系統的一些場景/模型的顯示模式/樣貌。(比如: 改變場景大小, 燈光方向等..)

與 Cartoon rendering 相關的:
  • use_cartoon_rendering
  • use_mmd_like_cartoon
  • cartoon_edge_width
  • cartoon_edge_step
  • cartoon_edge_selected_color

與 Camera 相關的:
  • camera_rotation
  • camera_transition
  • camera_distance
  • camera_fovy

與 Stage 相關的:
  • stage_size

與 FPS 相關的:
  • show_fps
  • fps_position

與 Window 相關的:
  • window_size
  • full_screen

與 Log 相關的:
  • log_size
  • log_position
  • log_scale

與 Light 相關的:
  • light_direction
  • light_intensity
  • light_color

與 Campus 相關的:
  • campus_color

與 OpenGL 相關的:
  • max_multi_sampling

與 Motion 相關的:
  • motion_adjust_time
  • lypsync_priority

與 Bullet Physics 相關的:
  • bullet_fps
  • gravity_factor

與 User Interface 相關的:
  • rotate_step
  • translate_step
  • distance_step
  • fovy_step

與 Shadow Mapping 相關的:
  • use_shadow_mapping
  • shadow_mapping_texture_size
  • shadow_mapping_self_density
  • shadow_mapping_floor_density
  • shadow_mapping_light_first

這是有關 Shadow Map 的原理, 如果各位有需要請自行參考

與 Comment 相關的:
  • display_comment_time

與 Model 相關的:
  • max_num_model

在".Mdf"檔案中並沒有什麼格式可言, 只要你明白到每個指令的意思, 在".Mdf"方面就沒有什麼好擔心的了。

接下來就是有關".Dic"檔案的說明。

".DIC"檔的格式

".Dic"檔案為 MMDAgent 系統的字典檔, 也就是所有語音識別的文字都需要輸入到此檔案去讓 MMDAgent 系統學習。

以下將會說明如何使用".Dic"檔案去新增一個可被 MMDAgent 系統識別的字。

例子:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ 画面:ガメン:画面:507     @1.0 フルスクリーン:フルスクリーン:フルスクリーン     [フルスクリーン]   f u r u s u k u r i: N]
[ (區域 1)                           (區域 2)                                                                               (區域 3)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

從上面的例子可見得, 在".Dic"中指令大概可以分成三個部分(也就是以上的區域 1, 2, 3), 三個區域都有其不同的用處。

  • 區域 1: 此區域是最為次要的區域(可有可無), 而它的作用是把你要輸入的文字進行歸類。比如在上面例子的區域 1 作用就是為了把"フルスクリーン"(Fullscreen)歸類成"画面"("ガメン"是畫面的片假名)。如果實在是想不到要填寫什麼, 可以輸入"<unk>"作為代替。(有關於以上例子中的"507"部分, 由於本人也不是很清楚, 所以會在之後再作說明)

<*Example*>   <unk>     @0.0 <unk>     [ヘロー] h e r o:

  • 區域 2: 此區域是第二重要的區域, 而且這個區域是比較別的, 因為它可以分成兩個部分。一個是以上例子"@0.0"的部分, 而另一個則是"フルスクリーン:フルスクリーン:フルスクリーン"的部分。先說"@"的部分, 這個部分主要是用於控制一隻字的識別率。比如以以上例子為例, 這部分就是為了調控"フルスクリーン"(Fullscreen)的識別難度(在"@"後面的數字數目越小則越難被識別, 相反數字數目越大則越易被識別)。第二部分, 通常這個部分是用於調整一隻字的語法表達, 但由於這部分其實並沒有經 MMDAgent 系統的實質採用過(也是可有可無的部分) 所以也可以直接輸入"<unk>"作為代替(雖然本人建議, 為了建立良好習慣, 還是以正常方法繼續去填寫這部分比較好)。

  • 區域 3: 此區域是最為重要的區域, 因為這區域是 MMDAgent 系統學習語音識別文字的區域。嚴格去看的話, 這個區域也可以分拆成兩個部分分, 括號"[   ]"的部分和拼音的部分。先說括號"[   ]"的部分, 這個部分的括號內所輸入的內容將會是 MMDAgent 系統所學習的字(如果比如一隻字可以分拆為樣子和讀音的話, 那麼這個部分就是樣子的部分(換言之, MMDAgent 系統會學習並記下括號內的文字)), 而且在括號內的部分本人是推薦用平假名多於片假名, 因 MMDAgent 系統對平假名的識別是強於片假名的。第二部分就是拼音的部分(也就是我在先前所說讀音的部分), MMDAgent 系統是靠這部分才能知道括號內文字的發音。言而這部分也是需要特別格式, 所以接下來就會解釋這些格式是什麼。

第三區域的格式:
有關於在第三區域的拼音部分, 不同的日語拼音是要轉換成羅馬拼音才能夠進行輸入。
如有需要可以參考一下日語教學篇

MMDAgent 本身是附有一個公式說明書的。位置是在"AppData\Julius\lang_m\web.60k.htkdic"。
".Dic"檔案部分參考自: https://mmdagent.wordpress.com/

".OJT"檔的格式

".FPH"檔的格式

標籤:

2017年3月19日星期日

MMDAgent :: 基本功能介紹和設定

前言


現在會教大家如何先去最簡單地體驗下 MMDAgent。

下載


Windows

請到 MMDAgent 的官方網頁

1. 下載 MMDAgent "Sample Script" version 1.7 的 Source code。
2. 把 MMDAgent_Example-1.7 解壓縮。
3. 同時開啟 MMDAgent-1.7 和 MMDAgent_Example-1.7 兩個資料夾。
4. 把 MMDAgent_Example-1.7 內的 MMDAgent_Example.mdf 拖到 MMDAgent-1.7 內的 MMDAgent.exe 上, 又或者把在內所有名字為 "MMDAgent_Example" 開頭的檔案都移除 "_Example" 的部分, 名字也就只剩下 "MMDAgent" 作開頭 (有 ".ojt", ".mdf", ".fst", ".fph" 和 ".dic" 共 5 個檔案), 並把 MMDAgent_Example-1.7 資料夾內的所有檔案都移動到 MMDAgent-1.7 資料夾內, 最後 Double click MMDAgent.exe。


Linux

請到 MMDAgent 的官方網頁

1. 下載 MMDAgent "Sample Script" version 1.7 的 Source code。
2. 把 MMDAgent_Example-1.7 解壓縮。
3. 開啟 MMDAgent_Example-1.7 資料夾。
4. 把在內所有名字為 "MMDAgent_Example" 開頭的檔案都移除 "_Example" 的部分, 名字也就只剩下 "MMDAgent" 作開頭 (共有 ".ojt", ".mdf", ".fst", ".fph" 和 ".dic" 5 個檔案)。
5. 並把 MMDAgent_Example-1.7 資料夾內的所有檔案都移動到 MMDAgent-1.7 資料夾內的 Release 資料夾內。
6. Double click Release 資料夾內的 MMDAgent 執行檔案, 又或者在 Release 資料夾內開啟 Terminal, 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
kutengf@sawaho-Alex911a:/Release$ ./MMDAgent MMDAgent.mdf
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

有關下載的部分解說完了, 以下會說明有關 MMDAgent 的基本操作
(因為我還未使用過 MMDAI 所以以下的解說將會略過相關的話題(直到我開始研究..ヾ(*´∀ ˋ*)ノ.. 如造成不便, 深感抱歉)

MMDAgent_Example 最原始的功能

當我們依照以上任何一個方法去啟動 MMDAgent, 它是已經可以做到以下數個功能, 包括:

增加模型:
  • bootscreen.pmd
  • mei.pmd
  • menu.pmd
  • map_library.pmd

增加動作:
  • menu_rotation.vmd
  • mei_wait.vmd
  • mei_listen.vmd
  • mei_idle_boredom.vmd
  • mei_idle_touch_clothes.vmd
  • mei_idle_think.vmd
  • mei_greeting.vmd
  • mei_self_introduction.vmd
  • mei_happiness.vmd
  • mei_guide_happy.vmd
  • mei_bashfulness.vmd
  • mei_panel_on.vmd
  • mei_guide_normal.vmd
  • mei_look_down.vmd
  • mei_point_center_buttom.vmd
  • mei_bye.vmd

增加場景:
  • floor.bmp
  • background.bmp

可執行的執行網頁:
  • http://www.mmdagent.jp/

識別以下語音:
  • [你好]こんにちは(Kon Ni Chi Wa)
  • [你好]こんにちわ(Kon Ni Chi Wa)
  • [自我介紹]自己紹介(Ji Ko Sho Kai)
  • [你, 誰]あなた,誰(A Na Ta, Dare)
  • [你, 誰]君,誰(Kimi, Dare)
  • [謝謝]ありがと(A Ri Ga To)
  • [謝謝]ありがとう(A Ri Ga To U)
  • [謝謝]有難う(A Ri Ga To U)
  • [謝謝]有り難う(A Ri Ga To U)
  • [可愛]可愛い( Ka Wai I)
  • [可愛]かわいい(Ka Wa I I)
  • [漂亮]綺麗(Ki Rei)
  • [漂亮]きれい(Ki Re I)
  • [圖書館]図書館(To Sho Kan)
  • [Bye Bye]バイバイ(Ba I Ba I)
  • [再見]さようなら(Sa Yo U Na Ra)
  • [再見]さよなら(Sa Yo Na Ra)
  • [Home Page]ホームページ(Ho Mu Pe Ji)
  • MMDAgent
  • [Full Screen]フルスクリーン(Fu Ru Su Ku Ri N)
  • [初次見面]はじめまして(Ha Ji Me Ma Shi Te)
  • [最初]はじめ(Ha Ji Me)
  • [最初]始め(Ha Ji Me)
  • [最初]初め(Ha Ji Me)
  • [畫面]ガメン(Ga Me N)
  • [Application]アプリケーション(A Pu Ri Ke Sho N)
  • [Software]ソフトウェア(So Fu Toe A)

合成以下語音(日文):
  • [你好]こんにちは
  • [我叫作 Mei]メイと言います
  • [請多多指教]よろしくお願いします
  • [不用客氣]どういたしまして
  • [在什麼時候, 都請跟我聊天]いつでも、話しかけてくださいね
  • [這很尷尬]恥ずかしいです
  • [謝謝]ありがとう
  • [圖書館在, 正面看的話, 右前方的方向]図書館は、正面から見ると、右前の方向にあります
  • [在 Campus 地圖,你會在這裡]キャンパスマップでは、こちらになります
  • [明白了嗎]お解りになりますか
  • [再見]さようなら
  • [MMDAgent 的, Homepage 即將被顯示出]MMDAgentの、ホームページを表示します
  • [Screen 的設定, 已經改變了]スクリーンの設定を、変更しました

合成以下句式(英文):
  • Hello, nice to meet you.

ѩ: 備註 :ѩ
  • ➀ = 可於 MMDAgent.mdf 檔案進行改變其變量。
  • ➁ = 可於 MMDAgent.mdf 檔案進行改變其顯示位置。
  • ☑ = 已確認該功能依然存在。
  • ☒ = 已確認該功能不存在或者有些原因導致失去功能。
  •  ♮  = 圖示成對的為功能重複。
  • Ⓡ = 在有條件底下才能使用出來的功能。

快捷鍵(Hotkeys):
  • 上下左右方向鍵 (控制畫面視角)( ➀每次按下以4.5°為單位變化)(↑, ↓ 為 X 軸, ←, → 為 Y 軸) ☑
  • Shift + 上下左右箭咀 (平行移動畫面視角)( ➀每次按下以0.5為單位變化)(↑, ↓ 為 X 軸, ←, → 為 Y 軸) ☑
  • + (Zoom In)( ➀每次按下以0.4為單位變化) ☑
  • - (Zoom Out)( ➀每次按下以0.4為單位變化) ☑
  • Esc (退出 MMDAgent) ☑
  • X (陰影加強) ☑
  • E (邊緣厚度增加)(每次按下會將原本厚度加倍) ☑
  • Shift + E (邊緣厚度減少)(每次按下會將原本厚度減倍) ☑
  • L (角色視線對鼠標追蹤) ♮ ☒
  • Shift + L (取消角色視線對鼠標追蹤) ♮ ☒
  • P (啟用物理演算(重力)) ☑
  • W (線框顯示) ☑
  • S ( ➁FPS 數列表示) ☑
  • D ( ➁開啟背後運作指令顯示(Debug Mode))(實時表示參數, 用於更方便調試或理解 MMDAgent) ♮ ☑
  • Shift + D ( ➁關閉背後(所有)運作指令顯示(Debug Mode)) ♮ ☑
  • Page Up (可以向上滾動 Debug Mode 或其他同類型模式中的內容) Ⓡ ☑
  • Page Down (可以向下滾動 Debug Mode 或其他同類型模式中的內容) Ⓡ ☑
  • B (骨架顯示)(同時顯示動作模型, 模型, 等在場所有模型的名字) ☑
  • Shift + W (剛體顯示)
  • Shift + J (錄製聲音顯示條顯示)(如果 MMDAgent 偵測到有咪(錄音裝置)連接至電腦, 將自動開啟) ☑
  • Shift + F (開啟背後(Fst)運作指令顯示)(上半指令板為顯示已完成的指令)(下半指令板為顯示未完成的指令)(因指令板在右手邊, 所以要調整一下視角才能看見) ☑
  • Shift + V (同步垂直)(默認是開啟的, 如果是較好的 PC 建議關閉) ☑
  • Shift + X (渲染變化)(開啟的話相關的陰影部分會有變化) ☑
  • Ctrl + 左右方向鍵 (音頻文件的延遲時間調節)(可用此方法來提前或延遲音頻文件的播放時間) ☑
  • Delete (刪除模式)(在開啟此模式後, Double click 模型再按下 Delete 可將其刪除)(刪除親模型後, 子模型也會被刪除) ☑
  • H (Hold)(把當時的畫面和動作一時暫停) ☑
好了, 以上大概就是所有有關 MMDAgent_Example 的基本功能介紹(其實也不用那麼看重以上的這些功能, 因為用得上的少之又少..(´・ω・`)..)。

".FST" 檔案內的指令
(.FST 檔案 為 MMDAgent 程式的流程/行程檔)

與 Model 相關的:
  • MODEL_ADD
  • MODEL_CHANGE
  • MODEL_DELETE
  • MODEL_EVENT_ADD
  • MODEL_EVENT_CHANGE
  • MODEL_EVENT_DELETE

與 Motion 相關的:
  • MOTION_ADD
  • MOTION_ACCELERATE
  • MOTION_CHANGE
  • MOTION_DELETE
  • MOTION_EVENT_ADD
  • MOTION_EVENT_ACCELERATE
  • MOTION_EVENT_CHANGE
  • MOTION_EVENT_DELETE

與 Move and Rotate 相關的:
  • MOVE_START
  • MOVE_STOP
  • MOVE_EVENT_START
  • MOVE_EVENT_STOP
  • TURN_START
  • TURN_STOP
  • TURN_EVENT_START
  • TURN_EVENT_STOP
  • ROTATE_START
  • ROTATE_STOP
  • ROTATE_EVENT_START
  • ROTATE_EVENT_STOP

與 Sound 相關的:
  • SOUND_START
  • SOUND_STOP
  • SOUND_EVENT_START
  • SOUND_EVENT_STOP

與 Stage 相關的:
  • STAGE
  • STAGE

與 Light 相關的:
  • LIGHTCOLOR
  • LIGHTDIRECTION

與 Camera 相關的:
  • CAMERA
  • CAMERA

與 Speech recognition 相關的:
  • RECOG_EVENT_START
  • RECOG_EVENT_STOP
  • RECOG_MODIFY|GAIN
  • RECOG_MODIFY|USERDICT_SET
  • RECOG_MODIFY|USERDICT_UNSET
  • RECOG_MODIFY|CHANGE_CONF

與 Speech synthesis 相關的:
  • SYNTH_START
  • SYNTH_STOP
  • SYNTH_EVENT_START
  • SYNTH_EVENT_STOP
  • LIPSYNC_START
  • LIPSYNC_STOP
  • LIPSYNC_EVENT_START
  • LIPSYNC_EVENT_STOP

與 Variable 相關的:
  • VALUE_SET
  • VALUE_SET
  • VALUE_UNSET
  • VALUE_EVAL
  • VALUE_EVENT_SET
  • VALUE_EVENT_UNSET
  • VALUE_EVENT_EVAL
  • TIMER_START
  • TIMER_STOP
  • TIMER_EVENT_START
  • TIMER_EVENT_STOP

與 Plugin 相關的:
  • PLUGIN_ENABLE
  • PLUGIN_DISABLE
  • PLUGIN_EVENT_ENABLE
  • PLUGIN_EVENT_DISABLE

與 Other events 相關的:
  • DRAGANDDROP
  • KEY

與 Other commands 相關的:
  • EXECUTE
  • KEY_POST


".MDF" 檔案內的指令
(.Mdf 檔案 為 MMDAgent 程式的場景/模型輔助檔)

與 Cartoon rendering 相關的:
  • use_cartoon_rendering
  • use_mmd_like_cartoon
  • cartoon_edge_width
  • cartoon_edge_step
  • cartoon_edge_selected_color

與 Camera 相關的:
  • camera_rotation
  • camera_transition
  • camera_distance
  • camera_fovy

與 Stage 相關的:
  • stage_size

與 FPS 相關的:
  • show_fps
  • fps_position

與 Window 相關的:
  • window_size
  • full_screen

與 Log 相關的:
  • log_size
  • log_position
  • log_scale

與 Light 相關的:
  • light_direction
  • light_intensity
  • light_color

與 Campus 相關的:
  • campus_color

與 OpenGL 相關的:
  • max_multi_sampling

與 Motion 相關的:
  • motion_adjust_time
  • lypsync_priority

與 Bullet Physics 相關的:
  • bullet_fps
  • gravity_factor

與 User interface 相關的:
  • rotate_step
  • translate_step
  • distance_step
  • fovy_step

與 Shadow mapping 相關的:
  • use_shadow_mapping
  • shadow_mapping_texture_size
  • shadow_mapping_self_density
  • shadow_mapping_floor_density
  • shadow_mapping_light_first

與 Comment 相關的:
  • display_comment_time

與 Model 相關的:
  • max_num_model


".DIC" 檔案內的指令
(.DIC 檔案 為 MMDAgent 程式的字典檔。)
(在預設的.DIC 檔案中, 且有以下已設定好的詞句。)

  • エムエムディーエージェント (MMDAgent)
  • フルスクリーン (Fullscreen)


".OJT" 檔案內的指令


".FPH" 檔案內的指令

標籤:

2017年3月15日星期三

MMDAgent :: 下載與安裝

下載

MMDAgent 歷代的各個版本: https://sourceforge.net/projects/mmdagent/files/MMDAgent/

安裝

Windows

請下載 MMDAgent 中的 Installer, 到 Installer 介面後, 跟指示做便可

Linux

請下載 MMDAgent 的 Source code, 並在下載後解壓縮 MMDAgent.zip
(以 Ubuntu 16.04 為例)在安裝前, 需要先下載一些其他的工具包
Synaptic Software Manager

Synaptic 是一個套件管理的程式, 利用它可以更容易和更有效率地去下載其他的工具包
主要的下載方法有兩個:

  • 1. 可以直接開啟 Ubuntu 軟體中心並搜尋 "synaptic", 然後安裝
  • 2. 打開 Terminal 並輸入以下指令:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
kutengf@sawamine-Alex911a:~$ sudo apt-get update
kutengf@sawamine-Alex911a:~$ sudo apt-get upgrade
kutengf@sawamine-Alex911a:~$ sudo apt-get install synaptic
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在完成安裝後, 請開啟 Synaptic Software Manager 並搜尋和安裝以下工具包
如不會用 Synaptic Software Manager, 以下影片可以幫到你
Ubuntu Basics - How to use Synaptic Package Manager | Geekurville
  • build-essential
  • libX11-dev
  • libxrandr-dev
  • libgl1-mesa-dev
  • libglu1-mesa-dev
  • portaudio19-dev

在完成安裝所有上列工具包後 就可以開始安裝 MMDAgent

  • 1. 首先, 先打開你解壓縮出的資料夾
  • 2. 開啟 Terminal
  • 3. 輸入以下指令以安裝 MMDAgent:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
kutengf@sawamine-Alex911a:~$ cd MMDAgent-1.7
kutengf@sawamine-Alex911a:~/MMDAgent-1.7$ make x11 (*舊版本請看 Makefile)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在這一步, 我發生了個問題, Release 內的 "Flite_plus_hts_engine.so" 不能讀取 "Flite_plus_hts_engine.a", 而導致 Error 出現

解決方法(Temp):
進入 Library_Flite_plus_hts_engine 資料夾內, 然後再把名為 "Makefile" 的檔案打開, 最後把第一行指令 Target 中的 "lib/Flite_Plus_hts_engine.a" 改成 "lib/Flite_plus_hts_engine.a"
  • 4. 當 make 完成後, 相應檔案將會在 Release 資料夾中生成
  • 5. 輸入以下指令以啟動 MMDAgent:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
kutengf@sawamine-Alex911a:~$ cd Release
kutengf@sawamine-Alex911a:/Release$ ./MMDAgent
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

正常而言, 在 Ubuntu 上, 到這一步 MMDAgent 應該是可以正常運作的了。 但我在安裝的時候, 有數次都試過安裝失敗或出現其他Bug的情況, 為了讓未來可以更容易和更快地安裝 MMDAgent, 我遲下會推出一個專欄專描述相關的問題和解決方法

(話說在 Ubuntu-16.04 中我的 MMDAgent-1.7 在運作時出現了 core dumped 的問題, 所以我都一直在保持著用 MMDAgent-1.6..(詳細的解說我會在之後的篇章進行說明..))

不論各位容易上什麼方法什麼系統去安裝, 最後大家開啟出來的 MMDAgent 的樣子應該是這樣的

一片藍黑色.....
這並不是中了什麼 Bug, 而是正常的。 因為還有一大堆參數和檔案等著你去改..(*゚∀゚*)(與這些相關的問題和解決方法我將會在下篇詳細講解。)

這才是大家期待的樣子吧..
與 MMDAgent 相關的下載和安裝方法就此告一段落了, 要是大家有什麼問題或意見的, 歡迎大家留言
下一篇將會是說明 MMDAgent 的基礎功能和設定, 請大家多加支持。

標籤: