[Gather.town]ランダム時間自身に回ってもらう方法

2022.11.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

  • t_o_dと申します。
  • 円滑なリモートコミュニケーションの促進の一環としてGather.townを利用しています。
  • Gather.townは基本機能以外の仕掛けが沢山ありますが、その中の1つがブラウザコンソールで扱えるSocket APIの存在です。
  • 「現在位置の取得」や「参加者情報の取得」など豊富に存在しており、それらを適切に組み合わせることで色々な操作を行うことが可能です。
  • 今回はその中からランダム時間自身に回ってもらう方法方法を記録いたします。

結果

  • 以下の数行をChromeコンソール画面に入力して実行するだけで、ランダム時間自身に回ってもらうことができます。
    • ※実行には権限が必要です。
    • ※実行制限が起きる場合があるので適切にご利用ください。
const myId = gameSpace.id // マイプレイヤーID
const time = Math.floor(Math.random()*5)+1 // 1~5の間
let count = 0
while(count < time / 2){
    // 2:上, 1:右, 3:下, 0:左
    for(const i of [2,1,3,0]){
        game.move(i, true, myId)
        await new Promise(r => setTimeout(r, 1000)) // 1秒ごと
    }
    count++
}

  • 実行後、ランダム時間自身が回転していれば成功です。

内容

  • 上記のスクリプトは以下のGather.townで用意されているSocket APIを利用しています。
    • gameSpace.id : 自身の参加者ID
    • game.move(操作番号,移動可否,対象者ID) : 対象者の操作
      • 操作番号 : 0(左),1(右),2(上),3(下),4(ダンス)
      • 移動可否 : trueかfalseを指定。true指定の場合、現在位置から動かない。
  • つまりランダムな時間自身に1秒ごとに「上下左右に向く」設定を行う**というスクリプトとなっております。

補足

  • 他の操作の情報はこちらのサイトから確認できます。
  • より詳細な情報を知るためには、以下のようにコンソール画面で「game」「gameSpace」を入力して実行すれば確認できます。

まとめ

  • こうした基本機能以外に提供されているものを利用してより良いリモートコミュニケーションの促進につながると実感しました。
  • 今回扱った機能以外にも豊富なメソッドやプロパティがあるので、適切に組み合わせて節度ある利用を行おうと思います。

参考

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。