超屌
各位好,這裡是阿電,一位從大學時期加入Coser的行列、已經在C圈走跳八年的老屁股
從最初的攝影開始一路到自己跳下來成為Coser,加上自己是資訊科系出身
三不五時的就會想著如何將自身所學結合興趣,創造出更加與眾不同的出角體驗
這次要來分享的,便是本人於FFK17(2024年底)首次亮相的「聲控提納里尾巴」
兩個月的改造過程中究竟施了甚麼魔法,讓平凡的尾巴變得充滿互動性呢?
就請繼續看下去吧!
角色選定
這次改造的角色是遊戲《原神》中的提納里,是本作中「須彌」這個國家的巡林官
角色設計原型來自北非撒哈拉地區的耳廓狐,具有一對大大的耳朵和毛茸茸的大尾巴...

...好的,大概有人會覺得原PO是不是不獸控制,但實則不然
會挑這個角色除了因為自己也和小提一樣對植物有相當程度興趣外,也想嘗試動物擬人化系角色
而畢竟是具有獸耳獸尾的角色,當然是要在這兩個部位下足功夫
因此在準備出角之時,即便購入的整套Cos服就有包含所有的配件
但我還是另外上網自行找尋之前看過的「電動尾巴」,想來研究看看能如何玩出花樣--
不只要會動
確實,電動尾巴早就不是新鮮的玩意
本人也曾經在場次上看過不少人用電動尾巴出角,這其中當然也包含了有電動尾巴的提納里
「既然已經有人做過一樣的事情,那就想辦法做出差異性!」
抱著不要讓其他人覺得是「只會抄作業的跟風仔」的想法
一收到購買的電動尾巴後,我便立刻開始研究其運作原理

一般來講,現在能買到的電動尾巴通常是以電池盒+具有曲柄齒輪箱的馬達組合而成
控制方式從最便宜的單純指撥開關單一速度到無線遙控自由調速,可說是相當多元
至於本人由於是首次嘗試,於是先選購的便是無線遙控款式,並且提供三段調速
並且在拿到後端詳了遙控器和機芯,發現是走紅外線的方式做遙控
但於此同時也發現因為機芯也貼滿毛茸茸的皮毛,加上遙控器功率不高,使得遙控效果不太好...

▲ 除非直接正對著機芯,否則有時候遙控器也無法順利控制
專業技能來助力
不過,這點小阻礙可擋不了身為資訊科系出身的本人!
平時就喜歡買各種電資相關小玩具來玩的本人,早就備齊了本次改造需要的素材
本次改造的首個目的,便是要透過「遙控器以外的方式」發射控制訊號給電動尾巴
為此本人找來了一個特殊的開發版「Webduino」
這是台灣的一家新創公司結合了雲端技術與傳統Arduino開發版打造而成的物聯網裝置
開發版連線網路後便能透過Javascript直接控制,能很方便的整合至各種網路應用程式內
甚至可以透過拖拉方塊的方式建立程式,不需要學習Arduino C也能快速上手
(不過本人仍然會寫Arduino C)

▲ 基於Blockly打造的拖拉式介面,初學友善之外也能加快老手的開發速度
而在收到貨並發現是紅外線控制後,本人又立刻翻箱倒櫃找出了紅外線收發模組
將接收器接上開發板、製作了一段簡短的程式後,就可以將遙控器的控制內碼轉錄下來
有了遙控器內碼,便可以轉而製作以網頁呈現的控制程式
只要在網頁上按個鈕就能控制開發版上連接的發射模組發送控制訊號,達成與遙控器相同的效果!

▲ 開發板連結紅外線發射模組

▲ 最初的測試版程式長相
還能更與眾不同
到這裡電動尾巴已經突破了傳統需要遙控器才能控制的限制,但總感覺這樣還不夠吸引人
究竟有沒有辦法不動手按鈕,就能和尾巴產生互動呢?
答案當然是肯定的,畢竟已經拿到遙控器內碼,接下來要怎麼運用就更加自由了!
現在,就讓我們掌聲歡迎Web Speech API!
這個API讓我們只要寫幾行簡單的程式碼,就可以在網頁上立即實現語音辨識
這就是改造的第二個目的:當辨識到指定的語句便發送紅外線控制訊號
「用一句話讓尾巴動起來」不再是幻想,而是真的能實現!

