このページの本文へ

“すぐに再生スタート”できる独自の配信技術から、“秒間3万リクエスト”にも耐える強いインフラまで

「Nintendo Music」の裏側に技術と工夫 快適な“ゲーム音楽体験”を届けるために

2025年08月08日 16時15分更新

文● 福澤陽介/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

独自の技法で“ゲーム音楽らしく、快適な”再生体験

 Nintendo Musicでは、ここまで紹介した3つのコンポーネントを使って、独自の仕様を持つ音楽配信サービスを実現している。まずは、“ゲーム音楽らしい”音楽体験を提供する、独自の「ながさチェンジ」機能だ。

 ながさチェンジ機能は、単純なループ再生ではなく、「楽曲をつなぎ目なく再生し続けて」、なおかつ「ユーザー自身が再生時間を設定できる」仕組みが求められた。

 特に、楽曲のつなぎ目で発生する音のひずみやノイズを解消するために様々な技術的アプローチがとられており、最終的にはOSごとに実装を変えることで解決している。

 Androidでは、Media SDK内部で、単一の楽曲ファイルをイントロ・メイン・アウトロという3つのパートに論理分割している。これを使って「イントロ→メイン→メイン→メイン……」と、メインパートをループするようにつなぎ合わせることで、滑らかな再生を実現した。

Androidの場合

 一方、iOSでは、Media Pipelineでイントロ+メイン、メイン、アウトロという、3つのパートに分割した楽曲ファイルを作成し、「イントロ+メイン→メイン→メイン→メイン……」とつなぎ合わせている。「Androidのようにイントロからではなく、イントロ+メインから始めているのは、イントロが短い楽曲でノイズが発生することがあったため」と相馬氏。

iOSの場合

 このように、あらかじめ楽曲をパートに分割し、同じパートを繰り返し再生する方式を採用することで、一定のデータ量で長時間再生することができ、通信量の大幅な削減を達成している。ただし、OSやプレイヤーのアップデートで影響を受ける可能性もあるため、ノイズなく再生できているかどうかを自動検証するシステムも構築中だという。

パートを繰り返す方式で通信量を大幅削減

 Nintendo Musicは、選ばれた楽曲の再生がすぐに始まるようにして、「ユーザーに待たせない」仕組みも備えている。「様々な年代のゲーム音楽やプレイリストを聞いてもらい、“新しいゲーム音楽”を発見してもらうというコンセプトがある。そのため、楽曲が流れるまでの時間を短縮する取り組みは非常に重要」(相馬氏)

 この仕組みでは3つの工夫を凝らしている。ひとつ目は、「Media Serverでのキャッシュとプリフェッチ」の実装だ。キャッシュに関しては、後述するAPI側と同様の戦略をとっており、ここではプリフェッチについて説明する。

 ストリーミングで配信されるメディアファイルは、複数のファイルで構成されており、取得する順番もあらかじめ決まっている。最初にプレイリストがあり、各音質のマニフェスト、ユニット、セグメントファイルと続く形だ。これらの取得するファイルを事前にCDNに配置する(読み込ませる)ことで、再生開始を高速化するのがプリフェッチの仕組みとなる。

Media Serverにおけるプリフェッチの仕組み

 2つ目は、「Media SDKでのプリフェッチ」だ。これは楽曲再生に必要な準備を事前に処理する仕組みとなる。具体的には、プレイヤーインスタンスやライセンス、メディアファイルの準備を先行して実施。現在は、画面内で表示されている楽曲と再生キューに入っている楽曲をプリフェッチの対象としている。

Media SDKでのプリフェッチ

 3つ目は、「データ復号処理の改善」だ。DRMで暗号化されたメディアファイルは、復号処理を行わないと再生できないため、再生開始が遅れる原因になる。そこで、楽曲冒頭部分の暗号化方式を変え、冒頭部分を再生しながら後続部分の復号処理を並行させることで高速化を図った。

 具体的には、Androidでは楽曲の冒頭のみ暗号化しないセグメントを作成する方式を、iOSでは楽曲冒頭のセグメントのみ共通鍵で暗号化する方式をとっている。OSごとに実装を変えているのは、プレイヤー内部でデコーダーがリセットされるきっかけが異なり、冒頭セグメントからの切り替わりでノイズが発生してしまうからだ。

データ復号処理の改善

 こうした3つの工夫によって、再生開始を約3倍高速化することに成功した。特に効果があったのは、Androidにおけるデータ復号処理の改善だという。

再生高速化の結果

 Nintendo Musicでは、リリース後も継続して再生体験を改善していく仕組みを構築している。例えば、同意を得たユーザーから、利用状況を示す各種メトリックスデータをSDKで収集し、BigQueryで分析している。

 “快適な再生体験”の指標としているのは、「再生開始までの時間(平均値・中央値)」から「Media SDKのエラー発生率」、「再バッファリングにより再生が停止した時間や頻度」などだ。これらの指標は毎週、さらにアプリやOSのバージョンアップのタイミングでチェックしている。

カテゴリートップへ

  • 角川アスキー総合研究所