cluster「乗り物何もわからん!?」勉強会

2021/11/24に開催されました cluster「乗り物何もわからん!?」勉強会サブ企画「CCKこの機能がほしい!」にて頂いたコメントに、vinsがさらにコメントなど付けたものです。一部表現を変更しているところがあります。

当日の動画と資料


 
資料はこちらからどうぞ。
cluster_norimono_benkyo.pdf

Twitter

座標・角度系

人や物の座標取れるのある……?
物とかの座標をリストで指定したい……できる?
アイテムの角度でAnimaterとかの数字を動かしたい
→座標や角度の数字を取得できれば、今回CCKのLogicに加わった色々な計算式で「××まで○○メートル!」みたいな数字を取ったり「アイテムを持ち上げる角度で何かを動かす」なんてこともできますね! 何かと何かの距離が近ければそっちに動いていく……みたいなのもできそうです。

文字列系

String型/関数
一緒にコメントの読み取り、送信も キルログとか出したい
→文字列をつなげたり削ったりに始まって、さらに「vinsさんが入室しました」「vinsは10のダメージを受けた」「vinsさんが倒されました」みたいにユーザー名をからめたメッセージを出したり。
さらにそれをコメント画面にも表示できたりするとゲームの幅が広がりますし、ゲームを観戦している人にも状態が伝わりやすくてすごくいいですね!

ランダム系

ランダム系の関数がほしい
→Lotteryでランダムを実現するのは結構面倒なんですよね、今回Logicにずいぶん計算式増えましたし、シンプルに0から1までの小数を返す「Random」とかの計算式が増えてもいいかなあと……

組み合わせの乱数(例えば1~10をシャッフルして、10回目まで同じものが出てこない乱数)
→カードゲームとか、クジ引きとかが簡単に作れるようになりそうですね! 敵のAIとか応用も色々利きそうです。
(この発展系として数値などを複数まとめて管理できる「配列」の機能が欲しいですね。1~10とかをシャッフルするのも配列なら作りやすそうです)

セーブ系

ワールドの状態値をセーブしたい
→木を植えておくと、誰もワールドにいなくなっても数時間後に育っている……みたいなのができると面白いですよね。現状のclusterの仕様だと「誰もいなくなったサーバーは消える」なんで難しそうではありますが。。。clusterに「フレンドを招待できる自分の部屋」みたいな機能ができたら面白いんじゃないかとかも思います。そこで起きたことは、リセットしない限り永続するみたいな。

ワールド間共通のセーブってもう言及された?
→上のと似ていますが、これは違うワールドに行ってもパラメータが保存されるとかいう感じの奴ですかね。例えばあるワールドでLVをあげて他のワールドに行くと、そのLVを引き継いでゲームができるとか。お金を稼いで他のワールドに行って使うとか……楽しそうです!

AI系

公式のNPCAI機能(ホラーな追いかけっこ作れるやつ)
UnityのNavMesh使いたい!
→LookAtConstraintで何かをずっと注視させて追いかける、レーダーをグルグル回してぶつかったら回転の数字だけ同期させる(ワープさせる)……とかの抜け道はありますが、どっちも限界と制限がキツい感じですよね。「追いかけてくる」系、「何かのルールに従って動く系」が解禁されると面白いことができそうです!

UI系

抜け道使わないローカルギミック~
→乗り物機能によって大量のボタンとかを処理しやすくはなりましたけど、フツーのゲームみたいにPlayerLocalUIのとこにボタンが置ければすごくラクですよね……いまは黒魔術的な抜け道でしか実現できないんで。3人称・1人称・VRとかで配置に悩むことも減りそうです。

スライダーとかスクロールバーとか
→スライダーの「数字を設定」することはできても、スライダーを動かしてその数字を取得という機能はありませんでしたね。上のローカルギミックと一緒に導入されると、自分の好みで色々ワールドの設定をいじるとかがすごくやりやすくなりそうです。

Gimmickとか系

TargetがLocalPlayerのGimmickをUI以外でも
→いまはGimmickのTargetをLocalPlayerにするのはPlayerLocalUIの子でしか指定できないんですよね。ちょっと複雑なことをしたい場合、ここに他からもアクセスできるのは良さそうです。

システム系

itemの子にitemを配置できるようにして欲しい。
→これができるとConstraintによるテクニックとかもあまり要らなくなってラクですよね……

同期系

速いアイテムの位置の同期精度もうちょっと改善してほしい
→clusterさんのサーバー代と比例しそうなんでどこまでできるか難しそうですが、期待はしたいですよね。。。やはり今は他の人が乗り物に乗っているとカクカク動く感じも見られるので……課金すると同期速度が速くなるとかでもいいんですが。。。

動き系

プレイヤーに重力設定できるようにしたい
→clusterって基本的にふわーっとした動きなんですが(多分VRで酔いづらくするため?)、もっとキビキビ下に落ちて欲しいワールドもありますよね。その辺の設定ができると表現の幅が広がりそうです!

tween系使いたい
→Tweenってのは一定速度でなくうにょーんって「高速で動き始め、ゆっくりと停止する」みたいな動きのことですね。Animationとかでいくらかは実現できますが、「指定した位置にTween的な動きで移動しろ!」みたいな命令ができると色々便利そうです。
(他の人がOwnerのアイテムってカクカクしがちですが、Tween的な計算で動かしている時は滑らかに動くとかも理論上は可能な気がしますし)

