このページでは、初音ミク「マジカルミライ」史上初めて開催されたプログラミング・コンテストについて紹介しています。コンテストでは、TextAlive App APIを使って開発したリリックアプリが募集され、10作品が入選しました。さらにミクナビのユーザー投票を踏まえ、優秀賞と奨励賞3件が決定しました。
応募作品は、その多くがオープンソース公開されています。プログラミングの力で創作文化に参加しましょう!
初音ミク「マジカルミライ 2020」プログラミング・コンテスト 公式サイトには入選10作品のご紹介が掲載されています。こちらでは、一般公開された応募作をすべてご紹介します。ぜひ試してみて、参考にして、新しいリリックアプリを作ってみてください!
TextAlive App API は 2020/9/18 に一般公開された、音楽に合わせてタイミングよく歌詞が動くWebアプリケーション(リリックアプリ)を開発できるJavaScript用のライブラリです。
初音ミク「マジカルミライ 2020」では、このAPIを使って、マジカルミライ テーマ曲にあわせて魅力的に動く歌詞などの映像演出をプログラミングするコンテストを初めて開催しました!
審査の結果決定した入選作品、入賞作品を紹介するマジカルミライ企画展ステージの模様は、YouTubeでアーカイブ配信されています。ぜひ当日の熱気を体感してみてください。
初音ミク「マジカルミライ 2020」 in OSAKA 企画展ステージ(2020/11/28 13:00-14:00) では、リリックアプリの概要と、応募作全31作品から入選した10作品などをご紹介しました。コンテストの概要紹介は 22:00 から、入選作品の紹介は 26:00 からです。
入選作品紹介ページへ初音ミク「マジカルミライ 2020」 in TOKYO 企画展ステージ(2020/12/18 15:00-16:00) では、リリックアプリの特徴をかいつまんで紹介し、優秀賞に加え急遽用意した奨励賞3作品などをご紹介しました。コンテストの紹介は 20:00 からです。
入賞作品紹介ページへ応募方法や応募のきまり、リリックアプリの作り方の概要は、YouTube動画「リリックアプリ開発ことはじめ」(ニコニコ動画)と公式サイトをご覧ください。
このページ下部の「作品応募に向けて」もぜひ参考にしてみてください。
TextAlive App API を使うと、Web上で公開されている楽曲と歌詞を利用して、タイミングよく歌詞が動くWebアプリケーションを開発できます。楽曲と歌詞はいずれもURLが TextAlive サービスサイトに登録されている必要がありますが、コンテスト参加者のみなさまは心配ご無用です。
コンテストの対象となる課題曲は 3 曲とも TextAlive への登録が済んでおり、API上で楽曲のURL(いずれもYouTubeのURLです)を指定すれば、それと紐づいた歌詞(いずれもピアプロのURLです)が自動的に読み込まれるので、すぐに演出をプログラミングできます。
APIを使うと、例えば次のようなリリックアプリが作れます。
TextAlive App API は script
タグでWebサイトに読み込んだり、 npm パッケージ textalive-app-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";
プログラミング・コンテストはクリプトン・フューチャー・メディア株式会社が主催し、産業技術総合研究所(産総研) OngaACCELプロジェクトが協力しています。基本的な情報やお問い合わせ先は 公式サイト をご覧ください。ここでは、作品応募に向けて、技術面でのポイントをご紹介します。
プログラミング・コンテストへ作品を応募するには、作品のソースコードをソーシャルコーディングプラットフォーム「 GitHub」上にアップロードする必要があります。また、主催者による審査が終わるまで他の人に作品のソースコードが見られないようにするため、「プライベートリポジトリ」を作成する必要があります。
詳しい方法は Web 検索 で見つかるチュートリアルを参考にしてみてください。
主催者による審査は、 GitHubからダウンロードしたソースコードを実際のWebアプリケーションとして動作させて行われます。また、入選作品は主催者のWebサーバなどに配置され、一般に公開されてユーザ投票が行われ、入賞を競うことになります。
こうしたことから、今回、応募作品はHTTPサーバ上に設置するだけで動作する静的アプリケーションに限られています。
しかしながら、一般的なWebブラウザで動作するものであればよいので、さまざまなライブラリと組み合わせて開発して構いません。例えば、three.js、PixiJS、p5jsのように、映像演出に便利なライブラリは凝ったことをしようとすればほとんど必須かもしれません。
ネットワーク接続を前提としてよいので、Web APIの類を活用してもよいでしょう。Web標準に則ってデバイスのハードウェアを活用するAPIを使っても面白いかもしれません。詳しい条件は今後公式サイトに掲載されるFAQを参照してください。それでも疑問が解消しない場合は、公式サイトに掲載された問い合わせ先にお問い合わせください。
createFromSongUrl
メソッド呼び出し部分のコメントを解除してください。)createFromSongUrl
の第2引数は楽曲に関する情報のバージョン番号を固定するためのもので、必須ではありません。この引数がない場合、審査ではコンテスト応募時点での最新バージョンが使われる予定です。応募者の開発環境での動作と合わせるため、審査時点ではなく応募時点での最新バージョンとしています。バージョンの固定について詳しくは チュートリアル「楽曲情報の活用」ページのTips をご覧ください。player.addListener({onAppReady: (app) => {if (!app.managed) {// グリーンライツ・セレナーデ / Omoi feat. 初音ミク// - 初音ミク「マジカルミライ 2018」テーマソング// - 楽曲: http://www.youtube.com/watch?v=XSLhsjepelI// - 歌詞: https://piapro.jp/t/61Y2// player.createFromSongUrl("http://www.youtube.com/watch?v=XSLhsjepelI", {// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/1249410/history// beatId: 3818919,// chordId: 1207328,// repetitiveSegmentId: 1942131,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/www.youtube.com%2Fwatch%3Fv%3DXSLhsjepelI// lyricId: 50145,// lyricDiffId: 3168// }// });// ブレス・ユア・ブレス / 和田たけあき feat. 初音ミク// - 初音ミク「マジカルミライ 2019」テーマソング// - 楽曲: http://www.youtube.com/watch?v=a-Nf3QUFkOU// - 歌詞: https://piapro.jp/t/Ytwu// player.createFromSongUrl("http://www.youtube.com/watch?v=a-Nf3QUFkOU", {// video: {// // 音楽地図訂正履歴: https://songle.jp/songs/1688650/history// beatId: 3818481,// chordId: 1546157,// repetitiveSegmentId: 1942135,// // 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/www.youtube.com%2Fwatch%3Fv=a-Nf3QUFkOU// lyricId: 50146,// lyricDiffId: 3143// }// });// 愛されなくても君がいる / ピノキオピー feat. 初音ミク// - 初音ミク「マジカルミライ 2020」テーマソング// - 楽曲: http://www.youtube.com/watch?v=ygY2qObZv24// - 歌詞: https://piapro.jp/t/PLR7player.createFromSongUrl("http://www.youtube.com/watch?v=ygY2qObZv24", {video: {// 音楽地図訂正履歴: https://songle.jp/songs/1977449/historybeatId: 3818852,chordId: 1955797,repetitiveSegmentId: 1942043,// 歌詞タイミング訂正履歴: https://textalive.jp/lyrics/www.youtube.com%2Fwatch%3Fv=ygY2qObZv24lyricId: 50150,lyricDiffId: 3158}});}}});
応募フォームに記入できるアピールはプレーンテキストのみで情報量が限られていますが、リポジトリに配置できるREADMEは自由に編集可能で、画像ファイルを貼り込んだりすることもできます。
サンプルコードのREADME のようにWebアプリケーションのビルド、実行手順を書くことはもちろん必要ですが、開発した作品の魅力をアピールできるチャンスとしても、ぜひ活用してください。
審査に際しては極力READMEファイルなどを見ながらWebアプリケーションを応募者の意図通り動作させようと試みますが、それでも応募者の環境で動いていたものが動かなくなってしまうことはありえます。
そのような場合の保険として、また、作品のアピールのため、応募時にはデモ動画のURLを入力することをおすすめします。 動画撮影には、macOSの標準機能やWindows 10の標準機能が使えます。詳しくは Webで検索 してみてください。
なお、審査自体は原則として作品そのものを対象として行われるため、デモ動画のURL入力は必須ではありませんのでご注意ください。
TextAliveは、産業技術総合研究所メディアインタラクション研究グループが研究開発しており、学術研究目的で公開しながら実証実験中です。
本研究はWeb上にコンテンツを公開されている多くの方々によってはじめて可能になったプロジェクトであり、Webを前提としたコンテンツ制作の可能性を追求しています。