Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LINEで通話してくれる妹の作り方
Search
uezo
December 16, 2021
Technology
0
520
LINEで通話してくれる妹の作り方
LINE Developer Community 忘年LT大会での登壇資料。WebGLをLIFFで動かします。
uezo
December 16, 2021
Tweet
Share
More Decks by uezo
See All by uezo
【完全版】Dify - LINE Bot連携 考え方と実用テクニック
uezo
3
1.1k
Dify - LINE Bot連携 考え方と実用テクニック
uezo
6
2.1k
キャラクター制御のためのプロンプト術 for LINE Bot
uezo
0
860
Food Virtualizationへの挑戦
uezo
0
78
ChatGPTとExcelの組み合わせによる業務効率化 ~適用業務の勘所と効果~
uezo
1
500
ビジネスパーソンのためのChatGPT API×Excel VBA超活用講座(OSS集会)
uezo
1
300
UnaSlidesのご紹介
uezo
1
420
LINE Messaging APIの概要 - LINE API総復習シリーズ
uezo
1
910
LINEでビデオ通話してくれる妹の作り方
uezo
0
150
Other Decks in Technology
See All in Technology
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
210
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
630
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
強いチームと開発生産性
onk
PRO
35
11k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
100
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Designing Experiences People Love
moore
138
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
900
Mobile First: as difficult as doing things right
swwweet
222
8.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Scaling GitHub
holman
458
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Optimizing for Happiness
mojombo
376
70k
Practical Orchestrator
shlominoach
186
10k
For a Future-Friendly Web
brad_frost
175
9.4k
Transcript
LINE Unity WebGL LINE Platform 2021.12.16 LINE Developer Community LT
UFJ DX uezo @uezochan
⚫ ⚫ 2006 https://forest.watch.impress.co.jp/ docs/serial/moritalk/528628.html
BOT ⚫ ⚫
CLOVA ⚫
Gatebox ⚫ Gatebox
⚫
2018.3 2021.12 3 100
BOT CLOVA Gatebox ? LINE We are here
https://youtu.be/CSS_N3GYheU
LIFF ⚫ ⚫ LINE LINE LIFF App
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
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 👉
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
LIFF WebGL Tips <script> window.liff = liff; window.sendLiffToken = function()
{ var liffToken = window.sessionStorage.getItem("LiffAccessToken"); unityInstance.SendMessage("Cygnet_MidiDress", "SetLiffToken", liffToken); } </script> 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
⚫LINE ⚫ WebGL WebGL ⚫ LIFF ⚫Enjoy creating app on
LINE Platform!
👋 uezo @uezochan