▲ 按下網頁上的按鈕開始語音辨識後可收到語音辨識的字串,藉此去確認是否有講出指定的語句
▲ 實際運作效果(請開聲音)
確認能夠正常工作後,最後要考慮的便是攜帶性了
這時就不得不提到提納里的角色服裝設計,剛剛好就有一個小腰包!
雖然依照Cos服的品質能猜到大概是裝飾用的水準,但卻意外地能放入運作時所需要的行動電源以及小尺寸版本的開發版
蓋上包包後,紅外線模組還能順著腰帶一路走線到電動尾巴根部,機動性相當不錯


▲ FFK上的初版,當時還有些簡陋
其實,還不是最完美
到這裡,本次的改造專案就已經大致完成了
不過如果有仔細端詳的話,其實這個專案還是有些缺陷的:
可靠性與可攜帶性問題
由於開始開發到完成的時程相當緊迫(10月買來,12月中就在FFK17出角)
因此所有的零件是直接用杜邦線簡單連結的,在場次上移動時就脫落了好幾次
後來索性用多芯線直接焊死,一勞永逸的解決問題

▲ 改用多芯線製作的模組,可靠度更佳
此外用於對整個模組供電的行動電源,對於這樣的小型模組來說實在是有點殺雞焉用牛刀
後來找來了小尺寸的行動電源套件,重量更輕之外也能騰出更多空間放物品

▲ 小尺寸的電池更符合實際使用的需求
必須依賴網路以及雲端服務
專案中使用的開發版以及語音辨識都需要依賴雲端服務
因此在外面本人必須靠著手機開熱點才能讓所有機能正常運作
而且這些服務並未開源,一旦倒台就有可能直接變成電子垃圾或孤兒
要解決的方式也很簡單粗暴:改用其他平台或開發版(例如樹莓派Pico),但這就犧牲了簡單開發以及容易整合進網頁的優點
而且說實在的,是否值得為了這種生命週期短的應用場合從頭打造一個架構,也需要好好考慮
語音辨識精準度
Web Speech API嚴格來說是為通用的場景做設計,如果碰到不常見的詞彙就很容易辨識成其他詞語
例如「提納里」就常常變成「提那裡」「提哪裡」「皮那裡」「你那裏」「你那裡」等等
玩家們常用的愛稱「小提」更會辨識出「腳蹄」「腳皮」等八竿子打不著的內容
雖然可以透過判斷式過濾掉,但隨著執行程式的設備不同,辨識結果也難以確保能夠一致
這部分只能多加測試儘量排除影響,或儘量採用更簡潔的詞語

▲ 程式內用來修正辨識內容的陣列
紅外線發射器太顯眼
因為買到的電動尾巴遙控模組是採紅外線遙控,且因為尾巴機芯會被尾巴毛髮覆蓋
經測試一般市售的Arduino紅外線模組會因功率不足無法讓其收到控制訊號
最終是從淘寶找來特製的大功率紅外線模組才搞定,但一樣只能將紅外線發射模組露在外面

不過這屬於紅外線本身的物理限制
除非改用無線電控制(例如433MHz RF模組),否則無法根本上解決問題
而且改成無線電也有能否成功轉錄遙控碼、如何開發等問題要克服
你也可以自己做一個!
感謝你看到這裡
對於普通的Cosplay玩家來說,這或許是一篇相當具有技術含量的文章
但本人會分享出來,希望的就是讓大家也能少踩坑的順利完成屬於自己的作品
或許還能加入一點屬於自己的巧思--
沒錯,在此阿電不藏私,將完整的原始程式碼以及使用到的素材分享給各位
有興趣的同好不妨自己動手,體驗用一句話就讓自己的尾巴動起來的樂趣!
素材清單
僅列舉比較核心的零組件,其他細項(例如線材、電源)請另外自備或至電料行購買
開發板
使用Webduino Smart,比起傳統的Arduino Uno還要小
買來後可以先依照官方線上文件開通開發板與熟悉使用方式
加上此廠商現在主打教育市場,提供的文件相當完整,初學者也不必太過擔心
紅外線模組
紅外線發射/接收模組算是Arduino等物聯網開發板的基礎套件
可至電子材料行詢問是否有銷售Arduino套件,如果有的話應該都很容易找到
本專案中由於電動尾巴硬體限制因素,一般電料行買得到的紅外線發射模組功率太低無法順利使用
所以是另外到淘寶上找尋了高功率紅外線發射模組(功率達到3W)
程式碼
程式碼是一般的HTML網頁+Javascript,本人放置在GitHub中
詳細使用方式放在GitHub頁面說明區,請按照說明操作即可
※本文所提及與使用之各項物品均為個人自主選擇及自費購入,絕無收受任何利益並代為宣傳之事實(俗稱業配文)