【VRChat】Udon会計(ワールドギミック)セットアップツール付き Billing System
상품 설명
商品情報をもとに各プレイヤーに課金することができるシステムです。
店舗型ワールドで活躍すると思います。
使い方はシンプルで、課金対象を前方の判定ボックスに入れて、商品を選んでボタンを押すだけです。
金額だけでなく注文履歴も保存しており、適宜参照することができます。
また自動課金APIも実装されており、何らかのアクション(食べ物やオブジェクトのUseやTriggerへのEnterなど)に応じて課金することも可能です。
客用のオーダータブレットも備えており、店員が注文を取るほかに、客が自らタブレットで注文を入れることも可能です。
注文情報は集積されており、CSV形式で出力ができます。
GoogleSpreadSheetなどで集中管理すれば、月間売上の可視化やキャスト別売上ランキングといったことも可能です。
機能詳細
・タブレットを使って各プレイヤーが注文した商品の情報及び金額を保存できる。
・注文履歴を参照できる。
・使用した金額がプレイヤーの左手上部に表示される。
・使用した金額がプレイヤーの頭上に表示される。
・商品情報はカテゴリーに分かれておりドロップダウンから選択可能。
・ドロップダウンは標準で4つ、カスタマイズすれば5つ以上も可能。
・ドロップダウン内の項目は仕様上は100個までOK。
・自動課金APIを使うことで、任意のアクションに応じて自動的に課金を行うことが可能。
・タブレットはローカルなので、店員各人が保持可能。
・追従機能も備えており、Grabした状態で反対の手でUseすると追従のOn/Offを切り替えられます。
・オーダータブレットを客に配布することにより、リモートで注文が可能。
・受けた注文は店員のタブレットに通知され、リスト化される。
・リスト化された注文はPending(未対応)、Responding(対応中)、Processed(対応済み)の3つのステータスで管理され、店員がタブレットからボタンを押すたびにステータスが進行する。Processedになった注文は自動的にリストから消去される。
・受けた注文情報(商品、注文者、金額、対応したスタッフ)を収集し、CSVで出力が可能。
(※タブレットのSerializeFieldに店員のDisplayNameをリストしておく必要あり)
・出力されたCSVデータはクリップボードにコピーすれば、GoogleSpreadSheetなどにそのままペースト可能。
自動課金APIについて
自動課金を行う場合は行うオブジェクトのUdonにSerialize FieldにするなどしてTabletのUdonを参照させた上で、任意の関数(Interact, PickupUseDownなど)で
"Tablet(Tabletの変数名).AutoChargeAPI()"
を呼び出します。
ですが呼び出す前にパラメータを送る必要があるので、以下を行ってパラメータをセットしてください。
・Tablet(Tabletの変数名).SetProgramVariable("APICharge","課金額");
・Tablet(Tabletの変数名).SetProgramVariable("APIOrderItemID","アイテムID*");
*204のような形式。百の位がドロップダウンの番号で、一の位がドロップダウンの中の順番。204は3つ目(0始まりのため)のドロップダウンの5つ目の項目。
・Tablet(Tabletの変数名).SetProgramVariable("APIPlayerID","課金対象のプレイヤーID");
上記の後に
"Tablet(Tabletの変数名).AutoChargeAPI()"
を実行することで、自動課金をする処理が実行できます。
導入手順
1. 本パッケージをインポートします。
2.「Assets/nHaruka/BillingSystem/BillingSystem.prefab」をシーンに追加します。
3. シーンに追加されたBillingSystemの子のMasterDataを編集します。
Dropdown1..2..がカテゴリーでDropdownの子のitem1..2..が商品、itemの子の1.00が金額です。
itemの数は100まで増やすことが可能です。100を超えると仕様上問題を起こします。
Dropdownはデフォルトでは4つですが、5つ以上に増やすことも可能です。ただしその場合レイアウトが崩れるので、「BillingSystem/Follower/Tablet」内の"OrderMode"と"Cube"、"CheckoutMode"のサイズを調整してください。
4. MasterDataの編集が終わったら、メニューバー「nHaruka」→「SetupBillingSystem」を押します。
5. 上3つのフィールドは自動で埋まるので、4つ目のWorld Player Capacityをご自分の環境に合わせて設定し、SetUpを押してください。
6. SetUpが完了したら、タブレットを任意の位置に配置して導入完了です。
椅子に座っているプレイヤーの取得について
デフォルトの椅子では座っているプレイヤーの取得ができません。
そのためBillingSystemChairというキューブにVRCStationを付けただけのものに、プレイヤー情報を出力するUdonを追加したものを同梱してあります。
椅子に座ったプレイヤーを取得する必要がある場合は、通常の椅子の代わりにこちらの椅子を使うか、お使いの椅子のUdonをPlayer情報を出力するように書き換えたうえで、BillingSystemのPlayerDetectorのSittingPlayer取得箇所をお使いのUdonを参照するように書き換えてください。
今後の拡張予定
・金額に応じたアクションの追加。(例:支払いを終えていないと店から出られない など)
・金額を減らすアクションの追加。(例:皿洗いをすると金額が減る など)
アップデート履歴
[2022-09-14: v0.1β] 初リリース
[2022-10-04: v0.2β] 全体的なバグFix、オーダータブレットの追加、CSV出力機能の追加
利用規約
・Unitypackageそのものやソースコード、プレハブ等のアセット類の一部または全部の二次配布は禁止します。
バグ報告・サポートDiscord
バグ報告やサポート依頼、質問、感想などはこちらまで!
β版のテストリリースなども行っています。
모든 리뷰
더보기리뷰 등록
리뷰를 작성하려면 로그인이 필요합니다.
로그인하고 리뷰 쓰기