このページでは、初音ミク「マジカルミライ」で開催されるプログラミング・コンテストについて紹介しています。コンテストでは、TextAlive App APIを使って開発したリリックアプリが募集され、10作品が入選しました。さらにミクナビのユーザー投票を踏まえ、最優秀賞と優秀賞3件が決定しました。
応募作品は、その多くがオープンソース公開されています。プログラミングの力で創作文化に参加しましょう!
初音ミク「マジカルミライ 2021」プログラミング・コンテスト 公式サイトには入選10作品のご紹介が掲載されています。こちらでは、一般公開された応募作をご紹介します。ぜひ試してみて、参考にして、新しいリリックアプリを作ってみてください!
TextAlive App API は音楽に合わせてタイミングよく歌詞が動くWebアプリケーション(リリックアプリ)を開発できるJavaScript用のライブラリです。
初音ミク「マジカルミライ 2021」では、このAPIを使って、マジカルミライ 楽曲コンテストの採用作品6曲にあわせて魅力的に動く歌詞などの映像演出をプログラミングするコンテストが開催されました。昨年のコンテスト受賞作や一般公開されているアプリもぜひご覧ください。
審査の結果決定した入選作品、入賞作品を紹介するマジカルミライ企画展ステージの模様は、YouTubeでアーカイブ配信されています。ぜひ当日の熱気を体感してみてください。
初音ミク「マジカルミライ 2021」 in OSAKA 企画展ステージ(2021/10/23 15:30-16:30) では、TextAliveの概要と、応募作全20作品から入選10作品を紹介しました。コンテストの紹介は 30:35 から、入選作品紹介は 41:00 からです。
入選作品紹介ページへ初音ミク「マジカルミライ 2021」 in TOKYO 企画展ステージ(2021/11/05 16:00-17:00) では、TextAliveとリリックアプリの概要をかいつまんで紹介し、最優秀賞に加え優秀賞3作品を発表しました。受賞作品の発表は 24:20 からです。
入賞作品紹介ページへ応募方法や応募のきまり、リリックアプリの作り方の概要は、YouTube動画「TextAlive App API講座」をご覧ください。
このページ下部の「作品応募に向けて」もぜひ参考にしてみてください。
TextAlive App API を使うと、Web上で公開されている楽曲と歌詞を利用して、タイミングよく歌詞が動くWebアプリケーションを開発できます。楽曲と歌詞はいずれもURLが TextAlive サービスサイトに登録されている必要がありますが、コンテスト参加者のみなさまは心配ご無用です。
コンテストの対象となる課題曲は 6 曲とも TextAlive への登録が済んでおり、API上で楽曲のURL(いずれもYouTubeのURLです)を指定すれば、それと紐づいた歌詞(いずれもピアプロのURLです)が自動的に読み込まれるので、すぐに演出をプログラミングできます。
APIを使うと、例えば次のようなリリックアプリが作れます。
次の作例では、HTML/CSS/JSのリンクをクリックするとソースコードを見ることができます。「EDIT ON CODEPEN」をクリックすると、ソースコードを編集できます。(スマートフォンでは動作しないので、パソコンで試してみてください。) もっと作例を見たいときは「サンプルコード」をご覧ください。
TextAlive App API は script
タグでWebサイトに読み込んだり、 npm パッケージ textalive-app-api
をインストールすることで使えるようになります。 API の呼び出しには「開発者登録」 で入手できるアプリトークンが必要となります。詳しい使い方は「TextAlive App API チュートリアル」をご覧ください。
TextAlive App APIについて技術的に分からないことやバグ報告などがあれば、GitHub IssuesまたはGitter Chatまでお願いいたします。
<script src="https://unpkg.com/axios/dist/axios.min.js"></script><script src="https://unpkg.com/textalive-app-api/dist/index.js"></script><script>const { Player } = TextAliveApp;</script>
npm install textalive-app-api
import { Player } from "textalive-app-api";
プログラミング・コンテストはクリプトン・フューチャー・メディア株式会社が主催し、産業技術総合研究所(産総研) RecMusプロジェクトが協力しています。基本的な情報やお問い合わせ先は 公式サイト をご覧ください。ここでは、作品応募に向けて、技術面でのポイントをご紹介します。
プログラミング・コンテストへ作品を応募するには、作品のソースコードをソーシャルコーディングプラットフォーム「 GitHub」上にアップロードする必要があります。また、主催者による審査が終わるまで他の人に作品のソースコードが見られないようにするため、「プライベートリポジトリ」を作成する必要があります。
詳しい方法は Web 検索 で見つかるチュートリアルを参考にしてみてください。
主催者による審査は、 GitHubからダウンロードしたソースコードを実際のWebアプリケーションとして動作させて行われます。また、入選作品は主催者のWebサーバなどに配置され、一般に公開されてユーザ投票が行われ、入賞を競うことになります。
こうしたことから、今回、応募作品はHTTPサーバ上に設置するだけで動作する静的アプリケーションに限られています。
しかしながら、一般的なWebブラウザで動作するものであればよいので、さまざまなライブラリと組み合わせて開発して構いません。例えば、three.js、PixiJS、p5jsのように、映像演出に便利なライブラリは凝ったことをしようとすればほとんど必須かもしれません。
ネットワーク接続を前提としてよいので、Web APIの類を活用してもよいでしょう。Web標準に則ってデバイスのハードウェアを活用するAPIを使っても面白いかもしれません。
応募フォームに記入できるアピールはプレーンテキストのみで情報量が限られていますが、リポジトリに配置できるREADMEは自由に編集可能で、画像ファイルを貼り込んだりすることもできます。
サンプルコードのREADME のようにWebアプリケーションのビルド、実行手順を書くことはもちろん必要ですが、開発した作品の魅力をアピールできるチャンスとしても、ぜひ活用してください。
審査に際しては極力READMEファイルなどを見ながらWebアプリケーションを応募者の意図通り動作させようと試みますが、それでも応募者の環境で動いていたものが動かなくなってしまうことはありえます。
そのような場合の保険として、また、作品のアピールのため、応募時にはWebアプリケーションを設置したサイトのURLとデモ動画のURLを入力することをおすすめします。 動画撮影には、macOSの標準機能やWindows 10の標準機能が使えます。詳しくは Webで検索 してみてください。
なお、審査自体は原則として作品そのものを対象として行われるため、デモ動画のURL入力は必須ではありませんのでご注意ください。
審査対象の楽曲は、歌詞タイミングやサビのタイミングが固定されるように、Webアプリケーションの中で以下のように指定しておいてください。(審査希望の楽曲に関する createFromSongUrl
メソッド呼び出し部分のコメントを解除してください。)
バージョンの固定について詳しくは チュートリアル「楽曲情報の活用」ページのTips をご覧ください。
player.addListener({onAppReady: (app) => {if (!app.managed) {// ---// // blues / First Note// // https://piapro.jp/t/FDb1/20210213190029//// player.createFromSongUrl("https://piapro.jp/t/FDb1/20210213190029", {// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/2121525/history// beatId: 3996956,// chordId: 2130399,// repetitiveSegmentId: 2099561,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/piapro.jp%2Ft%2FFDb1%2F20210213190029// lyricId: 52065,// lyricDiffId: 5093,// },// });//// // ---// // chiquewa / Freedom!//// player.createFromSongUrl("https://piapro.jp/t/N--x/20210204215604", {// // YouTube: https://www.youtube.com/watch?v=pAaD4Hta0ns// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/2121403/history// beatId: 3953761,// chordId: 2130375,// repetitiveSegmentId: 2099586,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/piapro.jp%2Ft%2FN--x%2F20210204215604// lyricId: 52094,// lyricDiffId: 5171,// },// });//// // ---// // ラテルネ / その心に灯る色は//// player.createFromSongUrl("http://www.youtube.com/watch?v=bMtYf3R0zhY", {// // ピアプロ: https://piapro.jp/t/FLj2/20210222225003// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/2121404/history// beatId: 3953902,// chordId: 2130383,// repetitiveSegmentId: 2099660,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/www.youtube.com%2Fwatch%3Fv=bMtYf3R0zhY// lyricId: 52093,// lyricDiffId: 5177,// },// });//// // ---// // 真島ゆろ / 嘘も本当も君だから//// player.createFromSongUrl("https://piapro.jp/t/YW_d/20210206123357", {// // YouTube: https://www.youtube.com/watch?v=Se89rQPp5tk// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/2121405/history// beatId: 3953908,// chordId: 2130374,// repetitiveSegmentId: 2099661,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/piapro.jp%2Ft%2FYW_d%2F20210206123357// lyricId: 52061,// lyricDiffId: 5123,// },// });//// // ---// // シロクマ消しゴム / 夏をなぞって//// player.createFromSongUrl("https://piapro.jp/t/R6EN/20210222075543", {// // YouTube: https://www.youtube.com/watch?v=3wbZUkPxHEg// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/2121406/history// beatId: 3953764,// chordId: 2130372,// repetitiveSegmentId: 2099662,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/piapro.jp%2Ft%2FR6EN%2F20210222075543// lyricId: 52062,// lyricDiffId: 5133,// },// });// ---// 濁茶 / 密かなる交信曲player.createFromSongUrl("http://www.youtube.com/watch?v=Ch4RQPG1Tmo", {video: {// 音楽地図訂正履歴: https://songle.jp/songs/2121407/historybeatId: 3953917,chordId: 2130385,repetitiveSegmentId: 2099665,// 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/www.youtube.com%2Fwatch%3Fv=Ch4RQPG1TmolyricId: 52063,lyricDiffId: 5149,},});}}});
TextAliveは、産業技術総合研究所メディアインタラクション研究グループが研究開発しており、学術研究目的で公開しながら実証実験中です。
本研究はWeb上にコンテンツを公開されている多くの方々によってはじめて可能になったプロジェクトであり、Webを前提としたコンテンツ制作の可能性を追求しています。