基礎

MMD的自發光大部分是基於AutoLuminous4的,只要滿足條件然後加上它的附件就能發光,又或者是取消它的面板顯示就能強制發光,基本的發光方式如下圖。

發光基準是反射強度110,起碼要大於100才會發光,發光的顏色按照材質的擴散色環境色決定。

附件參數設定

附件參數 參數說明
Si 發光強度,調整基於反射強度100+以上材質的亮度。
Tr 模糊程度,發光往外擴散的範圍,0為不擴散。
X 光線數量,貫穿兩側,如:2為十字。
Y 畫面亮度,±100的範圍,-100全黑。
Z 發光強度,和Si類似,值越小越趨於Si0,範圍-100~500。
Rx 光線角度,如果調整了X,此項有效。
Ry 光線長度,±100的範圍,如果調整了X,此項有效。
Rz 發光循環,會不斷亮→暗→亮,正數時以正弦波方式閃爍,負數時則是方波方式閃爍。

正弦波的明暗變化比較緩和,不像方波直上直下。

表情使用

AutoLuminous4可以使用以下的表情。

表情名稱 表情用途
LightUp 發光強度,最大可增至3倍。
LightOff 不發光,會漸衰至完全不發光。
LightBlink 以正弦波方式閃爍。
LightBS 以方波方式閃爍。
LightUpE 更強的亮度,以指數方式增強,最大可到400倍。
LightDuty 調整閃爍的明暗比例。
LightMin 設定閃爍的最低亮度。
LClockUp 加快頂點發光的閃爍頻率,最快可以到6倍。
LClockDown 減慢頂點發光的閃爍頻率,最慢可以到1/6。

想快速添加這些表情也很簡單,進到AutoLuminous4/Options資料夾內找到AutoLuminousSetter.zip以後,將內容物放到PmxEditor的_plugin裡,就可以使用它的插件**AL用モーフ追加**一鍵新增了!

延伸變化

【模型】反射強度調整表情

上面講到它發光的需要條件,是依靠材質的反射強度而定,而使用表情做發光強度的增減也可以。

首先打開PmxEditor並且載入需要修改的模型,並選取需要調整的材質。

在這次示範裡我修改成100做為基礎。

切換到表情頁並在表情列表的區域內打開右鍵選單新增一個材質表情。

+(1)新增材質,並且輸入材質代號(2),就是冒號左邊的號碼。

接著按編輯,並且按照此圖的指示做修改。

最後在顯示埠的表情內新增剛剛的材質表情就搞定了!

材質表情內的反射強度可設定任意正數,越小的話調整也越精確(因為範圍小)
想分開調整發光程度,可多做幾個表情。

【效果】Ray-MMD - 處理透明層發光

某些模型在套Ray渲的時候可能會出現以下情況,這裡拿YYB的10th Miku來示範。

嘗試直接套用AL4的話,還是有奇怪的白邊。

解決的方法也很簡單,上面有提到可以調整Tr調整發光模糊程度,並且它是針對材質發光,先將Tr調成0,並且把發光材質取消一般面板的顯示,具體步驟如下方影片。

如果覺得太亮可以自行製作反射亮度調整表情以及調整參數。

【效果】自發光貼圖處理

以一般的自發光效果來說,它是整個貼圖的模樣直接發光,這就造就了沒有明顯的明暗之分,如圖。

可以看到眼睛是全部發光的。

發光貼圖的黑色=不發光且以加法的方式疊加,以這個邏輯,我們可以提亮自己想要的部分。
所以這種時候我們可以做一點小處理,將暗部的地方弄得更暗一些,只突顯出亮部。

只提亮高光圖層。

要是想讓原本的眼睛跟著亮起來的話也可以,繼續控制明度差異

原本的眼睛貼圖上直接調整曲線,如果飽和度太高的話,就再手動調整一下飽和度, 如果出現顏色斷層,就用模糊筆刷稍微糊一下就可以得到下面的最後結果。

