ついに、わんコメも8.0のバージョンがβテストの開始となり、私がわんコメ公認のアンバサダー(わんバサダー)になってからも、それなりの年月が経過しました。
わんバサダーの2期から努めているため、1期から努めている先輩方よりは歴が短いのですが、わんコメへの愛は強いですよ!
さて、わんコメ8.0になると、テンプレートによっては「動かなくなった」という問題が発生する場合があります。
わんコメにもともと含まれているテンプレートが動かないのであればわんコメ側の問題の可能性が高いのですが、有志の方が配布や販売をしているテンプレートの場合は、わんコメ8.0に非対応である可能性が高いです。
どのようなケースでわんコメ8.0にするとテンプレートが動かない場合があるのか、簡単に紹介しておきます。
わんコメ8.0からはWebSocket接続の扱いが変わった
わんコメ8.0からは、それよりも前のわんコメとはWebSocketを使ったデータ取得の仕様が変更になりました。
そのあたりの細かいお話は、わんコメ公式のYouTubeで配信されたわんコメ通信でお話されています。
WebSocket接続時の初期権限で取得できるのは、
- comments
- deleted
- clear
- meta
- meta.clear
の5つの情報です。
そのため、セットリストや参加型管理などのテンプレートが主な影響を受けます。
データを取得するためには明示が必要
WebSocketを使って情報を取得させるためには、初期権限にないものであれば必ず明示して取得を促す必要があります。
例えばセットリストであれば、
OneSDK.setup({ permissions: ["connected", "setList"], });
といった形に、「セットリストを取りに行け」という指示がないと、subscribeのイベントを記述してあっても動作をしなくなります。
必要な場合には、必ず明示して取得を指示してあげてください。
別の方法でわんコメで取得している情報を表示できている場合には、必ずしも上記の記述を使うとは限りません。
これまで使えていたテンプレートが動かなくなったのはわんコメのバグなのか
これまでのわんコメである7.2などで使えていたテンプレートが正常に動作しなくなった場合は、果たしてわんコメのバグと言えるのでしょうか。
答えは「否」です。
もちろん、わんコメに内蔵されているテンプレートに「コメントが表示できない」といった基本的な動作がしないということであれば、わんコメ側の問題である可能性もあるのですが、特定のテンプレートだけ正常に動作しない場合には、そのテンプレートの問題の可能性が高いです。
特にコメントを表示させるだけでなく、セットリストに対応したテンプレートだったり、参加型管理に対応したテンプレートだったりすると、上記のWebSocket接続時の初期権限に引っかかり、思ったとおりの表示ができていない可能性が高まります。
テンプレートの問題であればどうすればいいのか
テンプレートの問題であることが判明した場合は、該当のテンプレートを制作した方に連絡し、修正を求めるのが手っ取り早いでしょう。
対応してもらえるかは別問題ですが……
というのも、テンプレートの設計を一番知っているのは制作者です。
他人が弄っても同じ結果を得ることはできるのですが、同じ症状で困る別の方は救われません。
テンプレートを販売や配布している制作者に連絡が取れ、修正が必要なことを認識してもらえば、同じ制作者さんが販売や配布している同系統のテンプレートの修正が入ったり、別の方の申告で修正が入ったりすることもあるでしょうから、制作者に問い合わせをするのが一番と言えます。
わんコメ側の問題であった場合にはどうすればいいのか
テンプレートには問題がなく、わんコメ側に何らかの問題があり内臓のテンプレートであろうと問題が発生するような状況であれば、公式のユーザーフォーラムを活用しましょう。
気をつけたいのは、わんコメ8.0に限らず、βテストなどの「テスト版」を利用している場合には、テスト版の利用方法に準じたご質問や問題の報告をご選択ください。
もちろん、わんコメのDiscordサーバーに加入し、動作報告として問題を報告することも可能です。
動作報告として問題を報告すると、頻度によっては無料でPRO版のライセンスキーをもらえるVIPユーザーとして扱ってもらえるケースもあるため、正常に動作していても報告することに損はありません。
テンプレートにはパーミッションを指定すべきなのか
WebSocket接続時の初期権限で取得できるのは、
- comments
- deleted
- clear
- meta
- meta.clear
の5つの情報であるというお話をしてきました。
では、これらの情報を取得する場合、パーミッションに明示する必要があるのかと言うと「必須ではないもののあったほうが好ましい」と言えるでしょう。
例えば、
OneSDK.setup({ permissions: ([]), })
という記述にすれば、上記4種類の情報は取得が可能なテンプレートを制作できます。
その代わりに、「高評価」や「視聴者数」だけを表示するテンプレートで「コメント」の情報が必要なかったとしても、コメントの情報を送られてしまうデータ量増加のデメリットがあります。
仮にメタ情報だけを取得したいのであれば、
OneSDK.setup({ permissions: (['meta']), })
とすれば、metaの情報だけを取得します。
ただし、似たようなパーミッションの記述でも、
OneSDK.setup({ permissions: OneSDK.usePermission(['meta']), })
とした場合には挙動が変わり、本来パラメーターを記載すべきところ誤った記述となっているためmetaは無視され、初期権限で取得できる5種を取得するようになります。
つまりこの例では、誤った記述ではあるものの初期権限にはmetaが含まれるため、metaの情報は取得できる状態であるものの、意図せずcommentsなどの情報も受け取っている状態です。
また、
OneSDK.setup({ permissions: OneSDK.usePermission([OneSDK.PERM.META]), })
とした場合には、パーミッションにmetaを指定したもの(2つ目の記述方法)と同じく、metaの情報だけを取得するようになります。
このように、パーミッションの記述方法や内容によって取得できるデータが異なるため、また今後の仕様変更にも対応するため、パーミッションには取得したいデータを明示しておいたほうが得策でしょう。
使用できるパーミッションの確認のために、ツールを作成してあります。
どのようなパーミッションが明示され、利用できるかの確認にお役立てください。
急に動かなくなったのであれば制作者に問い合わせてみよう
わんコメ8.0にアップデート後に、特定のテンプレートだけ正常に動作しなくなってしまった場合には、まずはテンプレートの制作者に問い合わせてみるのがいいでしょう。
わんコメ8.0のβテストが始まった時点から正式リリースまで、ある程度の期間が設けられる予定のため、多くのテンプレート制作者が更新を行うはずですが、漏れがあれば使えなくなる可能性もあります。
どうしても急ぎで使う必要があり、ご自身で直せるのであれば、パーミッションを見直すことで直る可能性がありますが、どのような設計になっているかはテンプレートごとに異なるため言い切ることはできません。
また、配信中に気づいてもすぐ直すことはなかなかできませんので、配信前の動作チェックも毎回忘れないようにしたいですね。
コメント