本页面内容较多,您可以使用浏览器的页内查找功能 Ctrl + F (Windows/Linux) / ⌘ + F (MacOS) 查找所需要的信息。
如果未能获取理想的搜索结果,可以尝试提取搜索项中的关键文本。
此模块用于歌姬与对应代表色间的互相转换。
按引擎分类,目前尚未完成。对应颜色如下表显示,如有缺漏,可自行在模块中补充:
VOCALOID
UTAU
CeVIO
VOICEROID
MUTA
演唱者 |
颜色 |
十六进位编码
|
嫣汐 |
|
#FF6600
|
未央 |
|
#9BCEDF
|
Sharpkey
Synthesizer V
DeepVocal
演唱者 |
颜色 |
十六进位编码
|
江上曜 |
|
#FFB600
|
X Studio
ACE Studio
DiffSinger
NEUTRINO
袅袅虚拟歌手
Alter/Ego
New Type
演唱者 |
颜色 |
十六进位编码
|
初音未来 |
|
#39C5BB
|
VOICEVOX
VOICEPEAK
COEIROINK
其他
本模板使用 #777777表示演唱者多于2人、真人参与合唱以及暂无确认使用代表色等情况。
local module = {}
function module.main(frame)
local input = frame.args[1] or ''
local isColor = string.sub(input, 1, 1) == '#'
local mtr = ''
local defaultColor = '#333333'
local defaultSinger = '未知歌手'
local colors = {
-- 在下方添加内容,{颜色,歌姬名,其他名称···}
{'#f7e8bd','LEON'},
{'#7d0552','LOLA'},
{'#516b82','MIRIAM'},
{'#d80000','MEIKO'},
{'#0000ff','KAITO'},
{'#ffe391','Sweet Ann'},
{'#39C5BB','初音未来','初音miku','初音ミク','miku','Hatsune Miku','初音','弱音白','初音未來'},
{'#ff8800','镜音铃','鏡音リン','Kagamine Rin','镜音rin','鏡音鈴'},
{'#fff000','镜音连','鏡音レン','Kagamine Len','镜音len','鏡音連'},
{'#b92e66','Prima'},
{'#ffb6c1','巡音流歌','巡音ルカ','巡音luka','Megurine Luka'},
{'#9900ff','神威乐步','Gackpoid','神威がくぽ'},
{'#ccff00','GUMI','Megpoid'},
{'#243d33','SONiKA'},
{'#1d1f2f','冰山清辉','氷山キヨテル','Hiyama Kiyoteru'},
{'#f811de','歌爱雪','歌爱YUKI','歌愛ユキ'},
{'#ff7070','miki'},
{'#d40000','BIG AL'},
{'#ffcc00','Lily'},
{'#3c0036','VY1','MIZKI'},
{'#0c9a06','Gachapoid','ガチャッポイド'},
{'#fc79a7','猫村伊吕波','猫村いろは'},
{'#4acdbf','歌手音Piko','歌手音ピコ','歌手音'},
{'#4d0000','VY2','Yuuma'},
{'#5481de','Akikoloid酱','あきこロイドちゃん'},
{'#221815','Mew'},
{'#ffae35','SeeU'},
{'#f4a89d','兔眠莉音','兎眠りおん'},
{'#f3e7bf','Oliver'},
{'#d41a1f','CUL','Culnoza'},
{'#800080','结月缘','結月ゆかり','Yuzuki Yukari'},
{'#587078','Clara'},
{'#bf4e43','Bruno'},
{'#f5eded','IA'},
{'#5bd1d5','苍姬拉碧斯','蒼姫ラピス','Aoki Lapis'},
{'#66ccff','洛天依'},
{'#fae6fa','Galaco','ギャラ子'},
{'#e452a7','MAYU'},
{'#eee8aa','AVANNA'},
{'#224267','KYO'},
{'#2a221f','WIL'},
{'#d7b3cf','YUU'},
{'#00ffcc','言和'},
{'#f6e9bd','YOHIOloid'},
{'#77c6ec','MAIKA'},
{'#fbb7a4','kokone'},
{'#ffc369','杏音','あのん'},
{'#ffc370','鸟音','かのん'},
{'#996699','V flower','Ci flower','flower'},
{'#1c3a46','东北俊子','东北ずん子','ずん子'},
{'#dd315d','Rana'},
{'#fff0fb','Chika'},
{'#ee82ee','心华','心華'},
{'#ee0000','乐正绫'},
{'#bc255a','Sachiko','幸子'},
{'#d86756','Ruby'},
{'#0764b0','DAINA'},
{'#d9deec','DEX'},
{'#ff0033','Fukase'},
{'#9999ff','星尘','星尘stardust'},
{'#0000aa','音街鳗','音街ウナ'},
{'#f56c98','UNI'},
{'#006666','乐正龙牙'},
{'#f8fdff','LUMi'},
{'#ffba70','绁星灯','紲星あかり'},
{'#0080ff','徵羽摩柯'},
{'#ffff00','墨清弦'},
{'#ffe9d8','樱乃空','桜乃そら'},
{'#f0b4bc','鸣花姬','鳴花ヒメ'},
{'#afafef','鸣花尊','鳴花ミコト'},
{'#739330','Po-uta'},
{'#ffffff','战音Lorra'},
{'#acd291','Ken'},
{'#36015a','呗音Uta','唄音ウタ','Defo子','デフォ子','默认子'},
{'#d93a49','重音Teto','重音テト','teto'},
{'#ff9fcf','桃音Momo','桃音モモ'},
{'#000080','欲音Ruko','欲音ルコ'},
{'#ff2d51','波音律','波音リツ'},
{'#ff8080','健音帝','健音テイ'},
{'#f2f2f2','雪歌Yufu','雪歌ユフ'},
{'#74bc9f','实谷Nana','実谷ナナ'},
{'#d2e9a4','渗音Kakoi','滲音かこい'},
{'#99669a','爱野Hate','愛野ハテ'},
{'#deb887','白钟Hiyori','白鐘ヒヨリ','白音Hiyori'},
{'#fb73ca','春歌Nana','春歌ナナ'},
{'#ffc0cb','樱歌Miko','櫻歌ミコ'},
{'#ffa500','海歌Shin','海歌シン'},
{'#ef6c00','空音Rana','空音ラナ'},
{'#ec66ff','破坏音Maiko'},
{'#07c7cf','松田Ppoiyo'},
{'#4169e1','薪宫风季','薪宮風季'},
{'#dc143c','椎音Ama'},
{'#cc0000','朱音稻荷'},
{'#e20000','彼音Izumu'},
{'#fbcca7','飴音Wamea'},
{'#008080','雨歌Eru'},
{'#eb8938','廻音Shuu'},
{'#b060bc','暗音Renri','闇音レンリ'},
{'#9773bf','歌幡Meiji'},
{'#d8b69e','暗鸣Nyui'},
{'#ff7405','戏白Merry'},
{'#edae2f','逆音Cecil'},
{'#526b65','夕歌Yuuma','夕歌ユウマ'},
{'#dceedb','Number Bronze'},
{'#e1e6f9','东北伊达子','東北イタコ','イタコ'},
{'#7f3d61','东北切蒲英','東北きりたん','きりたん'},
{'#573a2b','小感冒','Kazehiki','カゼヒキ'},
{'#68483b','剧药','Gekiyaku','ゲキヤク'},
{'#008e94','旭音Ema'},
{'#ed8d2d','足立零','足立レイ','足立Rei'},
{'#000001','油库里','ゆっくり','Yukkuri'},
{'#ffeff2','佐藤莎莎拉','さとうささら'},
{'#7a80a4','铃木梓梓弥','すずきつづみ'},
{'#f5eeaf','ONE'},
{'#4d79ff','可不','kafu'},
{'#7933ff','星界','SEKAI'},
{'#f1971c','知声','Chis-A'},
{'#e51500','里命','RIME','裏命'},
{'#fa006e','POPY'},
{'#5050d2','ROSE'},
{'#cde6f2','狐子','COKO'},
{'#3cd705','羽累','HARU'},
{'#cb8773','月读爱'},
{'#ffe791','弦卷真纪','弦巻マキ','Tsurumaki Maki'},
{'#ffc0c0','琴叶茜','琴葉茜'},
{'#e1f0f7','琴叶葵','琴葉葵'},
{'#6fba44','京町精华','京町セイカ'},
{'#f4c3d7','追傩酱','ついなちゃん'},
{'#613c8a','永夜Minus','Minus'},
{'#aca8b2','小春六花'},
{'#a6727f','夏色花梨'},
{'#a1d6b7','花隈千冬'},
{'#ed6772','Mai'},
{'#cc164b','奕夕'},
{'#84d0d0','绮萱'},
{'#c8a672','栗田栗子','栗田まろん'},
{'#a8f877','俊达萌','ずんだもん'},
{'#e5f5fe','whiteCUL'},
{'#d8bc9c','NurseRobot TypeT','ナースロボ_タイプT','NurseRobot_TypeT','ナースロボ タイプT'},
{'#f6be71','诗岸'},
{'#689e93','Calogado','カロガド'},
{'#7fd2da','Nedjem','ネヂェム'},
{'#404040','松哗Risk','松嘩りすく'},
{'#DF4C94','四国玫碳','四国めたん'},
{'#DD5270','未抒'},
{'#F29102','岸晓'},
{'#902126','从铮'},
{'#FC8AA8','小夜'},
{'#3B5183','牧心'},
{'#EB6238','Ryo'},
{'#FF0000','东方栀子'},
{'#72A6C0','宫舞茉歌','宮舞モカ'},
{'#EDAEDB','Eri'},
{'#33CCCC','夏语遥'},
{'#FDAF12','SOLARIA'},
{'#FF3C8E','POYOROID'},
{'#917BA9','Merrow','めろう'},
{'#FBB5A6','韵泉'},
{'#FFE4D0','铃爱莉','ANRI','ANRI Arcane'},
{'#9CA471','Fιφne','fifne'},
{'#FBCA4D','春日部䌷','春日部つむぎ','春日部紬','つむぎ'},
{'#B7D26D','Kevin'},
{'#1347AA','箱庭Hano','箱庭ハノ'},
{'#11984B','箱庭Koto','箱庭コト'},
{'#28c4ec','雨晴Hau','雨晴はう'},
{'#50966A','玄野武宏'},
{'#C2ED55','白上虎太郎'},
{'#4862D3','青山龙星'},
{'#877ADD','冥鸣Himari','冥鳴ひまり'},
{'#7F4DBA','九州宇宙'},
{'#575855','模型娘饼子'},
{'#BBBFE5','剑崎雌雄'},
{'#2185DA','后鬼'},
{'#E1E9F6','No.7'},
{'#A6CFF9','小式爷','ちび式じい'},
{'#F16152','†圣骑士 红樱†','†聖騎士 紅桜†'},
{'#E3D35A','麒岛宗麟','麒ヶ岛宗麟'},
{'#E3706B','雀松朱司'},
{'#FFC0CB','春歌Nana','春歌ナナ'},
{'#FC4E32','中国兔','中国うさぎ'},
{'#EE7B2B','IL碳','あいえるたん','Aieru-tan'},
{'#E6F5B0','满别花丸'},
{'#FB8028','琴咏nia','琴詠ニア'},
{'#3F0807','葛駄夜音'},
{'#FF6600','嫣汐'},
{'#9BCEDF','未央'},
{'#FF7799','幻晓伊'},
{'#FF359A','琪亚娜·卡斯兰娜'},
{'#FDD000','艾可'},
{'#FF4004','赤羽'},
{'#ECEAFF','Infinity','星尘Infinity'},
{'#0187CA','青溯'},
{'#965367','Saki'},
{'#ECEBF0','爱莲娜·芙缇'},
{'#A2A2A2','Koronba4号','ころんば4号'},
{'#264A9C','默辰'},
{'#9DE0EC','沨漪'},
{'#E7D03D','Yuma'},
{'#D23632','Weina'},
{'#7369F9','ASTERIAN'},
{'#7583B6','煊宇'},
{'#c1c5cb','SAROS'},
{'#bde43d','林籁'},
{'#eea16b','Hayden'},
{'#FFB600','江上曜'},
{'#6E46A9','何畅'},
{'#95E5FF','蔷芜'},
{'#C85129','陈水若'},
{'#753E25','华智冰'},
{'#3C00EE','艾尔法'},
{'#9076BD','狐狸座'},
{'#4F3E7D','水木林森'},
{'#303B5C','陈子渝'},
{'#DC4568','火涟'},
{'#072A63','楚瓷'},
{'#60B0D9','鲤沅'},
{'#FEE384','嗒啦啦'},
{'#D50000','雀河'},
{'#363434','小莫'},
{'#F1EDD7','文栗'},
{'#CE2E2E','长歌'},
{'#94FFF6','鸾明'},
{'#B31313','荼鸢'},
{'#CDAE44','伊拾七'},
{'#292365','Opencpop'},
{'#2A2A44','雨令·令雨'},
{'#D0C0E5','霁何虹'},
{'#EC0000','泠鸢yousa'},
{'#DF310A','谣子'},
{'#B9261A','琴歌'},
{'#E3E3E3','BONES'},
{'#95BEF2','Daisy'},
{'#C34C44','Marie Ork'},
{'#488846','阿久女Iku'},
{'#EC808D','甚三'},
{'#698DCD','气球音Aiko'},
{'#32144E','渡瀬Maki'},
{'#510051','佐村Tomi'},
{'#FF8D3B','Daring'},
{'#CFE2A1','Mac音奈奈'},
{'#7C4B00','枝野裕男'},
{'#4E8BF4','谷歌翻译娘','谷歌','GOOGLE','Google Translate'},
{'#FF0108','莲华'},
{'#36339E','荞安'},
{'#DB3E41','奥斯卡'},
{'#744F3C','叁琏'},
{'#000000','新葛平','葛平'},
{'#FFCC01','金坷垃'},
{'#AFDFE4','33娘'},
{'#996B1F','元首'},
{'#D2895E','矶子Hata'},
{'#FF0099','起礼'},
{'#99FF00','起复'},
{'#3399FF','海伊'},
{'#8BC0B5','苍穹'},
{'#8DDEF1','云灏'},
{'#C37B3C','姬骑士Riyona'},
{'#FF6D89','器用音Suzu'},
{'#936D67','松尾Tsubasa'},
{'#FF7024','猫木Minata'},
{'#373836','理维子'},
{'#95302E','宙暮'},
{'#ECEBE1','某医生','Dr.誰か','Dr.Dareka'},
{'#81A9F1','雲宇光'},
{'#FF6666','挚彬'},
{'#FFDCB5','雨鸟Yui'},
{'#D45353','电压空'},
{'#FFB33C','MUSE'},
{'#5D5955','踊跃Ask'},
{'#CBF4FA','水音Laru'},
{'#A72A2A','黒昴宿'},
{'#B3353F','Perfect Paul'},
{'#3C957C','影音Himeka'},
{'#C5705A','色音Hiro'},
{'#FF8580','透音Ariku'},
{'#56DACE','Ayame'},
{'#EE9570','D-Lin'},
{'#402A32','JUN','Juneau Kheang'},
{'#007dd3','Ritchy'},
{'#a868e9','Sheena'},
{'#408088','弗里摩侠','Frimomen','フリモメン'},
{'#FFB68B','奥斯卡','Oscar'},
{'#777777','合唱或真人','合唱','真人'}
-- 在上方添加内容
}
local UpperInput = string.upper(input)
if isColor and string.len(UpperInput) == 7 then
for _, entry in ipairs(colors) do
if UpperInput == string.upper(entry[1]) then
return entry[2]
end
end
return defaultSinger
else
for _, entry in ipairs(colors) do
if string.find(input, "、") then
return "#777777"
end
local vocal = {}
for i = 2, #entry do
table.insert(vocal, string.upper(entry[i]))
end
if arrayContains(vocal, UpperInput) then
return string.upper(entry[1])
end
end
return defaultColor
end
return mtr
end
function arrayContains(table, element)
for _, value in ipairs(table) do
if string.upper(value) == element then
return true
end
end
return false
end
return module