【效果】AL4 - 自發光貼圖讀取

作者的效果展示及教學在這裡,我只做介紹並且重新排版,貼圖的差異已經在上面了,講講怎麼用。

  1. 匯入AL4附件到MMD。
  2. 複製一份SJ_ALMap.fx並修改內容以讀取需要的貼圖及混合顏色(修改方式見步驟後)。
  3. 找到MME分配窗的AL_EmiterRT面板,並將SJ_ALMap-edit.fx分配給需要使用的材質。
  4. 完成
#define ALMap_MODE 0  //發光模式
//模式0 - 將使該材質的貼圖與下方EmissiveMul的顏色進行乘算後發光
//模式1 - 若下方的FILENAME的格式為.png|.jpg|.bmp,等等靜態格式請使用它。
//模式2 - 若下方的FILENAME的格式為.gif,請使用它。

#define ALMap_FILENAME "ALMap.png"
//自發光貼圖路徑

const float3 EmissiveMul = float3(1.0, 1.0, 1.0);
// const float3 EmissiveMul = float3(255, 255, 255)/255; //RGB方式
//自發光的顏色數值,如果ALMap_MODE為1或2,則會和自發光貼圖一起乘算。

【效果】Ray-MMD - 自發光貼圖讀取

在用Ray渲處理自發光以前,首先要處理一個Ray的自發光Bug:
當它對到透明通道時會變成反色,像下圖的黑色範圍這樣。

使用方法: 將其內容物(Shader資料夾)放到Ray-MMD根目錄即可,會有個同名資料夾。

處理完以後就能複製一份Materials的Fx進行修改了,並按下方提示修改即可。

#define EMISSIVE_ENABLE 0    //自發光功能,1為啟用
#define EMISSIVE_MAP_FROM 0    //自發光功能,0為無貼圖,1為靜態圖片,2為動態圖片
#define EMISSIVE_MAP_UV_FLIP 0    //貼圖UV方向反轉
#define EMISSIVE_MAP_APPLY_SCALE 0    //當FROM不為0時,需開啟此項才可以與顏色乘算
#define EMISSIVE_MAP_APPLY_MORPH_COLOR 0    //調色表情,當模型存在特定表情時才可以用
#define EMISSIVE_MAP_APPLY_MORPH_INTENSITY 0    //強度表情,當模型存在特定表情時才可以用
#define EMISSIVE_MAP_APPLY_BLINK 0    //閃爍速度表情,當模型存在特定表情時才可以用
#define EMISSIVE_MAP_FILE "emissive.png"    //自發光貼圖路徑

const float3 emissive = 1.0;    //自發光顏色
//const float3 emissive = float3(255, 255, 255)/255;    //自發光顏色(RGB版)
const float3 emissiveBlink = 1.0;    //自發光閃爍速度,0為不閃爍,數值越大速度越快
const float emissiveIntensity = 1.0;    //自發光強度,1為預設
const float2 emissiveMapLoopNum = 1.0;    //自發光貼圖迴圈次數,1為預設

表情名稱等詳細fx內容請見Ray-MMD教學4️⃣—fx及Conf修改

【效果】PowerShader - 自發光貼圖讀取

PS渲的自發光貼圖讀取就比較簡單了,同樣按照上面方式處理貼圖後,複製一份來改。

// 2. 発光設定 /////////////////////////////////////////////////////////////////////////////////

// 發光貼圖的來源
// 0 : 單色(無視貼圖,直接發光)
// 1 : 模型的貼圖
// 2 : 由下面的發光貼圖路徑(EMISSIVE_TEXTURE)
#define EMISSIVE_FROM 0

// 発光テクスチャ
#define EMISSIVE_TEXTURE "emissive.png"

// 発光倍率
#define EmissiveScale 0.0  //0為不發光,數值越大強度越高