====== VCIで可能な事 ======
このページではVCIでできる事の概要を掲載しています。\\
^基本機能とイベント関数^^
|[[vci/overview/introduction#物理挙動 & 当たり判定]]|[[vci/overview/introduction#つかむ]]|
|[[vci/overview/introduction#さわる]]|[[vci/overview/introduction#使う]]|
|[[vci/overview/introduction#スクリプト]]| |
^メディア^^
|[[vci/overview/introduction#アニメーション]]|[[vci/overview/introduction#オーディオ]]|
|[[vci/overview/introduction#エフェクト]]|[[vci/overview/introduction#マテリアル]]|
|[[vci/overview/introduction#テキスト]]|[[vci/overview/introduction#ジョイント]]|
^独自機能^^
|[[vci/overview/introduction#メッセージ機能]]|[[vci/overview/introduction#配信コメントの受信]]|
|[[vci/overview/introduction#スタジオアイテムの操作]]|[[vci/overview/introduction#アイテムの装着機能]]|
|[[vci/overview/introduction#キーボード]]| [[vci/overview/introduction#OSC]]|
===== 基本機能とイベント関数 =====
==== 物理挙動 & 当たり判定 ====
\\
{{ :vci:introduction:rigidbody.png?direct }}
**[[vci:component:unity_rigidbody|Rigidbody]]**がついてるオブジェクトは物理的な挙動で振舞うようになります。
**[[vci:component:unity_collider|Collider]]**は衝突判定を行い、スクリプトを実行する時のきっかけに使用する事もできます。\\
\\
==== つかむ ====
\\
{{ :vci:introduction:grab.png?direct }}
**[[vci/component/sdk/subitem|SubItem]]**のコンポーネントで設定する事によって、オブジェクトをつかむ事ができます。
**[[https://developer.virtualcast.jp/vci-docs/api/events/onGrab.html |Grab]]**とは つかむことで、つかんだことをきっかけにしてスクリプトを実行する事もできます。\\
\\
==== さわる ====
\\
{{ :vci:introduction:touch.png?direct }}
Colliderとプレイヤーが接触することをきっかけにスクリプトを動かすことができます。
物理演算を**無し**のときは**[[https://developer.virtualcast.jp/vci-docs/api/events/onTriggerEnter.html |onTriggerEnter]]**、\\
物理演算を**有り**のときは**[[https://developer.virtualcast.jp/vci-docs/api/events/onCollisionEnter.html |onCollisionEnter]]**を利用します。\\
\\
==== 使う ====
\\
{{ :vci:introduction:use.png?direct }}
**[[https://developer.virtualcast.jp/vci-docs/api/events/onUse.html | Use]]**とは アイテムを使うことで、アイテム独自の動作を仕込むことができます。
プレイヤーの手がColliderに接触している必要があります。\\
\\
==== スクリプト ====
{{ :vci:introduction:lua.png?direct& }}\\
**[[https://developer.virtualcast.jp/vci-docs/manual/scripting/index.html|VCIスクリプト]]**はVCIに組み込むプログラムです。\\
**[[vci/script/luatutorial|Lua]]**という言語を採用しています。
先述のイベント関数に加え、変数、一部Lua標準のライブラリも使用できます。\\
時刻の取得や乱数の作成が容易になっています。\\
\\
===== メディア =====
==== アニメーション ====
\\
{{ :vci:introduction:anime.png?direct }}
**[[vci:component:unity_animation|Animation]]**を組み込むことでオブジェクトに動きを付けます。\\
\\
==== オーディオ ====
\\
{{ :vci:introduction:audio.png?direct }}
**[[vci:component:unity_audioclip|Audio]]**コンポーネントを付けることによって、音楽を再生する事ができます。\\
また、音楽の再生や停止はスクリプトで制御する事もできます。\\
\\
==== エフェクト ====
\\
{{ :vci:introduction:effect.png?direct }}
エフェクトは**[[vci/component/sdk/effekseer|Effekseer]]**を採用しています。\\
Effekseerで制作したエフェクトを組み込むことができます。\\
\\
==== マテリアル ====
\\
{{ :vci:introduction:material.png?direct }}
**[[vci/overview/material|Material]]**のいくつかのパラメーターをスクリプトによって変更ができます。\\
\\
==== テキスト ====
\\
{{ :vci:introduction:text.png?direct }}
**[[vci/component/sdk/text|TextMeshPro]]**のコンポーネントでスクリプト制御可能な文字を表示できます。\\
\\
==== ジョイント ====
\\
{{ :vci:introduction:joint.png?direct }}
**[[vci:component:unity_joint|Joint]]**を使うことでアイテム同士を連結する事ができます。\\
サンドバッグや振り子のような変わった挙動を再現する事ができます。\\
\\
===== 独自機能 =====
==== メッセージ機能 ====
\\
{{ :vci:introduction:message.png?direct }}
VCIはアイテム同士で**[[https://developer.virtualcast.jp/vci-docs/api/classes/ExportMessage/index.html|メッセージ]]**の送受信(情報の通信)が可能です。\\
アイテム同士の通信以外にも、一部のシステムからのメッセージを受信する事もできます。
\\
==== 配信コメントの受信 ====
\\
{{ :vci:introduction:commentjp.png?direct }}
メッセージ機能を利用することで、**[[https://www.showroom-live.com/ | SHOWROOM]]**と**[[https://live.nicovideo.jp/ | ニコニコ生放送]]**の**[[https://developer.virtualcast.jp/vci-docs/manual/studio_notification/comments.html|コメントを受信]]**して処理を実行する事ができます。\\
\\
==== スタジオアイテムの操作 ====
\\
{{ :vci:introduction:studio.png?direct }}
カメラ等の**[[https://developer.virtualcast.jp/vci-docs/api/classes/ExportStudio/index.html|スタジオアイテムを取得する関数]]**もあります。\\
プリセットアイテムごとにそれぞれ関数が存在します。\\
\\
==== アイテムの装着機能 ====
\\
{{ :vci:introduction:attachable.png?direct }}
**[[vci:component:sdk:attachable| VCI Attachable]] **コンポーネントを使用することで、アイテムを装着する事も可能です。\\
装着したVCIは[[unity:humanoid| Humanoid Avatar]]のボーンに追従して動きます。\\
\\
==== キーボード ====
\\
{{ :vci:introduction:keyboard.png?direct }}
**[[https://developer.virtualcast.jp/vci-docs/api/classes/ExportMe/index.html| キーボード入力]] **を受け取ってVCIを動作出来ます。\\
ラジコンのようにオブジェクトを動かすことができます。\\
\\
==== OSC ====
\\
{{ :vci:introduction:osc.png?direct }}
VCIはインターネットを経由して外部アプリケーションと通信する**[[vci:overview:osc|OSC]]**を利用することが可能です。\\
現実空間における任意のデバイスに干渉することも出来ます。
* [[https://developer.virtualcast.jp/vci-docs/api/classes/ExportOsc/index.html|OSC APIリファレンス]]
* [[deliverytool/onecomme|わんコメ連携]]
\\