テフロウのおぼえがき

手抜きや趣味に関しての一覧、手順、ノウハウなど

当ブログの概要を併記して分類を行った記事一覧は下記から

記事一覧

ブラウザゲームをDiscordのアクティビティステータスに表示する方法

はじめに

Discordのアクティビティステータスって便利ですよね。それが表示されていることでフレンドやサーバーメンバーに話題を提供したり、協力プレイのきっかけになったりしてくれます。

でも、ブラウザゲームなんかだと普通にしてもアクティビティステータスに登録できません。ブラウザベースのソシャゲなんかは特に登録しておきたいですよね。

私はGoogle Chromeを利用しているのですが、ブラウザゲームのウィンドウをDiscordのゲーム追加で追加しても、Chromeが登録されてしまい、ゲームプレイ中以外でもブラウザを開いていれば登録したゲームをプレイしているように表示されてしまいます。

解決方法

実はDiscordのアクティビティ、同じように起動したChromeのウィンドウは同じアプリケーションとして認識されてしまうんですが、別のインスタンスとして起動したChromeであれば別のアプリケーションとして認識してくれます。

つまり、別のインスタンスとしてブラウザゲームを起動し、それをゲーム追加することで、そのインスタンスのアクティビティを見てくれるようになります。具体的な手順は下記のとおりです。

  • ショートカット作成
    インスタンスを立てるたびに起動オプションを設定するのは面倒なので、ショートカットを作ってしまいます。
    新規インスタンス用のユーザーデータフォルダが必要になるので適当な場所に専用のフォルダを作成しておきます。
    次に下記の通りに設定したショートカットを作成します。

    リンク先:"[Chromeのアップリケーションパス]" --app=[ゲームのURL] --user-data-dir=[ユーザーデータフォルダのパス]
    ※私はショートカット起動時にアプリケーションモードゲームを開くようにしていますが、それが不要な方はappオプションは省略してください。

    以降、ゲームを起動する際はこのショートカットから起動するようにしましょう。
    ※上記方法だとアクティビティ登録するブラウザゲームの数だけユーザーデータフォルダが必要となります。それを回避するための方法も下記に記載します。
  • ユーザーデータをまとめる方法
    実は厳密にはインスタンスごとに別のアプリケーションとして認識しているわけではなく、user-data-dirオプションの値が違えば実際に参照しているフォルダ関係なく別のアプリケーションとして認識してくれるようです。
    どういうことかというと、ユーザーデータフォルダを一つだけ用意し、そのフォルダへのシンボリックリンクを複数用意し、それぞれそのシンボリックリンクをユーザーデータフォルダとして設定すれば、それぞれ別のアプリケーションとして認識してくれます。
    シンボリックリンクの作成方法は割愛します。
  • ゲーム追加
    上記で作成したショートカットからブラウザを開き、Discordから[Discord→設定→アクティビティ ステータス→追加する→選択:→開いたブラウザを選択→ゲームを追加]
    また、追加済みのゲームから対象のブラウザの表示名を変更しておきましょう。
    以降、ショートカットから起動したゲームはアクティビティに表示されるようになります。
    実際に私で動作を確認しているのはブラウザ版グラブルやブラウザ版クッキークリッカー、どどんとふ、CCFOLIAです。ブラウザの問題なのでブラウザゲームは問わないと思います。

デメリット

  • ブラウザ間のデータ共有ができない
    インスタンスが別となるため、普段使っているブラウザ等とはキャッシュやクッキーが共有されません。また、お気に入りや履歴が共有されません。不便ですがメリットとデメリットを比較して利用を判断してください。もし共有する方法が見つかれば追記します。
  • ゲームの数だけユーザーデータが必要
    原理上、アクティビティ登録したいアプリケーションの数だけユーザーデータが必要になります。管理やディスクサイズに少しだけ影響があります。
    一応回避策はあります。
  • 実際に参照しているユーザーデータが同じインスタンスは同時起動ができない
    特に放置ゲーム等だと、同時起動をしたい場合もあると思いますが、ユーザーデータをまとめた場合は同時起動できません。部分的にまとめたりまとめなかったりして対応してください。
  • シンボリックリンクを利用してuser-data-dirを別扱いするのって許されるかわからない
    Chrome的に問題が発生するかどうかは正直わかりません。自己責任でお願いします。

