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
580
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
4
1.8k
Dify - LINE Bot連携 考え方と実用テクニック
uezo
7
2.7k
キャラクター制御のためのプロンプト術 for LINE Bot
uezo
0
940
Food Virtualizationへの挑戦
uezo
0
91
ChatGPTとExcelの組み合わせによる業務効率化 ~適用業務の勘所と効果~
uezo
1
530
ビジネスパーソンのためのChatGPT API×Excel VBA超活用講座(OSS集会)
uezo
1
360
UnaSlidesのご紹介
uezo
1
470
LINE Messaging APIの概要 - LINE API総復習シリーズ
uezo
1
1k
LINEでビデオ通話してくれる妹の作り方
uezo
0
200
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
20k
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
210
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
640
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
110
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
340
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
170
What's new in Go 1.24?
ciarana
1
110
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
140
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
280
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
610
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
82k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Docker and Python
trallard
44
3.3k
Automating Front-end Workflow
addyosmani
1368
200k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
4 Signs Your Business is Dying
shpigford
182
22k
Embracing the Ebb and Flow
colly
84
4.6k
Producing Creativity
orderedlist
PRO
344
40k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Making Projects Easy
brettharned
116
6k
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