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
330
LINEで通話してくれる妹の作り方
LINE Developer Community 忘年LT大会での登壇資料。WebGLをLIFFで動かします。
uezo
December 16, 2021
Tweet
Share
More Decks by uezo
See All by uezo
キャラクター制御のためのプロンプト術 for LINE Bot
uezo
0
580
Food Virtualizationへの挑戦
uezo
0
49
ChatGPTとExcelの組み合わせによる業務効率化 ~適用業務の勘所と効果~
uezo
1
370
ビジネスパーソンのためのChatGPT API×Excel VBA超活用講座(OSS集会)
uezo
1
220
UnaSlidesのご紹介
uezo
1
360
LINE Messaging APIの概要 - LINE API総復習シリーズ
uezo
1
740
LINEでビデオ通話してくれる妹の作り方
uezo
0
72
Testing Antialiasing
uezo
0
22
Other Decks in Technology
See All in Technology
TanStack Routerで型安全かつ効率的なルーティングを実現
ytaisei
4
760
パフォーマンス最適化のベストプラクティス
databricksjapan
0
190
データ基盤を支える技術
chanyou0311
5
2.9k
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
210
Google Cloud Next '24 Recap in ZOZO AIにより変わる開発 運用/Development and operation changed by AI
gachimuchiengineer
0
190
AWS Observability ベストプラクティス 大紹介
o11yfes2023
0
150
動画配信サービスのフロントエンド実装に学ぶ設計原則
yud0uhu
0
120
個人のAWSアカウントをマルチ運用してみた
miura55
2
290
スクラムに出会って「できた」を実感できるようになってきた話 / Scrum makes me feel like I can do it
yayoi_dd
2
110
#phpconkagawa レガシーコードにもオブザーバビリティを 〜少しずつ始めるサービス監視〜
yamato_sorariku
0
510
拓展QA日常工作的邊界
line_developers_tw
PRO
0
490
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
150
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
KATA
mclloyd
16
12k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.5k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
A Tale of Four Properties
chriscoyier
153
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
47k
Facilitating Awesome Meetings
lara
43
5.6k
Building Your Own Lightsaber
phodgson
100
5.7k
The Invisible Customer
myddelton
114
12k
Making the Leap to Tech Lead
cromwellryan
125
8.6k
Designing the Hi-DPI Web
ddemaree
276
33k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
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