𝗦𝘄𝗶𝗳𝘁𝗨𝗜 ਵਿੱਚ 𝗩𝗥𝗠 𝗔𝘃𝗮𝘁𝗮𝗿𝘀 ਨੂੰ ਰੈਂਡਰ ਕਰਨਾ
Scowld ਲਿਪ ਸਿੰਕ (lip sync) ਅਤੇ ਐਕਸਪ੍ਰੈਸ਼ਨਾਂ (expressions) ਦੇ ਨਾਲ ਇੱਕ ਰੀਅਲ-ਟਾਈਮ VRM ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।
ਮੈਂ 3D ਪਾਈਪਲਾਈਨ ਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਦੁਬਾਰਾ ਨਹੀਂ ਬਣਾਇਆ। ਇਸ ਦੀ ਬਜਾਏ, ਮੈਂ ਇੱਕ ਵੱਖਰਾ ਤਰੀਕਾ ਵਰਤਦਾ ਹਾਂ।
ਐਪ ਇੱਕ WKWebView ਦੇ ਅੰਦਰ three.js ਅਤੇ three-vrm ਨੂੰ ਰੈਂਡਰ ਕਰਦੀ ਹੈ। ਇਹ WKScriptMessageHandler ਦੀ ਵਰਤੋਂ ਕਰਕੇ Swift ਨਾਲ ਸੰਚਾਰ ਕਰਦੀ ਹੈ।
ਕੰਮਾਂ ਦੀ ਇਹ ਵੰਡ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਹੈ:
- ਨੇਟਿਵ ਪਾਸਾ (native side) AI, ਆਵਾਜ਼, ਅਤੇ speech to text ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।
- ਵੈੱਬ ਪਾਸਾ (web side) 3D ਰੈਂਡਰਿੰਗ ਅਤੇ ਲਿਪ ਸਿੰਕ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।
ਉਪਭੋਗਤਾਵਾਂ ਕੋਲ ਪੂਰਾ ਕੰਟਰੋਲ ਹੁੰਦਾ ਹੈ। ਉਹ ਅਵਤਾਰ, ਨਾਮ, ਆਵਾਜ਼ਾਂ, ਅਤੇ ਸ਼ਖਸੀਅਤਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹਨ।
ਇਹ ਤਰੀਕਾ ਸਮਾਂ ਬਚਾਉਂਦਾ ਹੈ ਅਤੇ 3D ਲੌਜਿਕ ਨੂੰ ਸਥਿਰ ਰੱਖਦਾ ਹੈ।
ਕੋਡ ਇੱਥੇ ਦੇਖੋ: https://github.com/apoorvdarshan/scowld
ਪੂਰੀ ਪੋਸਟ: https://dev.to/apoorvdarshan/rendering-a-customizable-vrm-avatar-in-a-swiftui-app-3ken