Skip to content

Smart Slideshow

MimyQuality edited this page Mar 24, 2024 · 18 revisions

概要

VRChatのワールドに設置できる、uGUIを使ったスライドショーギミックです。
以下の機能を備えており、フォトフレームやプレゼンテーション用モニター、ルールブックなど、応用次第で様々な用途にお使いいただけます。

  • スライドのページ送り、戻し、スライダー指定
  • 複数のスライドセットを登録、セット単位でスライドを切り替え
  • スライドセット毎にページを個別保持/同じページに連動
  • 最初と最後のページのループ送り有効/無効
  • スライド切替のプレイヤー間同期の有効/無効
  • 自動ページ送り(秒数指定)
  • 操作UIの分離、複数追加
  • ウェブ画像を読み込んで表示

Important

UIデザインはUnity標準そのままなので、各々のワールドの雰囲気に合ったカスタマイズをしてお使いください。

導入手順

Installation

パッケージ内容

  • スライドショー表示ギミック
  • 表示するためのスライドセット管理ギミック
  • スライドショーの操作ギミック
  • ギミック組み合わせ例のサンプルプレハブ

使い方

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を登録して遠隔操作できるようにする事が可能です。

SSs_info

Smart Slideshow

本体。同期や下記2つのスクリプトとの連携の基点になります。
Literatures 配列に Literature オブジェクトを追加することで、ここにセットしたものがスライドセットとして切り替わるようになります。
必要に応じて Controllers 配列に SSs_Controller オブジェクトを追加することで、本体の状態を操作UIにフィードバックできます。

Literature

スライドセットの1単位にあたり、ここにテクスチャーをセットします。
Image コンポーネントの Source Image にセットしたものはVRC上では無視されます。

SSs_literature

Web Literature

スライドセットの1単位にあたり、ここにウェブ画像への直リンクURLをセットします。 読み込む事が出来るURL・画像形式に制限があります。 詳細は公式ドキュメントを参照ください。 https://docs.vrchat.com/docs/image-loading RawImage コンポーネントの Texture にセットしたものはVRC上では無視されます。

SSs_WebLiterature

SSs_Controller

操作UIを取り纏めるスクリプトです。 Target に操作したい Smart Slideshow をセットします。
Sub Target に別の Smart Slideshow を追加すると、一括で同じ操作ができるようになります。こちらに追加した Smart SlideshowControllers 配列はSizeを0にしてください。

対応するuGUIコンポーネントをセットすることで、操作UI毎に必要な機能を取捨選択できます。

  1. 登録したい機能に合わせたuGUIコンポーネントを SSs_Controller にセットする。
  2. uGUIコンポーネントの OnValueChanged() または OnClick() イベントに SSs_Controller コンポーネントをセットし、実行するイベントに UdonBehaviour.SendCustomEvent(string) を選択、引数に対応するイベント名を入力します。
    (SSs_Controllerの下段にイベント名の一覧があります。コピペ用にお使いください)

以下はPageNextボタンを登録する場合の例です。

SSs_controller

サンプル

以下のワールドにサンプルを設置しています。
https://vrchat.com/home/world/wrld_4b7ed36e-c436-409f-9f87-8a6f4c80e79b