SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
楽しいVR空間を
作る技術と支える技術
2019/06/01 OSC 2019 Hokkaido
株式会社インフィニットループ
後藤 大宗・山岸 大
自己紹介
・後藤大宗 / Taishu Goto
・3Dモデラー
・スマブラはプリン使い
仙台→山形→千葉→北海道
イマココ

スープカリーがおいしい!
https://hagurumaheigen.booth.pm/
BOOTH 歯車平原
VCIとVRMとは違うのか?

基本的にはどちらも 
glTF2.0ベースの3Dフォーマット
人型アバターのフォーマット
さまざまなプラットフォーム上で同じデータを
使うことを想定して作られた
人型である必要がない
家具、武器、背景 など
プラットフォーム側でなく、 VCI自体にLuaスク
リプトを記述して動きを制御することができる
VRM VCI
VCI Object と VCI Sub Item

VCIの構造

VCI Object

SubItem
SubItem
SubItem
アメリカンクラッカーVCIの場合

VCI Object
VCI Sub Item
SubItemの所有権

所有権

同期の基準になるユーザー

SubItem所有権の基本ルール

2・SubItemを掴んだ人に所有権が移る
3・同じGroupIDはまとめて移る
1・はじめはアイテムを出した人が持つ
SubItem所有権の基本ルール1

・はじめはアイテムを出した人が持つ
SubItem所有権の基本ルール2

SubItemを掴んだ人に所有権が移る
SubItem
現状「掴む」以外で
所有権を移す方法は
ありません
そのため、
コライダが無いなどで
掴めない場合は
所有権が移せません
注意
SubItem所有権の基本ルール3

同じGroupIDはまとめて移る
ただしGroupIDが0のものは掴んだものしか移らない
VCIの重要な仕様に関しては

特にこの「所有権」まわりを

理解しておけば大丈夫だと思います

あとはLuaスクリプト次第!
VCIの機能について

なにができるの?

・Luaスクリプト無しで できること



・Luaスクリプト有りで できること



・(現状)できないこと

VCIの機能について
 UniVCI v0.17時点
Luaスクリプト無しで できること

・物理挙動の設定

・掴める/掴めないの設定

・大きさを変えられるかの設定

Luaスクリプト無しで できること

Unity上のコンポーネント

で設定

VCI Sub Itemで
掴み、拡縮の設定
Collider Rigidbodyで
物理挙動を設定
Luaスクリプト有りで できること

・移動させる

・回転させる

・拡縮させる

・音を鳴らす

・衝突検知

・アニメーションさせる

・マテリアルの色、UVの変更

・他のVCIからメッセージを受け取る
 etc
できないこと以外はだいたいできる!
(現状)できないこと

・オブジェクトの表示非表示切り替え

・マテリアルを別のものに変更

・他のVCIやキャラクターを直接制御

・アニメーションのブレンドや同時再生




 etc
Luaスクリプトについて

イベント関数

イベント関数

update
updateAll
onUse
onUnuse
onTriggerEnter
onTriggerExit
onCollisionEnter
onCollisionExit
onGrab
onUngrab
毎フレーム処理
コントローラのボタン検出
コライダによる衝突判定
アイテムを掴んだ際の処理
回転翼のスクリプト onGrab()
onUngrab()
アニメーションファイル名
回転翼のスクリプト
コライダ アニメーションコンポーネント
参照
ポジションリセットのスクリプト onUse()
ポジションリセットのスクリプト
ドラムのスクリプト onCollisionEnter()
ドラムのスクリプト
ドラムとスティックにコライダとrigidbodyをつけておく
ドラムのスクリプト
イベント関数内に条件文を追記することで
どのSubItemとコライダの衝突なのか判別
自動で代入される
ドラムのスクリプト
コンポーネント
VCI Objectにアタッチした
Audio Source 、Animation
を名称指定する
Luaスクリプトについて

共有変数

共有変数

変数をユーザー間で同期することができる
途中からネットワークに参加したユーザーにもアイ
テムの状態を共有できる
vci.state.Set("STATE",state)



vci.state.Get("STATE")

stateの値を”STATE”という
共有変数に保存
共有変数”STATE”から
値を取得
共有変数

ネットワーク上にすでに変数が
保存されてるかのチェック
値があれば取得し、
なければ初期化
現在の状態を共有変数に
代入
ライトのスクリプト
Luaスクリプトについて

メッセージシステム

メッセージシステム

メッセージを送受信することで同じスタジオ内
にある別のVCIと変数のやり取りができる                ↓
例
スイッチのVCI と 爆弾のVCI
データを管理するVCI と 掲示板のVCI
vci.message.Emit("MSG_NAME",1)