音声系

のりもので離れちゃうのでトランシーバーがほしい!
→「乗り物を運転している人同士は遠くにいても音が近く聞こえる」とかいう感じですね。チーム戦で協力したりの幅が広がって面白そうです!

演出・エフェクト系

アバター変更の演出をつくりたいな
→OnAvaterChangedとかあると、変身パーティクルなんか出せて面白いかもしれないですね~
(そこまでいかなくても、「変身時パーティクルを出す」オプションがclusterのアプリに入っているだけでいいかもしれませんし)

オーナー系

オーナー権限を強制的に移動させるギミック
→Ownerが違うItemはどうしても動きがカクカクしたり当たり判定が甘くなったり物理挙動がヘンになったりしてしまいますよね……あとHPやLVを他の人に見えるように表示するときなんかも便利そうです。
(1人でプレイしてみんなは観戦者! みたいなゲームの場合、メインプレイヤーが敵とかのOwnerになっているとすごくプレイがスムーズになります)

表示系

カメラの描画距離の変更
→全体に軽めに作ってあるから遠くを表示したいワールド、全体に重めだから近くだけ表示してくれればいいワールド、その辺の調整ができれば幅が広がりそうですね!
(messeさんがなんか黒魔術的な感じのテクニックに言及されていますが……できるのかな? https://twitter.com/MesseMessenger/status/1463493638197968904

PC/スマホで表示物切り替えれる機能とかあると表現の幅広がりそうな気もする
→PCなら余裕だけどスマホなら重すぎる、みたいなオブジェクトはどうしても出てきます。この見た目を環境で切り替えできるようになると、重いオブジェクトも置きやすくなりますよね。今後Quest2対応が入れば、そのときも役立ちそうです。(PCでもつよつよPC・よわよわPCあるんで、ユーザーが画質設定できるともっといいですね……)

ネットワーク系

POST/GETを打ってワールドのギミックに反映
→つよつよ勢ですねw Webトリガーの発展系という感じでしょうか。

UnityEditorでの開発補助系

メッセージを追えるDebugログ出力機能
→これはメチャクチャ欲しいですね! いまどのメッセージが送られたのか、受信されたのかを確認できれば「送ったつもりが送れてない」「受信したつもりが受信してない」とかを回避できてワールド作成がすごくラクになりそうです。

ローカルUnityのCCK内で座った時の姿勢を確認できる用の簡易な3Dモデルが欲しい…。
プレビュー上でVRMアバターを起動できるようになればデバッグしやすいですよね
プレビューの3人称視点は欲しい?
→ロボットモデルでもいいんでこれ欲しいですね……、乗り物機能でアニメーションとかも増えましたが、現状はclusterにアップロードしないと確認できないんでかなり大変です。アップロード時間かかりますし……3人称視点でアバターが動いている形でデバッグできると、アップロード後の体験にグッと近づいて分かりやすいです。

ローカルで鯖立てて実際のclusterクライアントでデバッグしたい
→これができれば1つ上の問題もぜーんぶ解決!? かなり大変そうですが……

プログラム(スクリプト)書きたい定期
→正直プログラマーの人ならこれはありますよね、ItemLogicとかを重ねていくと相当見づらい上にEditorが重くなるのもあって……今のCCKの書き方も残しつつ、プログラムみたいに書ける機能があるとはかどりそうです。

Editor上での複数人デバック機能
→Unityで複数人開発自体が結構大変ですが、マルチプレイではじめて気づく・生じる問題点も結構あるんで、これがスムーズにできるようになると素晴らしいですね……

アップロードのワールド選択のリスト整理させてくれぇ...
→現状、ワールドをたくさん作るとアップロード画面ゴチャゴチャになりますよね……整理できてほしい。

cluster自体の機能系

ブラックリスト
→イベントからの追放機能はありますが、ワールド関係だと「透明にする」ミュート的な機能だけですね……この辺はclusterの思想にも関係してきそうですが、どうしても荒らし問題はついて回るんで、需要はありそうです。

VRのUI、もうちょっと見やすくなってほしい
→やはりVRで入れてこそのclusterですから、この辺の機能改善も進むといいですね……

Youtubeの中継機能
→これができるとパソコンの操作をclusterの画面に映して勉強会、とかもできるんで非常にありがたいですよね!
(Youtubeからclusterのサーバー経由で転送させるのは非現実的だと思いますが、内部的にはYoutubeライブに各自が接続していて、その画面をclusterのアプリに映す……とかなら可能なんですかね?)

潔い系

無ければ自分で作る
→潔し!

できるかもしれないこと?

(CharacterItemで)ロボットのなかに乗れるってことは、覆っちゃうか中の人を透明にできれば、アバター試着できるのでは
→これ大きめのアバターならいけそうですね、中の人を透明にするのは難しいかもしれないですが……
(試着じゃなくてロボットみたいに走らせるとかなら普通にできそうですね!)

抱っこしてもらっておぎゃれる乗り物?も作れるの?
→どれくらいリアルにできるかはともかく、キャラクターを配置してCharacterItemつけて、Seatの位置とOverrideAnimationを調整すればなんかできそうですね。