Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
楽しいVR空間を 作る技術と支える技術 2019/06/01 OSC 2019 Hokkaido 株式会社インフィニットループ 後藤 大宗・山岸 大
Slide 2
Slide 2 text
自己紹介 ・後藤大宗 / Taishu Goto ・3Dモデラー ・スマブラはプリン使い 仙台→山形→千葉→北海道 イマココ スープカリーがおいしい! https://hagurumaheigen.booth.pm/ BOOTH 歯車平原
Slide 3
Slide 3 text
VCIとVRMとは違うのか?
Slide 4
Slide 4 text
基本的にはどちらも glTF2.0ベースの3Dフォーマット 人型アバターのフォーマット さまざまなプラットフォーム上で同じデータを 使うことを想定して作られた 人型である必要がない 家具、武器、背景 など プラットフォーム側でなく、 VCI自体にLuaスク リプトを記述して動きを制御することができる VRM VCI
Slide 5
Slide 5 text
VCI Object と VCI Sub Item VCIの構造
Slide 6
Slide 6 text
VCI Object SubItem SubItem SubItem
Slide 7
Slide 7 text
アメリカンクラッカーVCIの場合 VCI Object VCI Sub Item
Slide 8
Slide 8 text
SubItemの所有権
Slide 9
Slide 9 text
所有権 同期の基準になるユーザー
Slide 10
Slide 10 text
SubItem所有権の基本ルール 2・SubItemを掴んだ人に所有権が移る 3・同じGroupIDはまとめて移る 1・はじめはアイテムを出した人が持つ
Slide 11
Slide 11 text
SubItem所有権の基本ルール1 ・はじめはアイテムを出した人が持つ
Slide 12
Slide 12 text
SubItem所有権の基本ルール2 SubItemを掴んだ人に所有権が移る SubItem 現状「掴む」以外で 所有権を移す方法は ありません そのため、 コライダが無いなどで 掴めない場合は 所有権が移せません 注意
Slide 13
Slide 13 text
SubItem所有権の基本ルール3 同じGroupIDはまとめて移る ただしGroupIDが0のものは掴んだものしか移らない
Slide 14
Slide 14 text
VCIの重要な仕様に関しては 特にこの「所有権」まわりを 理解しておけば大丈夫だと思います あとはLuaスクリプト次第!
Slide 15
Slide 15 text
VCIの機能について なにができるの?
Slide 16
Slide 16 text
・Luaスクリプト無しで できること ・Luaスクリプト有りで できること ・(現状)できないこと VCIの機能について UniVCI v0.17時点
Slide 17
Slide 17 text
Luaスクリプト無しで できること ・物理挙動の設定 ・掴める/掴めないの設定 ・大きさを変えられるかの設定
Slide 18
Slide 18 text
Luaスクリプト無しで できること Unity上のコンポーネント で設定 VCI Sub Itemで 掴み、拡縮の設定 Collider Rigidbodyで 物理挙動を設定
Slide 19
Slide 19 text
Luaスクリプト有りで できること ・移動させる ・回転させる ・拡縮させる ・音を鳴らす ・衝突検知 ・アニメーションさせる ・マテリアルの色、UVの変更 ・他のVCIからメッセージを受け取る etc できないこと以外はだいたいできる!
Slide 20
Slide 20 text
(現状)できないこと ・オブジェクトの表示非表示切り替え ・マテリアルを別のものに変更 ・他のVCIやキャラクターを直接制御 ・アニメーションのブレンドや同時再生 etc
Slide 21
Slide 21 text
Luaスクリプトについて イベント関数
Slide 22
Slide 22 text
イベント関数 update updateAll onUse onUnuse onTriggerEnter onTriggerExit onCollisionEnter onCollisionExit onGrab onUngrab 毎フレーム処理 コントローラのボタン検出 コライダによる衝突判定 アイテムを掴んだ際の処理
Slide 23
Slide 23 text
回転翼のスクリプト onGrab() onUngrab() アニメーションファイル名
Slide 24
Slide 24 text
回転翼のスクリプト コライダ アニメーションコンポーネント 参照
Slide 25
Slide 25 text
ポジションリセットのスクリプト onUse()
Slide 26
Slide 26 text
ポジションリセットのスクリプト
Slide 27
Slide 27 text
ドラムのスクリプト onCollisionEnter()
Slide 28
Slide 28 text
ドラムのスクリプト ドラムとスティックにコライダとrigidbodyをつけておく
Slide 29
Slide 29 text
ドラムのスクリプト イベント関数内に条件文を追記することで どのSubItemとコライダの衝突なのか判別 自動で代入される
Slide 30
Slide 30 text
ドラムのスクリプト コンポーネント VCI Objectにアタッチした Audio Source 、Animation を名称指定する
Slide 31
Slide 31 text
Luaスクリプトについて 共有変数
Slide 32
Slide 32 text
共有変数 変数をユーザー間で同期することができる 途中からネットワークに参加したユーザーにもアイ テムの状態を共有できる vci.state.Set("STATE",state) vci.state.Get("STATE") stateの値を”STATE”という 共有変数に保存 共有変数”STATE”から 値を取得
Slide 33
Slide 33 text
共有変数 ネットワーク上にすでに変数が 保存されてるかのチェック 値があれば取得し、 なければ初期化 現在の状態を共有変数に 代入 ライトのスクリプト
Slide 34
Slide 34 text
Luaスクリプトについて メッセージシステム
Slide 35
Slide 35 text
メッセージシステム メッセージを送受信することで同じスタジオ内 にある別のVCIと変数のやり取りができる ↓ 例 スイッチのVCI と 爆弾のVCI データを管理するVCI と 掲示板のVCI vci.message.Emit("MSG_NAME",1) vci.message.On("MSG_NAME", onMessage) 送信側 受信側
Slide 36
Slide 36 text
メッセージシステム vci.message.Emit("MSG_NAME",1) 送信側のスクリプト メッセージ格納する名前 string型で”addforce_on”という メッセージの中身になる メッセージは投げっぱなし 過去のログの読み取りなどはできない
Slide 37
Slide 37 text
メッセージシステム vci.message.On("MSG_NAME", onMessage) 受信側のスクリプト 受信側はonMessage関数とセットで使おう 送信側を判定する条件式
Slide 38
Slide 38 text
アップデートで配信のコメントも 取得できるようになりました
Slide 39
Slide 39 text
コメントの取得 name部分が”comment”でシステムからの コメントメッセージを取得可能 例 「www」で画面に草が生える 「クッキー」でクッキーのカウントが増える
Slide 40
Slide 40 text
VCI学習 調べ方など
Slide 41
Slide 41 text
VirtualCast Wiki
Slide 42
Slide 42 text
関数別や、用途で別れている VCI取り込みのリンクや Unitypackageファイルもあるので 参考にして作りやすい
Slide 43
Slide 43 text
VCI Developers Discord https://discord.gg/jtsXVVA ↓どなたでも自由に参加できます VCIの質問やバグ報告 作ったVCIの宣伝など THE SEED ONLINEの質問も こちらで受け付けています 公式VCIの開発者コミュニティです
Slide 44
Slide 44 text
THE SEED ONLINE
Slide 45
Slide 45 text
自己紹介 - 山岸 “@akai_inu” Masaru - OSC 2016 Hokkaido, OSC 2016 Tokyo/Fall - THE SEED ONLINE エンジニア ポートフォリオサイト https://il-m-yamagishi.github.io
Slide 46
Slide 46 text
VCI の使い方 1.VCIを作成 2.アップロード 4.遊ぶ アイテムボックス 3.連携 することで TSOのアイテムボックスから VCIを持ってこられる
Slide 47
Slide 47 text
THE SEED ONLINE 構成図
Slide 48
Slide 48 text
Microsoft 製 WebGL フレームワーク
Slide 49
Slide 49 text
個人初 OSS! virtual-cast/babylon-mtoon-material virtual-cast/babylon-vrm-loader
Slide 50
Slide 50 text
Vue.js のフレームワーク - 最新技術の塊 - デザイナー・コーダー責務分離 - TypeScript - Vetur
Slide 51
Slide 51 text
OAuth Login OAuth Provider - Twitter - Facebook - niconico OpenAPI 3 OpenAPI 3
Slide 52
Slide 52 text
ありがとうございました。