vci.message.On("MSG_NAME", onMessage)

送信側


受信側
メッセージシステム

vci.message.Emit("MSG_NAME",1)
送信側のスクリプト

メッセージ格納する名前 string型で”addforce_on”という
メッセージの中身になる
メッセージは投げっぱなし
過去のログの読み取りなどはできない
メッセージシステム

vci.message.On("MSG_NAME", onMessage)



受信側のスクリプト

受信側はonMessage関数とセットで使おう
送信側を判定する条件式
アップデートで配信のコメントも
取得できるようになりました

コメントの取得

name部分が”comment”でシステムからの
コメントメッセージを取得可能
例
「www」で画面に草が生える
「クッキー」でクッキーのカウントが増える
VCI学習

調べ方など

VirtualCast Wiki

関数別や、用途で別れている
VCI取り込みのリンクや
Unitypackageファイルもあるので
参考にして作りやすい
VCI Developers Discord
https://discord.gg/jtsXVVA
↓どなたでも自由に参加できます
VCIの質問やバグ報告
作ったVCIの宣伝など
THE SEED ONLINEの質問も
こちらで受け付けています
公式VCIの開発者コミュニティです
THE SEED ONLINE

自己紹介
- 山岸 “@akai_inu” Masaru
- OSC 2016 Hokkaido, OSC 2016 Tokyo/Fall
- THE SEED ONLINE エンジニア
ポートフォリオサイト
https://il-m-yamagishi.github.io
VCI の使い方

1.VCIを作成
2.アップロード
4.遊ぶ
アイテムボックス
3.連携
することで
 TSOのアイテムボックスから 
VCIを持ってこられる
THE SEED ONLINE 構成図
Microsoft 製 WebGL フレームワーク
個人初 OSS!
virtual-cast/babylon-mtoon-material
virtual-cast/babylon-vrm-loader
Vue.js のフレームワーク
- 最新技術の塊
- デザイナー・コーダー責務分離
- TypeScript
- Vetur
OAuth Login OAuth Provider
- Twitter
- Facebook
- niconico
OpenAPI 3 OpenAPI 3
ありがとうございました。

Mais conteúdo relacionado

Mais procurados

Fuji sakuraでmbedを!
Fuji sakuraでmbedを!Fuji sakuraでmbedを!
Fuji sakuraでmbedを!
Tetsuya Noguchi
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
Daiki Maekawa
 

Mais procurados (20)

【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
 
Moveitを使ったアプリケーションの紹介
Moveitを使ったアプリケーションの紹介Moveitを使ったアプリケーションの紹介
Moveitを使ったアプリケーションの紹介
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方
 
そしてWebVR
そしてWebVRそしてWebVR
そしてWebVR
 
【Spark】第2回エフェクト交流会
【Spark】第2回エフェクト交流会【Spark】第2回エフェクト交流会
【Spark】第2回エフェクト交流会
 
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm
 
ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
 
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
 
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidevSwift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
 
擬似乱数生成器の評価
擬似乱数生成器の評価擬似乱数生成器の評価
擬似乱数生成器の評価
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
Fuji sakuraでmbedを!
Fuji sakuraでmbedを!Fuji sakuraでmbedを!
Fuji sakuraでmbedを!
 
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidevSwift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
Ruby関西76 gr citrusの使い方#2
Ruby関西76 gr citrusの使い方#2Ruby関西76 gr citrusの使い方#2
Ruby関西76 gr citrusの使い方#2
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
GR-CITRUSの紹介
GR-CITRUSの紹介GR-CITRUSの紹介
GR-CITRUSの紹介
 

Semelhante a 楽しいVR空間を作る技術と支える技術 #osc19do

#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
GREE VR Studio Lab
 
Iccw2010 sdk4 air
Iccw2010 sdk4 airIccw2010 sdk4 air
Iccw2010 sdk4 air
Isao Soma
 

Semelhante a 楽しいVR空間を作る技術と支える技術 #osc19do (20)

Azure Remote Renderingを試す
Azure Remote Renderingを試すAzure Remote Renderingを試す
Azure Remote Renderingを試す
 
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
 
VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
 
Ma8 Caravan 大阪 rev1
Ma8 Caravan 大阪 rev1Ma8 Caravan 大阪 rev1
Ma8 Caravan 大阪 rev1
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
 
すぐにでも使える Windows Virtual Desktop
すぐにでも使える Windows Virtual Desktopすぐにでも使える Windows Virtual Desktop
すぐにでも使える Windows Virtual Desktop
 
ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門
 
200309 Recent Application of VR and AR technology and Future Activities in se...
200309 Recent Application of VR and AR technology and Future Activities in se...200309 Recent Application of VR and AR technology and Future Activities in se...
200309 Recent Application of VR and AR technology and Future Activities in se...
 
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
 
