-
Notifications
You must be signed in to change notification settings - Fork 4
Smart Slideshow
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を登録して遠隔操作できるようにする事が可能です。
本体。同期や下記2つのスクリプトとの連携の基点になります。
Literatures 配列に Literature
オブジェクトを追加することで、ここにセットしたものがスライドセットとして切り替わるようになります。
必要に応じて Controllers 配列に SSs_Controller
オブジェクトを追加することで、本体の状態を操作UIにフィードバックできます。
スライドセットの1単位にあたり、ここにテクスチャーをセットします。
Image
コンポーネントの Source Image にセットしたものはVRC上では無視されます。
スライドセットの1単位にあたり、ここにウェブ画像への直リンクURLをセットします。
読み込む事が出来るURL・画像形式に制限があります。 詳細は公式ドキュメントを参照ください。
https://docs.vrchat.com/docs/image-loading
RawImage
コンポーネントの Texture にセットしたものはVRC上では無視されます。
操作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