在 VSeeFace 中使用 VRChat 模型
最近有嘗試著在 Twitch 上開直播,想說如果能夠讓 Zeffie(我在 VRChat 中所使用的角色形象)在直播時使用就好了。
經過一番搜索,我鎖定了 VSeeFace 這套軟體,並且搭配 iFacialMocap 做到表情捕捉。
也就是說,需要解決的問題就是:如何讓 VSeeFace 使用 VRChat 相容的 3D 模型
最近有嘗試著在 Twitch 上開直播,想說如果能夠讓 Zeffie(我在 VRChat 中所使用的角色形象)在直播時使用就好了。
經過一番搜索,我鎖定了 VSeeFace 這套軟體,並且搭配 iFacialMocap 做到表情捕捉。
也就是說,需要解決的問題就是:如何讓 VSeeFace 使用 VRChat 相容的 3D 模型
最近熱衷於玩 VRChat,在試用過多個不同的 Furry 模型之後,我最後選擇了 Zeffie ゼフィー 作為基礎模板。
有鑑於大部份的玩家都會在購買模型之後改變顏色或添增一些圖騰,以更加符合自身的設定,所以我也嘗試著自行修改:

本次的操作皆以這個模型為範例,理論上流程是差不多的,但可能在提供的東西上會有些差異
Laravel 有著優秀的預定義認證(Authentication)功能,讓開發者不必費心在重複製作用戶註冊、登入、登出等功能。
無論是早期的 laravel/ui 還是 laravel/fortify 都提供了安全、完整且方便的解決方案。
Kratos 是由 Ory Corp 所提供的開源認證解決方案,藉由設定檔的方式可以靈活設計認證模型(例如帳號密碼、第三方社群或 WebAuth 等 passwordless 的形式)
在 2021 年中旬,我曾經寫過一篇 Laravel 環境設定,不過因為工具上有些許變化,所以在 2022 年末將其重新整理一遍。
事先聲明,本文中所寫的環境設計題專門為了我自己的工作流而打造。如果不適合你,那你是對的,請儘管改成適合你的工作流。
蛤?PHP 字串比較還要特別寫一篇文章嗎?
會開始研究這個問題,主要是因為在 Laravel Fortify 中使用 hash_equals() 這個函式比對字串。
網路上有大量的文章探討如何使用 Laravel Queue,可惜的是,它們通常就給個 Hello World 式的範例,並未深入探討。
本篇文章會從 Laravel Queue 的實際行為上進行分析,並且著重於「失敗」的案例。
FastAPI 是一款基於 Starlette 的 Web 框架,其在 API 的開發體驗令人驚豔。
註:FastAPI 官方宣稱,得益於 Starlette 及 Pydantic,它的效能甚至能夠與 Go 比肩;然而根據 TechEmpower Web Framework Benchmarks 在 2022 年 7 月 19 日的測試,其效能約為 278 及 279 名,事實上以效能而言它位於中下游的水準。
與 Laravel 這類包山包海的全能型框架不同,FastAPI 選擇了一條「微」框架的道路,它更像是 Gin(Go) 的設計:輕量、精簡,並且在有需要時讓開發者自行安裝。這種設計很大程度給予開發者自由,甚至連資料夾結構都沒有官方預設(如果願意的話,甚至可以只靠一個 app.py 或 main.py 就建構起整個 API 服務)。
然而最讓我感到驚豔的,非屬自動 API 文件生成功能。眾所周知,工程師是種「最討厭別人不寫文件,但又不喜歡自己寫文件」的生物,FastAPI 內建由 Pydantic Model 進行自動化文件生成的功能,這能夠很大程度上減少撰寫文件的工作量。
Wireguard 是一款開源的 VPN 的程式及協定,基於 Linux Kernel 實現,相較於 OpenVPN 而言有更好的效能。
眾所周知,在 PHP 中 parse_url() 這個函式遲遲未支援 UTF-8,這導致一些英文、數字以外的 Host, Path, Query 及 Fragment 都會解析錯誤。
(psysh) >> parse_url('https://中文.台灣/你好嗎?我=很好&大家都很好#你呢?')
=> [
"scheme" => "https",
"host" => b"䏿__.å_°ç_£",
"path" => b"/ä½ å¥½å__",
"query" => b"æ__=å¾_好&大家é_½å¾_好",
"fragment" => b"ä½ å_¢ï¼_",
]
這個問題直到 PHP 8.1 仍未見改善,這也是促使我寫下本文的動機。
我雖然反對在軟體工程師面試時考白板題,不過對於 Leetcode 的態度就沒這麼反對。
偶爾會解一下 Leetcode Daily 作為工作前的醒腦準備,也不失為一種生活樂趣。