Cmu for up
Cmu for upCmu for up
Cmu for up
 
IoTバカ、自動運転車を買う
IoTバカ、自動運転車を買うIoTバカ、自動運転車を買う
IoTバカ、自動運転車を買う
 
Summer camp2018 group1
Summer camp2018 group1Summer camp2018 group1
Summer camp2018 group1
 
Summer camp2018 group1
Summer camp2018 group1Summer camp2018 group1
Summer camp2018 group1
 
Vieurekaパートナーキックオフ
VieurekaパートナーキックオフVieurekaパートナーキックオフ
Vieurekaパートナーキックオフ
 
Iccw2010 sdk4 air
Iccw2010 sdk4 airIccw2010 sdk4 air
Iccw2010 sdk4 air
 
いおたんFA業界に殴り込み
いおたんFA業界に殴り込みいおたんFA業界に殴り込み
いおたんFA業界に殴り込み
 
仮想サーバは、もう不要?!今からIoTやるなら 「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら 「サーバレス・コンピューティング」
 
スマートファクトリーから動画認識MLまで 製造現場IoTのホントのところ
スマートファクトリーから動画認識MLまで製造現場IoTのホントのところスマートファクトリーから動画認識MLまで製造現場IoTのホントのところ
スマートファクトリーから動画認識MLまで 製造現場IoTのホントのところ
 
BIOSからUEFI
BIOSからUEFIBIOSからUEFI
BIOSからUEFI
 
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
 

Mais de infinite_loop

Mais de infinite_loop (20)

ChatGPT触ってみた
ChatGPT触ってみたChatGPT触ってみた
ChatGPT触ってみた
 
社内ソフトスキルを考える
社内ソフトスキルを考える社内ソフトスキルを考える
社内ソフトスキルを考える
 
3Dプリンタって いいね
3Dプリンタって いいね3Dプリンタって いいね
3Dプリンタって いいね
 
VRChatでお酒が注げる飲み物アセットの紹介
VRChatでお酒が注げる飲み物アセットの紹介VRChatでお酒が注げる飲み物アセットの紹介
VRChatでお酒が注げる飲み物アセットの紹介
 
アニメーションとスキニングをBurstで独自実装する.pdf
アニメーションとスキニングをBurstで独自実装する.pdfアニメーションとスキニングをBurstで独自実装する.pdf
アニメーションとスキニングをBurstで独自実装する.pdf
 
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
I ❤ Virtual Machines 仮想環境をより便利に使うツールたちI ❤ Virtual Machines 仮想環境をより便利に使うツールたち
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
 
500万行のPHPプロジェクトにおけるログ出力の歩み
500万行のPHPプロジェクトにおけるログ出力の歩み500万行のPHPプロジェクトにおけるログ出力の歩み
500万行のPHPプロジェクトにおけるログ出力の歩み
 
ADRという考えを取り入れてみて
ADRという考えを取り入れてみてADRという考えを取り入れてみて
ADRという考えを取り入れてみて
 
リファクタリングで実装が○○分短縮した話
リファクタリングで実装が○○分短縮した話リファクタリングで実装が○○分短縮した話
リファクタリングで実装が○○分短縮した話
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Start rl with_unity_machine_learning_agents
Start rl with_unity_machine_learning_agentsStart rl with_unity_machine_learning_agents
Start rl with_unity_machine_learning_agents
 
UniRx の1歩目
UniRx の1歩目UniRx の1歩目
UniRx の1歩目
 
がんばれ PHP Fiber
がんばれ PHP Fiberがんばれ PHP Fiber
がんばれ PHP Fiber
 
心に残った名前ランキング
心に残った名前ランキング心に残った名前ランキング
心に残った名前ランキング
 
プログラムと名前にまつわる座談会
プログラムと名前にまつわる座談会プログラムと名前にまつわる座談会
プログラムと名前にまつわる座談会
 
名は体を表していますか
名は体を表していますか名は体を表していますか
名は体を表していますか
 
名前の力
名前の力名前の力
名前の力
 
大切な名前[Intro]公開版
大切な名前[Intro]公開版大切な名前[Intro]公開版
大切な名前[Intro]公開版
 
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
JupyterNotebookとMySQLでゼロからはじめるデータサイエンスJupyterNotebookとMySQLでゼロからはじめるデータサイエンス
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
 
複数拠点における開発効率の維持・向上
複数拠点における開発効率の維持・向上複数拠点における開発効率の維持・向上
複数拠点における開発効率の維持・向上
 

Último

Último (12)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

楽しいVR空間を作る技術と支える技術 #osc19do