Smart Slideshow - mimyquality/FukuroUdon GitHub Wiki
概要
VRChatのワールドに設置できる、uGUI を使ったスライドショーギミックです。
以下の機能を備えており、フォトフレームやプレゼンテーション用モニター、ルールブックなど、応用次第で様々な用途にお使いいただけます。
- スライドのページ送り、戻し、スライダー指定
- 複数のスライドセットを登録、セット単位でスライドを切り替え
- スライドセット毎にページを個別保持/同じページに連動
- 最初と最後のページのループ送り有効/無効
- スライド切替のプレイヤー間同期の有効/無効
- 自動ページ送り(秒数指定)
- 操作 UI の分離、複数追加
- ウェブ画像を読み込んで表示
[!IMPORTANT] UI デザインは Unity 標準そのままなので、各々のワールドの雰囲気に合ったカスタマイズをしてお使いください。
導入手順
パッケージ内容
- スライドショー表示ギミック
- 表示するためのスライドセット管理ギミック
- スライドショーの操作ギミック
- ギミック組み合わせ例のサンプルプレハブ
使い方
Packages > Fukuro Udon > Samples > SmartSlideshow にサンプルプレハブが入っています。
サンプルプレハブを Hierarchy に置いたら、Literature オブジェクトの Slide 配列にテクスチャーをセットしてください。
このスライドショーギミックに使うテクスチャーは Texture Type を Sprite (2D and UI) 形式にしてください。
※ Image
コンポーネントの Source Image にセットしたものはVRC上では無視されます。
あとはプレハブの設置場所や大きさを調整してお使いください。
Smart Slideshow オブジェクトの Settings のパラメーターで以下機能の有効/無効を切り替えできます。
- Is Global : 表示内容を他プレイヤーと同期します。無効ならローカル動作となります。
- Page Link : スライドセットを切り替えた際に同じページ番号に飛びます。無効ならスライドセット毎にページ番号を記憶します。
- Page Loop : 最初と最後のページが繋がり、ページ送り/戻し機能でループするようになります。
- Auto Slide : 値を0以上にすると Page Loop が強制的に有効になり、その秒数で自動ページ送りします。値が0なら停止し無効になります。
サンプルには以下のものがあります。
- SSs_Template_Simple : 最小構成のセットです。ページ送りとスライドセット切り替えボタンを含みます。
- SSs_Template_ScreenOnly : 操作 UI を含まないセットです。自動ページ送りのみや、操作UIを分離して置きたい場合など。
- SSs_Template_ControllerOnly : 操作 UI のみのセットです。他のセットと組み合わせて使う用。
- SSs_Template_PickupController : 上記の操作 UI をピックアップできるようにしたセットです。
- SSs_Template_WebImage : スライドをウェブ画像への直リンクURLから読み込めるようにした最小構成セットです。
高度な使い方
このアセットは以下の3種類のU#スクリプトから成り立っています。
Smart Slideshow
を基点に、複数のスライドセットを登録して切り替えられるようにしたり、複数の操作UIを登録して遠隔操作できるようにする事が可能です。
Smart Slideshow
本体。同期や下記2つのスクリプトとの連携の基点になります。
Literatures 配列に Literature
オブジェクトを追加することで、ここにセットしたものがスライドセットとして切り替わるようになります。
必要に応じて Controllers 配列に SSs_Controller
オブジェクトを追加することで、本体の状態を操作 UI にフィードバックできます。
Literature
スライドセットの1単位にあたり、ここにテクスチャーをセットします。
Image
コンポーネントの Source Image にセットしたものはVRC上では無視されます。
Web Literature
スライドセットの1単位にあたり、ここにウェブ画像への直リンクURLをセットします。
読み込む事が出来るURL・画像形式に制限があります。 詳細は公式ドキュメントを参照ください。
https://docs.vrchat.com/docs/image-loading
RawImage
コンポーネントの Texture にセットしたものはVRC上では無視されます。
SSs_Controller
操作 UI を取り纏めるスクリプトです。 Target に操作したい Smart Slideshow
をセットします。
Sub Target に別の Smart Slideshow
を追加すると、一括で同じ操作ができるようになります。こちらに追加した Smart Slideshow
の Controllers 配列はSizeを0にしてください。
対応する uGUI コンポーネントをセットすることで、操作 UI 毎に必要な機能を取捨選択できます。
- 登録したい機能に合わせた uGUI コンポーネントを
SSs_Controller
にセットする。 - uGUIコンポーネントの OnValueChanged() または OnClick() イベントに
SSs_Controller
コンポーネントをセットし、実行するイベントに UdonBehaviour.SendCustomEvent(string) を選択、引数に対応するイベント名を入力します。
(SSs_Controllerの下段にイベント名の一覧があります。コピペ用にお使いください)
以下は PageNext ボタンを登録する場合の例です。
サンプル
以下のワールドにサンプルを設置しています。
https://vrchat.com/home/world/wrld_4b7ed36e-c436-409f-9f87-8a6f4c80e79b