Music DJ: Spotify、YouTube、ローカルの音楽
Music DJは、シーンに合った背景音楽を流します。このガイドでは、Spotify、YouTube、手元の音声ファイルをつなぐ方法、音楽プレイヤーの使い方、Game ModeとConversationで音楽を使う方法を説明します。
Music DJとは
Music DJは、任意でダウンロードするエージェントです。エージェントとは、チャットの裏側で動くヘルパーです。Music DJは返信のたびにシーンの雰囲気を読み取り、それに合った音楽を流せます。
始める前に: Agents(エージェント)を開き、Agent Organizerを選んでMusic DJをインストールしてください。インストール直後はオフです。ほかのエージェントと同じように、チャットごとにオンにします。Roleplayのチャットで使えるほか、Game Modeでは専用のトグルで(Game ModeでのMusic DJ)、ConversationではMusicコマンドで(ConversationのMusicコマンド)使えます。
再生するソースは3つあります。
| ソース | 必要なアカウント | 費用 | 向いている用途 |
| Spotify | 自分のSpotifyアカウントと、再生用のSpotify Premium | 設定は無料、再生にはPremiumが必要 | 自分のデバイスで、実在の曲を曲名どおりに流す |
| YouTube | 無料のGoogle APIキー | 無料 | ログインもPremiumも不要で再生する |
| Custom | 不要 | 無料 | 自分の音声ファイルを流す |
有効なソースは、上部バーに固定される小さなMusic Player(音楽プレイヤー)として表示されます。スマートフォンや幅の狭いウィンドウでは、ドラッグして動かせる小さな丸いウィジェットになります。
Music DJの設定は、共通の1か所で行います。右側のAgentsパネルを開き、Music DJを開きます。ミニプレイヤーの歯車アイコン(ツールチップはMusic DJ setup)をクリックしても開けます。
音楽ソースの選択
Music DJの編集画面では、Music Player欄にSpotify、YouTube、Customの3つのボタンがあります。その下の行に、現在動いているものが表示されます。たとえば「Visible player: Spotify. Saved provider: Spotify.」のように表示されます。この選択はアプリ全体で共有され、チャットごとには保存されません。
Spotifyの設定
Spotifyでは、自分で作る無料のSpotifyデベロッパーアプリを使います。貼り付けるのはSpotify Client IDだけです。クライアントシークレットはありません。
- Music DJの編集画面で、Spotify Connectionを探します。
- アプリに表示されるリンクからSpotify Developer Dashboardを開きます。
- 新しいアプリを作成し、「Web API」を選びます。
- そのアプリのRedirect URIsに、アプリ内の設定ボックスの手順3でMarinaraが表示するリダイレクトアドレスを、そのまま追加します。リダイレクトアドレスとは、ログイン後にSpotifyが戻る先のアドレスです。
- Client IDをコピーし、Spotify Client IDに貼り付けます。
- エージェントを保存し、Connect Spotify Account(Spotifyアカウントの接続)をクリックします。
Spotifyのログインと許可のウィンドウが開きます。許可すると、短い成功ページが表示されて閉じます。Marinaraには、緑色のConnected to Spotifyのバッジが表示されます。Disconnect(接続を解除)を押すと、保存した接続が削除されます。
Note: 再生、一時停止、スキップ、音量の操作には、Spotify Premium(有料プラン)が必要です。無料のアカウントでも接続はできます。トークンは自動的に更新されます。
うまくいかなかった場合: 別のコンピューターでは、ログインウィンドウが失敗することがあります(下記を参照)。それ以外の場合は、リダイレクトアドレスが完全に一致しているかを確認してください。
Spotifyのデバイス
Spotifyは、スマートフォン、デスクトップのSpotifyアプリ、アプリ内プレイヤーなどのデバイスを通じて再生します。
- デスクトップでは、ミニプレイヤーのノート型コンピューターのアイコン(Enable Marinara playerまたはUse Marinara player)をクリックすると、ブラウザーのタブが「Marinara Engine」という名前のSpotifyデバイスになります。タブでのストリーミングにはPremiumが必要です。
- モバイルでは、プレイヤーはスマートフォン自身のSpotifyデバイスを優先するため、再生はバックグラウンドのタブではなくスマートフォンで行われます。
- デバイスが遠隔からの音量操作に対応していない場合、スライダーの代わりにUse device volumeが表示されます。デバイス本体の音量ボタンを使ってください。
別のコンピューターで動かしているSpotify
Spotifyが受け付けるリダイレクトアドレスは、安全なhttps://か、ループバックアドレスのhttp://127.0.0.1(同じコンピューター)だけです。Marinaraを別のコンピューターで、暗号化なしのhttpで動かしている場合、ログインウィンドウが失敗することがあります。対処法は2つあります。
- 接続の途中で、Connect Spotify Accountの下にある「Browser couldn't reach the callback?」を開きます。失敗したウィンドウのアドレスをすべてコピーしてボックスに貼り付け、Complete connectionをクリックします。
- または、リダイレクトアドレスを環境変数(起動時に読み込まれるサーバーの設定)で固定します。
SPOTIFY_REDIRECT_URI=https://your-address/api/spotify/callbackサーバー設定リファレンスを参照してください。
Spotifyが曲を選ぶ範囲を決める(Roleplay)
Music DJがRoleplayのチャットで動いているとき、そのカードにはSpotify source(Spotifyのソース)の一覧があります。
- Liked Songs: 保存済みの曲から優先的に選びます。
- Playlist: 1つのプレイリストの中だけから選びます。プレイリストはPlaylistの一覧で選びます。
- Artist: 1人のアーティストの周辺を探します。アーティストはArtist欄に入力します。
- Any Spotify: 場面に合うときは、DJにSpotify検索を使わせます。
YouTubeの設定
YouTubeモードには、無料のYouTube Data APIキーが必要です。APIキーとは、Marinaraが代わりにサービスを使えるようにする秘密の文字列です。YouTubeへのログインもPremiumも必要ありません。
- Music DJの編集画面で、YouTube Connectionを探します。
- アプリのリンクからGoogle Cloud Consoleを開き、プロジェクトを作成するか、既存のものを選びます。
- YouTube Data API v3を有効にします。
- Credentials、Create credentials、API keyの順に進みます。
- キーをYouTube Data API Keyに貼り付けます。
- Save Key(キーの保存)をクリックします。ボタンの表示がUpdate Keyに変わり、緑色の「API key configured」のバッジが表示されます。Removeを押すと、キーが削除されます。
キーには制限をかけないままにするか、APIによる制限だけをかけてYouTube Data API v3に限定してください。HTTPリファラーによる制限はかけないでください。検索はサーバー側で実行されるため、リファラー制限をかけると検索が通らなくなります。アプリの説明によると、無料のクォータ(1日に約100回の検索)は個人のDJには十分です。この数値はアプリの表示によるもので、変わる可能性があります。キーはサーバーに暗号化して保管されます。
自分の音楽ファイルを使う
Customモードでは、Marinaraを動かしているコンピューターの音声ファイルを再生します。対応する形式は.mp3、.ogg、.wav、.flac、.m4a、.aac、.webmです。
Music DJの編集画面で、Custom Music Libraryを探します。ここにはUse Game Assets music folderというスイッチが1つあります。
- On(オン): CustomモードはGame Assetsにアップロードした音声を読み込みます。Game Assetsは、Game Mode用のMarinaraの素材ライブラリーです。Game Assets music folderでフォルダーを指定します。ライブラリー全体なら
music、サブフォルダーならmusic/combatのように入力します。Open Folderを押すと、サーバーのコンピューター上でそのフォルダーが開きます。 - Off(オフ): Customモードはサーバーのデバイス上のフォルダーを読み込みます。Select Folderを押すと、サーバーのコンピューターでフォルダー選択画面が開きます。Music folder on this deviceにパスを貼り付けてもかまいません。
RoleplayとGameの設定には、同じソースが表示されます。サーバーのデバイス上のフォルダーを選んだ場合は、チャットのMusic DJの設定に、そのパスとChoose Folderボタンが表示されます。
Game Assetsの外にあるフォルダーから再生するには、サーバー上でのローカルアクセスが必要です。ログインや管理用のシークレットなしで別のデバイスから使っている場合、この機能はブロックされることがあります。リモートアクセス: ログインとIP許可リストを参照してください。
音楽プレイヤーの使い方
Music Playerは、デスクトップでは上部バーの小さなバッジ、モバイルではドラッグできるウィジェットです。表示と非表示を切り替えるには、Settings → General → App Behavior(設定 → 一般 → アプリの動作)を開き、Music Playerをオンまたはオフにします。デフォルトではオンです。オンの状態でMusic DJをインストールしていないと、プレイヤーの表示はDownload Music DJ Agent to configureになり、Agent Organizerボタンが表示されます。
新しいプロファイルでは、ソースは最初YouTubeになっています。ソースは、プレイヤーの丸いソース切り替えボタン(ツールチップは「Switch to ... player」)、編集画面のMusic Playerのボタン、チャットのMusic DJ設定のどれかで変更できます。
プレイヤーには、曲のカバー画像またはサムネイル、タイトル、アーティスト名またはチャンネル名が表示されます。操作できる内容は、ソースによって変わります。
- Spotify: シャッフル、Previous、再生と一時停止、Next、リピート、ミュート付きの音量、DJ、ノート型コンピューターのアイコンのMarinara playerボタン、Music DJ setupの歯車。Spotifyが接続されていないときは、プレイヤーに「Spotify not connected」と表示され、タップするとMusic DJ setupが開きます。
- YouTube: 再生と一時停止、16:9の小さな動画パネルを開く矢印、Stop、ミュート付きの音量。
- Custom: 再生と一時停止、音量。
DJ Mari: AIによるプレイリスト作成
SpotifyのミニプレイヤーにあるDJボタン(「DJ Mari composes a playlist for you!」)は、テーマに沿ったプレイリストを作ります。DJ Mariは、ペルソナ、いちばんよく使うキャラクター、すべてのチャットの最近のやり取りをもとに、接続済みのAIモデルにプレイリストを作らせます。見つかった曲は、「DJ Mari」と当日の日付を組み合わせた名前の新しいSpotifyプレイリストに追加され、再生が始まります。
必要なものは2つです。
- Music DJエージェントにモデルが割り当てられていること。割り当てがないと、「Configure a model connection on the Music DJ agent before using DJ Mari.」と表示されます。AIプロバイダーへの接続を参照してください。
- 一致するSpotifyの曲が少なくとも25曲あること。選ぶのは最大50曲です。25曲に満たない場合は、Liked Songsを増やしてからやり直すよう案内されます。
成功すると、「DJ Mari playlist is ready」とOpen playlistボタンが表示されます。
Game ModeでのMusic DJ
Game Modeには、Game Assetsを使った独自の背景音楽があります。代わりにMusic DJを使うには、Gameの設定でMusic DJトグル(「Use the Music DJ for this game instead of local music assets」)をオンにします。デフォルトではオフです。オンにすると、Roleplayと同じSpotify、YouTube、Customの選択肢と設定欄が使えます。
Spotifyの場合は、シーンのたびに、サーバーが選んだソースから実在する候補曲の短いリストを作り、AIがその中から1曲を選びます。これにより、AIが存在しない曲を作り出すことを防ぎます。Game Modeでは、一度に1曲をループ再生します。現在のシーンの曲を選び直すには、Game controls(ゲームの操作)を開き、Retry Music DJを選びます。Gameの操作を参照してください。
ConversationのMusicコマンド
Conversationでは、Music DJをエージェントとして追加できません。代わりに、キャラクターがMusicコマンドで曲を流します。
- チャットのCommands(コマンド)セクションを開き、親となるCommandsトグルをオンにします。
- Music(「Let characters play songs through the active Music Player」)をオンにします。
これで、キャラクターはSpotify向けに曲名を挙げたり、YouTube向けに曲の雰囲気を書いたりでき、Marinaraが有効なソースで再生します。Music DJをどこでも有効にしていなくても動きます。必要なのは、Spotifyの接続か、保存済みのYouTubeキーだけです。Spotifyが接続されていない場合や再生の権限がない場合、Spotify向けの曲コマンドは何も起こさず、エラーも表示しません。
トラブルシューティング
- ミニプレイヤーが見当たらない: Settings → General → App Behavior(設定 → 一般 → アプリの動作)でMusic Playerをオンにします。
- Spotifyで何も再生されない: 再生にはSpotify Premiumと、動作中のSpotifyデバイスが必要です。どれかのデバイスでデスクトップアプリを開くか、デスクトップでEnable Marinara playerをクリックします。
- 別のコンピューターでSpotifyのログインウィンドウが失敗する: 「Browser couldn't reach the callback?」の貼り付けボックスを使うか、サーバーに
SPOTIFY_REDIRECT_URIを設定します。 - YouTubeの検索が失敗する: プロジェクトでYouTube Data API v3が有効になっていること、キーにHTTPリファラー制限がかかっていないことを確認します。1日のクォータに達した場合は、翌日にやり直すか、別のキーを使います。
- リモートアクセスで、デバイスのフォルダーからCustomの音楽が再生されない: そのフォルダーには、サーバー上でのローカルアクセスが必要です。リモートアクセス: ログインとIP許可リストを参照してください。
- Conversationでキャラクターの曲コマンドが効かない: Spotifyを接続するかYouTubeキーを保存し、CommandsとMusicのトグルがオンになっていることを確認します。
関連ガイド
- ダウンロードできるエージェント一覧
- エージェント: チャットを支えるAIヘルパー
- AIプロバイダーへの接続
- ゲームアセット
- Conversationモード: はじめに