Slide 1

Slide 1 text

LINE Unity WebGL LINE Platform 2021.12.16 LINE Developer Community LT

Slide 2

Slide 2 text

UFJ DX uezo @uezochan

Slide 3

Slide 3 text

⚫ ⚫ 2006 https://forest.watch.impress.co.jp/ docs/serial/moritalk/528628.html

Slide 4

Slide 4 text

BOT ⚫ ⚫

Slide 5

Slide 5 text

CLOVA ⚫

Slide 6

Slide 6 text

Gatebox ⚫ Gatebox

Slide 7

Slide 7 text

Slide 8

Slide 8 text

2018.3 2021.12 3 100

Slide 9

Slide 9 text

BOT CLOVA Gatebox ? LINE We are here

Slide 10

Slide 10 text

https://youtu.be/CSS_N3GYheU

Slide 11

Slide 11 text

LIFF ⚫ ⚫ LINE LINE LIFF App

Slide 12

Slide 12 text

Unity WebGL on LIFF Azure Speech Services ⚫ Unity WebGL LIFF ⚫ ⚫ ⚫ ⚫ Conversation Service FastAPI / Python Reminder Service (FastAPI / Python) VOICEROID Server ⚫ ⚫ ⚫ Push ⚫ ⚫ VOICEROID2 + pyvcroid2 FastAPI REST API Server LINE ⚫ Microphone WebGL Library ⚫ SALSA & Amplitude ⚫ ChatdollKit ⚫ Cygnet 3D

Slide 13

Slide 13 text

WebGL 1. 5 10 2. dlopen, you need to use linking support, see https://github.com/kripken/emscripten 👉 3. C# async/await 👉 JS UniTask 4. .NET HttpClient 👉UnityWebRequest UniTask await 5. HTTP 👉Web CORS 6. Microphone 👉 Microphone WebGL Library 7. 👉 8. 16,000Hz 👉44100Hz 9. AudioClip.GetData() 👉Unity Wav 10. DownloadHandlerAudioClip.GetContent() 👉PCM AudioClip.Cleate() 11. MP3 TTS 👉 44,100Hz 20,050Hz 12. 👉 SALSA + Amplitude 13. UI 👉

Slide 14

Slide 14 text

LIFF WebGL Tips Unity jslib JS LINE RequireLiffToken() sessionStorage ⚫ LIFF Unity ⚫ Unity Web GL jslib ⚫ ⚫ init() iframe with liff.init() liff.getAccessToken() AccessToken setItem JS getItem AccessToken sendLiffToken() setLiffToken() & https://developers.line.biz/ja/docs/liff/opening-liff-app/#redirect-flow See also: LIFF URL LIFF

Slide 15

Slide 15 text

LIFF WebGL Tips window.liff = liff; window.sendLiffToken = function() { var liffToken = window.sessionStorage.getItem("LiffAccessToken"); unityInstance.SendMessage("Cygnet_MidiDress", "SetLiffToken", liffToken); } Unity jslib using System.Runtime.InteropServices; using UnityEngine; public class LiffController : MonoBehaviour { [DllImport("__Internal")] private static extern void RequireLiffToken(); public string LiffAccessToken { private set; get; } private void Start() { // Request to HTML to call SetLiffToken RequireLiffToken(); } // HTML calls this method to pass the liff token public void SetLiffToken(string liffToken) { LiffAccessToken = liffToken; } } mergeInto(LibraryManager.library, { CloseLiffWindow: function () { window.liff.closeWindow(); }, RequireLiffToken: function () { window.sendLiffToken(); } }); JS

Slide 16

Slide 16 text

⚫LINE ⚫ WebGL WebGL ⚫ LIFF ⚫Enjoy creating app on LINE Platform!

Slide 17

Slide 17 text

👋 uezo @uezochan