まとめ

上記方法にてブラウザゲームのアクティビティ登録が実現できます。

少々デメリットもあるため、そこを解消する他の方法、設定、起動オプションでも代用できないかと検討しています。もし見つかれば追記します。

コンシューマ機版マインクラフトで過去バージョン用のワールドを遊ぶ

はじめに

SwitchやPS4Xbox等のコンシューマ機で過去バージョンのマルチサーバーに接続し、遊ぶ方法です。

どうにかしてコンシューマ機にて適正環境のマルチサーバーにてThe Unusual SkyBlock(https://skyblock.jp/tusb-download/)(以下TUSB)で遊びたかったために構成しました。

Spigotで動くのであればplugin版のGeyser(https://geysermc.org/)とViaVirtsion(https://github.com/ViaVersion/ViaVersion)でてっとり早く動作させるんですが、TUSBはSpigot等のmodサーバーだと動作が怪しいらしいので……

このように書いていますが、Windows 10やAndroid等を含めたBE版、マルチサーバーと異なったバージョンのJava版のクライアントも対象となります。WANの自身が管理者でないサーバーに接続することもできます。

 

条件

この方法はマインクラフトを、PCで動作させるソフトウェアを介してマルチサーバーに接続します。そのため、各種ソフトウェアを動作させるPCが必須です。

  • 接続元のマインクラフトクライアントについての条件は下記のとおりです。
    バージョン1.7以降(サーバー側のバージョンとの組み合わせは問わない)
    バニラサーバーに接続可能
  • 接続先のマインクラフトサーバーについての条件は下記のとおりです。
    バージョン1.8以降(クライアント側のバージョンとの組み合わせは問わない)
    バニラクライアントにて接続可能
    online-mode=false(この条件は構成や設定次第でなくすことができるかもしれません)
    ※クライアントとサーバーとのバージョンの組み合わせについては原理的にはどの組み合わせでも可能だと思われるが未検証。サーバー側1.10.2、クライアント側1.17.1でのみ実際に動作を確認済み
    ※data packやresource packとの整合性については未検証
  • 各種ソフトウェアを動作させるPCの条件については下記のとおりです。
    Java16以降推奨
  • その他の条件については下記のとおりです。
    ソフトウェアを動作させるPCに接続するためのDDNSワイルドカードが利用可能なDuckDNS等にて取得すること

 

方法

いろいろな部分について詳しくないため最低限動作することだけを目指しています。実践する際は自己責任でお願いします。

オフラインモードのため、スキン等の一部が機能しません。(改善できるか検討中)

構成は下記のとおりです。

  • BE版の場合
    BE版マインクラフトクライアント

    Geyser Standalone(以下Geyser)

    VIAaaS

    マインクラフトサーバー
  • Java版の場合
    Java版マインクラフトクライアント

    VIAaaS

    マインクラフトサーバー
  • 事前準備
    下記ソフトウェアを利用するため、事前にダウンロードしておきます。
    VIAaaS(https://github.com/ViaVersion/VIAaaS)
    クライアントのバージョンを偽装し、どのバージョンのサーバーにも接続することができるようにするソフトウェア。
    [Actions→適当なbuild→artifact]よりダウンロード。ファイルを解凍しファイル名がVIAaaS-[バージョン]-all.jar(以下VIAaaS-all.jar)のものを使用する。buildによって動かなかったりするのでいろいろ試してみてください

    Geyser(https://geysermc.org/)
    通信内容の相互変換を行い、BE版のクライアントにてJava版サーバーに接続可能とするソフトウェア。
    [右上のDownload→Jenkins→Geyser.jar]よりダウンロード。
  • 導入
    それぞれ適当なディレクトリにGeyser.jar、VIAaaS-all.jarを格納し、jarファイルを一度実行、停止する。
  • 設定
    jarファイルを実行したことで設定ファイルが生成されるので、それぞれ、最低限下記の設定を行います。設定はあくまで一例ですので、環境に応じて読み替えてください。
    Geyser[config.yml]
      bedrock:
        port: 19132 #BE版からのudp接続ポート ※1
      remote:
        address: [VIAaaSへの接続アドレス] #VIAaaS側への接続アドレス。接続環境に応じてアドレスジェネレーターより生成するアドレス
        port: 25566 #VIAaaS側への接続ポート
        auth-type: offline

    VIAaaS[config/viaaas.yml]
      port: 25566 #JavaクライアントやGeyserからのtcp接続ポート ※2
      bind-address: 0.0.0.0 #許容する接続元に応じて設定
      host-name: -[VIAaaSに接続する際のホスト名] #基本的にはDDNSにて取得したホスト名
      default-backend-port: 25565 #接続ポートを指定しない際のデフォルトポート。基本的にはマインクラフトサーバーのデフォルトポートと同じ

    設定に合わせて下記ポートを開放します。
    ※1 Geyserへの接続用udpポート
    ※2 VIAaaSへの接続用tcpポート
  • アドレスジェネレーターの使い方
    GeyserやJava版クライアントからVIAaaSに接続する際のアドレスはアドレスジェネレーター(https://jo0001.github.io/ViaSetup/aspirin)を利用して生成する。それぞれ下記を入力することでGenerated Addressにアドレスを生成する。
    Backend Address:マインクラフトサーバーのアドレスとポート
    Backend Version:マインクラフトサーバーのバージョン
    VIAaaS Address:VIAaaSが動作するPCのDDNSを利用したアドレス
  • 実行
    設定が完了したらVIAaaS、Geyserをそれぞれ起動します。
  • 接続
    上記の構成でソフトウェアでJava版とBE版の違い、バージョンの違いを吸収しマルチサーバーへ接続、操作することができるようになると思います。接続先は下記の通り。

    BE版からの接続
      アドレス:ソフトウェアを動作させているPCのアドレス
      ポート:Geyserへのudp接続ポート
    ※コンシューマ版からの接続の場合、特集サーバー以外に接続するためにDNSをBedrockConnectサーバーのものにしておく。
    詳細はBedrockConnect(https://github.com/Pugmatt/BedrockConnect)を参照
    Java版(サーバーとクライアントのマインクラフトバージョンが同等でない)からの接続
      アドレス:アドレスジェネレーターにて生成したアドレス
      ポートVIAaaSへのtcp接続ポート

    Java版(サーバーとクライアントのマインクラフトバージョンが同等)からの接続
      アドレス:通常通り
      ポート:通常通り

 

問題点

Java版とBE版の違い、バージョンの違いを吸収しているとはいえ、完全に互換があるわけではありません。未検証ですが下記のような部分が怪しいです。

Java版ではあるがBE版にはない部分。もしくはその逆については、該当部分のバインドがないため利用できないか、サーバー側にて反映されない可能性が高い。

クライアントのバージョンではあるがサーバーのバージョンにはない部分。もしくはその逆についても同様。

たとえばTUSB等で存在する、チャットテキストをクリックすることで実行されるコマンドは、BE版では実行することができなかった。実際に遊ぶ際にはopやコンソールにて同等のコマンドを実行してやる必要がありそうだ。

 

クライアント側だけで完結する部分、サーバー側だけで完結する部分については問題ない可能性が高い。

たとえばサーバーコマンドとそれに伴う動作についてはサーバー側の処理なので問題ないと思われます。

 

まとめ

基本的に上記で動作すると思います。

テストとしてAndroidのBE版でTUSBに挑戦したんですが、一部を除きとりあえず問題なく動くようです。ちなみに操作難度的にチュートリアル時点で地獄でした。

細かい部分については現在随時検証していますので、変更点があり次第更新します。

youtubeの日本語動画検索方法

youtubeライブ動画の一覧表示

youtubeで特に見たいものが決まっていないなど、検索条件を指定しないでライブ中の動画を一覧表示したいことがあると思います。

そういう時、検索欄を空、フィルターをライブで検索することで狙った通りのライブ動画を見つけることができます。(検索欄を空で検索することはできないため、URLの「search_query=keyword」における「keyword」を削除することで実現します。)

具体的にはこのようなURLにアクセスすることになります。

検索結果

この状態から、フィルターのアップロード日を指定することでライブカメラ系の常時ライブ配信している動画のみ検索したり、除外することができます。

また、並べ替えを視聴回数や評価にすることで、ある程度動画の質が良い順にすることができます。

日本人向けの動画だけ見たい

上記の方法で、キーワードを空にして検索した場合やアルファベットのみで検索する場合、国外のライブ配信が入り混じった形で検索結果が表示されてしまいます。ちょっと無理やりですが、ひらがなが一文字でも入っている場合に検索できるように、OR検索を行っています。

具体的にはこのようなURLにアクセスすることになります。

検索結果

buffaloルーターの解放可能ポートの制限について

はじめに

buffaloのルーターを買ってきて、ゲームやソフトウェアのためにポートを解放しよう!となった際に、「ポート変換」の項目(ポート解放の方法に関するFAQユーザーマニュアル(以降仮にWSR-5400AX6Sのものを記載))を利用することになると思います。

しかし、おそらくデフォルトの設定のままでは、開放できるポートに制限がある旨が画面上部に注意書きしてあります。

利用予定のポートが制限されている場合、ソフトウェア側で利用ポートを変えればそれでもいいのですが、変えることができなかったり、デフォルトのポートで通信したいといったことがあると思います。

制限を解除する方法

そのポート制限ですが、「Internet」の項目(ユーザマニュアル)にて「IPアドレスの取得方法」が「インターネット@スタートを行う」を選択している際に制限されるようです。

制限を解除したい場合は、自身の環境にあった「IPアドレスの取得方法」を設定することで、制限なく任意のポートを解放することができるようになるようです。

spell tableでの表示画像の日本語化について

いつの間にか標準で設定言語に対応した画像を表示するようになっていました。

  • ロビー画面右上の「KN」を押下。
  • 「Update Profile & Language」を押下。
  • 言語を設定したいものに変更。今回の話題と直接関係はありませんが、上部の円形部分を押下することでアイコンの変更も行えます。

 




はじめに

オンラインでmtgやるときにspell tableって便利ですよね。

テキストが見づらいときにも、画像認識で明瞭なカード画像を提供してくれます。

でも、表示される画像は英語になっています。mtgプレイヤーならテキストの英語くらい読めよ、もしくは日本語のテキストを覚えておけよと言われそうですが、実際にできていない人も一定数いると思います。

そこで、表示される画像を日本語のものに変更する拡張機能を作りました。

ただし、画像は紙のものベースなので、現行のテキストとは異なる可能性があることには留意してください。

導入について

形式はgoogleChromeのブラウザ拡張です。

 

まず、下記からファイルをダウンロードしてきます。

spellTableTranslate

「Code」と書いてある緑色のボタンを押下し、表示されるポップアップから「Download ZIP」を押下することでダウンロードできます。

 

あとはダウンロードしてきたファイルを拡張機能としてブラウザに読み込むだけです。
ダウンロードしてきたzipファイルを任意の場所に解答し、ブラウザの拡張機能を開き、「パッケージ化されていない拡張機能を読み込む」を押下し、表示されるディレクトリ選択画面から先ほど解答したファイルの、「manifest.json」が格納されているディレクトリを選択する。
一般的な野良の拡張機能の導入と一緒ですので、上記の説明で分からなければ各自調べてみてください。

 

以上で導入は完了です。spell tableにて、画像認識させると日本語のカード画像が表示されるようになるはずです。

 

動けばいいやで書いているのでご利用は自己責任でお願いします。誤動作、要望等があれば直すかもしれないのでご連絡ください。

Amazon Videoの検索オプションについて

はじめに

Amazon Videoで、こういう条件でソートしたいけど、そんな機能なさそう……って困ることありますよね。例えば、評価が悪い順にしたい、登録日が古い順にしたいなどです。

URLに特定の文字列を追加することで、デフォルトだと乏しいソート種別を拡張することができます。

ソート方法

下記の文字列を、検索結果のURLの末尾に追加するだけです。

ただし、おおむねは条件通りになりますが、別の条件も考慮しているよう(例えば評価順であれば、星の数だけでなくレビュー数も考慮しているみたい)で完全に意図した通りにはならないようです。

ソート 昇順 降順
人気順 &s=popularity-rank &s=-popularity-rank
評価順 &s=review-rank &s=-review-rank
新着順 &s=-releasedate &s=releasedate

ソートは変わっているので動作はしているんですが、意図した通りになっていないため正しく機能しているかどうかは分かりません。参考程度にどうぞ。

作業用動画のススメ

作業用動画とは?

ここで紹介する作業用動画とは下記のような動画のことです。

  • 深く意識を動画に向けずとも問題が無い。(難解で思考が必要な内容でない。)
  • 常に意識を向けておく必要が無い。(話の尺が短く、一部を聞き逃しても問題が少ない)
  • 画面を注視する必要が無い。(音だけ、もしくはたまに画面を見るだけでも問題が無い。)

上記の条件を考えると、適当なジャンルは下記のようなものになると思います。

  • ショートストーリー
    • 怪談
  • 切り抜き動画
  • 動画同期再生サービス
  • 音楽
  • 生物

なお、ジャンルは筆者の好みも多分に反映されています。

オススメの動画群

基本的には上記のジャンルの動画を、個々人で探せばいいと思いますが、とりあえずここを垂れ流しておけばいいんじゃないかというリストもいくつかありますので紹介します。垂れ流しに向いているという都合上、動画数が膨大であるか、常時生放送を行っているものを紹介します。作業用BGM系の生放送は大量にあるので尖ったものだけを紹介するので、それ以外は自分の趣味に合うものを探してください。

夜光猫

掲示板の怖い話をただただ機械音声で読み上げるだけの動画が大量にある。

筆者がよく自動再生しているやつ。

ななしぃ

SCPを機械音声と簡易な動画で紹介する動画が大量にある。

筆者がよく自動再生しているやつ。

パル企画

「ほんとにあった! 呪いのビデオ」シリーズ等の怖い話系動画を公式として大量にあげている。

QVC Japan

常時通信販売番組を24時間生放送として流している。ネットが普及していなかった頃、暇つぶしとして深夜帯のテレビをつけるとだいたい通販番組やってたよね。

むてきまるちゃんねる

魚がポケモンをプレイする様子を24時間生放送として流している。

サンシャイン水族館ライブカメラ

サンシャイン水族館ライブカメラ。ペンギンやクマノミ水槽を24時間生放送として流している。

筆者もよく行きつつ、ライブカメラでもペンギンの様子を見守っている。

DADABOTS

AIにより自動作曲されたメタル、デスメタル、ベースソロの曲を24時間生放送として流している。

質はともかく、常に変化があって、飽きが来ないとも取れるのでそういう点ではかなり高評価。

禍話

怪談のシリーズ。垂れ流し系とは違って質がある程度保障されているから、見ごたえも多少は欲しいって方に。

無限にじさんじ配信自動切り抜き再生機

Vtuberライブ配信の録画において、コメントベースで盛り上がったシーンを連続再生してくれるサービス。それぞれの動画においてそれぞれ該当シーンから60秒流し次の動画に遷移する。また、流す動画はにじさんじかホロライブを選べる。また、事務所単位だけでなく、Vtuber単位でも選ぶことができる。

動画同期再生サービス

他の人がリクエストし再生する動画を同期して視聴する。動画の内容はリクエスト者に依存する。具体的にどのようなサービスがあるかは個別に記事を書いているので、そちらを参照してください。

まとめ

ほとんど筆者用の備忘録です。随時更新予定。

 

scryfall(MTGカードの検索エンジン)覚書

Scryfallって?

Scryfallのこと。WotC非公式のカード検索システム。データ量や検索条件が膨大で、望む条件のカードを探すならここ。たまーにカード情報が間違ってたりするのはご愛嬌。

どんなカードがあるか知らない初心者から、カードはあらかた知ってるけど漏れなくリスト化して調べたい熟練者まで、MTGで特定の条件に合致するカードを探す時に便利すぎる。

Scryfallの検索仕様

検索フォームはここから。検索条件は日本語テキストに対応しているので便利だね。

高度な検索はここから。各フォームに条件を入力していくだけだから簡単だね。

検索構文はここから。高度な検索以上のことを調べようとするならここを読んで、検索クエリを直接書くことになる。特に複数のor条件を設定するならこれが必須になる。ここで構文を調べて検索フォームに入れれば、どんな条件でも調べることができると思う。

その他の検索パラメータはここから。

全体的なAPIリファレンスはここから。カード検索以外のAPIにも興味があるなら、熟読しよう。

○○な条件の構文ってどうするの?

検索構文に書いてあるけど需要が高そうなやつ

白=w、青=u、赤=r、黒=b、緑=g

or条件[type:land(条件A) or produces:UB(条件B)]

否定条件[-type:land(条件)]

固有色を含むカード[identity<=UB(固有色)]

多色[color:multicolor]

無色[color:colorless]

カードタイプ[type:land(カードタイプ)]

ラクル[oracle:"damage(検索対象の文字列、部分一致)"]

マナ総量が偶数[manavalue:even]、マナ総量が奇数[manavalue:odd]

特定の色のマナを生み出す[produces:UB(生み出すマナの色)]

レアリティ[rarity:common(レアリティ)]

ブロック[block:wwk(ブロック)]

旧枠[is:old]

特定のマナで唱えることができるカード

UUBB2で唱えられるカードの検索例:[mana<=UUBB6 manavalue<=6]

マナコストの検索条件として、有色マナの数分だけ不特定マナを増やし、マナ総量で上限を設ければ検索できる。

ただし、上記だと混成マナやファイレクシアマナ、氷雪マナなんかの特殊なマナを含むカードはヒットしない。ただし、Xマナだけに関しては、[mana<=UUBB6XXX manavalue<=6]のようにすれば、Xマナシンボルの数によるがヒットする。

また、カードの効果での追加コストや唱える条件は無視することとなる。

両面カードや分割カードはどうなるかは未検証。

この条件に限り、WisdomGuildで調べることも要検討。

統率者に指定できるカード(禁止解除)

[(type:creature type:legendary or oracle:"can be your commander") include:extras -type:token]

身内で禁止解除統率者戦やろうとなったときに作ったやつ。

第一面のみを対象にした検索ができないため、上記の結果から第一面が伝説のクリーチャーでないものを弾く必要がある。また、<飢餓の潮流、グリスト/Grist, the Hunger Tide>がヒットしないため、個別に追加する必要がある。is:commanderに禁止カード追加の方が早くていいんじゃね?

基本土地、もしくは基本土地タイプを持つ土地

[(type:basic or type:forest or type:island or type:mountain or type:plains or type:swamp)]

基本土地や基本土地タイプを参照するカードはたくさんあります。
参照できる土地を一覧で検索したいときにはこちらのクエリ。
とはいえ、サイクルも多くないため、いちいち検索することは少ないかもしれませんが、確認漏れが無いように。

統率者戦などで、特定の基本土地タイプを持つカードを除きたいのであれば、[-type:除きたい基本土地タイプ]のような形で除外してください。

無条件でアンタップインする土地

[(type:land -oracle:"tapped")]

アンタップインする土地はそれだけで評価の対象となると思います。
タップイン土地は絶対に入れることはできないという場合にはこちらの検索クエリを。

条件付きでアンタップインする土地

[(type:land (oracle:"tapped unless" or oracle:"don't, it enters the battlefield tapped")]

条件付きでアンタップすることを許容する場合はこちらのクエリをうまく混ぜ込む。
ただし、条件付きのアンタップインする際のオラクルがこれ以外にある可能性があります。

有色のマナを出すことができる土地

[type:land oracle:/.*Add .*({[ubwrg]}|mana of any type|mana of any color).*/]

色マナを出すことができる土地はそれだけで評価の対象となると思います。
無色マナしか出ない土地は入れたくないという場合にはこちらの検索クエリを。

日本語のカード画像がある場合は日本語、無い場合は英語のカード画像を表示

[(in:ja lang:ja or -in:ja)]

この条件を付けずに、[lang:ja]だけにすると、日本語名が存在しないカードがヒットしなくなる。

まとめ

こういうカードないかな?ってときの参考にどうぞ。

検索クエリさえ思いつけばどんなカードでも見つけ出せるので、自分でデッキ組みたいってひとはマスターするといいと思います。

複数人での動画同期再生サービスについて

動画同期再生とは?

そういう言葉があるかは知りませんが私がそう呼んでいる機能です。

複数人で通話をしながら動画を見る際に、シーンを同期する必要があると思います。

せーの、でみんなで同時に再生を開始すると言うプリミティブな方法でもいいのですが、一時停止や早送り、巻き戻しを行った際に面倒だったりで、できればシステムで解決したいですよね。

動画同期再生サービスについて

動画同期再生について現在存在が公開されているサービスを紹介します。そんなにあるわけではなさそうですが。

CyTube

複数人でプレイリストを作りながらyoutubeニコニコ動画の動画を同期再生できるサービスです。

自身でサーバーを建てるか、既存のサーバーに部屋を建てることで知り合いと楽しむことができます。もしくは、動画のジャンルを絞った既存の部屋で野良として知らないユーザーと楽しむことができます。

既存の公開サーバーは下記の二つだと思います。

cytu.be(海外サーバー)cytube.xyz(日本サーバー)

Syncplay

特定の動画プレイヤーと連携して、ローカルの動画ファイル(動画ファイルは視聴者がそれぞれ所持している必要がある)やyoutubeの動画を同期再生することができるソフトウェアです。

サーバーは公式のサーバーに部屋を建ててを使うか、自分でサーバーを建てることができます。

Netflix Party

netflixで動画同期再生を実現するサードパーティ製のgoogle chrome拡張機能

ウォッチパーティ

動画配信サイトでも、動画同期再生の機能を提供することが増えている。

利用方法はそれぞれのサービスの利用説明を参照。

amazon primetwitchhulu

watch together

discordにて、youtubeの動画同期再生の機能を追加する予定があるらしい。現時点で公式の記事は見つからなかったので情報元は割愛し、公式発表があり次第追記する。

その他

調査中に発見したその他のサービスを下記に記載する。こういうサービスがあるということだけ一覧化するが、詳細は未確認のために利用等は自己責任でお願いします。

w2gtogethertubeCASTPlayNowDJ7Vynchronize

まとめ

ローカルの動画ファイルから、動画投稿サイト、動画配信サービスのそれぞれで動画同期再生が可能となっているようなので、サービスを使い分けながら知人と動画を楽しんでいきましょう。

惜しむらくは、使い分けの手間をなくし、あらゆる動画を画一的に利用できるサービスができれば……と思うところです。

声質変換サービスについて

声質変換とは?

喋った音声を、声の高さや性質を変えたり、別人に似せた音声に変換したりする技術です。自分の声が嫌いなので、定期的にどういう技術があるか調べています。

簡単に言うとボイスチェンジャーみたいなものです。

声の高さや性質を変えるタイプの声質変換については、別の記事に譲り、今回は、別人に似せた音声に変換するタイプの音声変換について書いていきます。

個々のサービスについて詳しく書くというよりも、こういうサービスがあるよという紹介をメインとしますので、利用方法や特徴については個別に調べてみてください。

また、規約や権利については各自で確認してください。

声質変換サービスについて

声質変換について現在存在が公開されているサービスを紹介します。デモだったり、利用可でないものも含みます。

ゆかりねっと

変換元の音声をWeb Speech API音声認識でテキスト化したのち、そのテキストをVOICEROID等で発音させるという方式。

NAMAROID

ゆかりねっとと同様に、Intel RealSense SDK音声認識でテキスト化したのち、そのテキストをVOICEROID等で発音させるという方式。音声認識結果のテキストをクリップボードに返すこととができるものであれば、別の音声認識エンジンを利用することも可能。

yukarinライブラリ

多数の変換元の音声と変換目標の音声でディープラーニングを行い、その学習結果を用いて声質変換を行うライブラリ。リアルタイム声質変換に対応。環境の構築にある程度の知識が要求される点、学習データが質、量ともに高いレベルで要求される点から、思い通りの声質変換を行うにはハードルが高い。

個人的には、音声認識を用いないため、音声認識の精度に依存せず、また、オンプレミスとなるため、サービスの稼働状況を気にする必要が無い点から一番期待をしているシステムです。

Seiren Voice

デモ版。

音声とそのテキストを入力することで声質変換された音声ファイルを返してくれるWebサービス。yukarinライブラリの作者の方が手掛けている。

ディープラーニングの力で誰でもゆかりさんの声になれる声変換技術

ソフトウェア非公開。

入力音声を音素と音高に分割、変換、再合成する形で実現しているらしい。

yukarinライブラリの作者の方が手掛けている。

Voidol

AIを用いたリアルタイム声質変換ソフトウェア。

学習も不要で、喋り方を含めた声質変換サービスの中では、自身で完結しているソフトウェアであるため、品質は不明ながらハードルが低い。 

Deep_VoiceChanger

多数の変換元の音声と変換目標の音声でディープラーニングを行い、その学習結果を用いて声質変換を行うライブラリ。環境の構築にある程度の知識が要求される点から、思い通りの声質変換を行うにはハードルが高い。

サンプルを聞いた中では声質変換の精度はダントツだと思いました。

VOICE AVATAR 七声ニーナ

AIを用いたwebサービス

学習も不要で、喋り方を含めた声質変換サービスの中では、自身で完結しているソフトウェアであるため、品質は不明ながらハードルが低い。

One’s Voice

サービス非公開。

変換元の音声と変換目標の音声でディープラーニングを行い、その学習結果を用いて声質変換を行うサービス。

mmvc

AIを用いたソフトウェア。

学習量等によるがかなりいい感じの変換を行ってくれる。

同じ文章を読み上げた、変換元となる自分の声と変換先となる声の音声データが必要となる。

rvc

AIを用いたソフトウェア。

学習量等によるがかなりいい感じの変換を行ってくれる。

mmvcと違い、自分の声の音声データが不要であり、モデル作成のハードルが低い。

また、そのおかげで、学習モデルが多数公開されており、自分で学習を行う必要すらないことも多い。

まとめ

引き続き探していこうと思います。

有料でもいいんですが、リアルタイム変換可能で、オフラインで完結し、ある程度手軽に使えるソフトウェアがあればなぁ。

読んだ方で心当たりがあれば教えていただけると助かります。

触覚体感デバイスとそのDIYについて

触覚体感デバイスとは?

昨今、音響を振動として体感するという技術が商品化されている。

商品化された例として有名なところだと「4DX上映」「PS5コントローラー」、マイナーなところだと「Hapbeat」「Woojer Edge」「ButtKicker Gamer2」「ARES POWER:ゲームバックパック&ゲームシートクッション」といったハプティクス(haptic)機器がある。

 

どういうことができるか

商品化された例を見てどのようなことができるかピンと来ない方のために説明すると、下記のようなことができる。

  • 音楽を聴く際に、家庭用の貧弱なスピーカーやヘッドフォンであっても低音の振動を体で感じることができる。
  • ドライビングシミュレーションゲームを遊ぶ際に、エンジンや路面の凹凸を体感することができる。
  • FPSや映画における銃声、砲声の振動を体感することができる。

 

DIY

そのような触覚体感デバイスを、音響に連動して振動する椅子という形でDIYしようというのが今回の記事です。この記事を参考にしております。

前提として、DIYするデバイスは振動の入力を音響から引っ張ってくるため、4DXやPS5コントローラーといった音響に起因しない入力を持つ触覚体感デバイスとは少し異なったものとなる。

そのため、適したコンテンツ、適さないコンテンツがあるので見極めて使うように。

基本的には低音域を振動として出力する形になると思います。触覚体感デバイスの体感用に別口で音響出力を行う映像ソフトやゲームが出てくると面白いですね。

 

用意するもの

  • 振動する椅子によって近隣に迷惑をかけない環境
  • 底面が平坦で固い素材でできた椅子
  • 振動ユニット
  • 音響分配装置
  • パワーアンプ
  • 各種ケーブル(「音響分配装置⇔アンプ」、「アンプ⇔振動ユニット」)
  • ねじ

 

振動ユニット

私はこれを利用しています。

将来、売り切れ等になった場合は、「振動ユニット」「バスシェーカー」等で検索することで探すことができると思います。

 

パワーアンプ

私はこれを利用しています。

出力がこれと同等かそれ以上で、サブウーファ出力として高音域をある程度カットできるのであればどれでもいいと思います。

 

制作

  1. 振動ユニットをねじで椅子に取り付ける。
  2. 「音響分配装置⇔アンプ」「アンプ⇔振動ユニット」をケーブルにて接続する。
  3. 音響源をオンにし、振動ユニットが振動していることを確認し、音響源やアンプの出力を調整する。

 

まとめ

制作については詳細な手順を省いていますが、特段難解な手順ではないため、問題なく政策完了することができると思います。

音楽、映像、ゲームにより一層没入していきましょう。