タグを指定することにより、複数のルビを定義することができます。タグを複数指定することはできないので、連番を振ることにより重複を避けています。連番は途中で飛んではいけません。なっている定義は規格違反です。読み込まれない場合があります。上限は無いので、いくつでもルビを定義することができます。ルビ対象には、ルビを振りたい漢字や英語などを指定します。ルビには、漢字や英語などの読みがなを指定します。ルビを省略した場合は、ルビ対象に対応するルビを取り消すことになります。ルビを省略し、適用開始時刻や適用終了時刻を付与する場合、区切りのカンマは省略できません。適用開始時刻はタイムタグで指定し、この時刻以降に登場するルビ対象に対してルビを振るものとします。タイムタグは秒単位タイムタグ、拡張タイムタグのどちらでも構いません。指定されたものとします。適用開始時刻を省略し、適用終了時刻を付与する場合、区切りのカンマは省略できません。適用終了時刻はタイムタグで指定し、この時刻未満に登場するルビ対象に対してルビを振るものとします。タイムタグは秒単位タイムタグ、拡張タイムタグのどちらでも構いません。補正を受けるものとします。区切りのカンマは必ず半角でなくてはなりません。分未満に表示される「為替」に対し、「かわせ」というルビを振ります。分未満に表示される「為替」に対し、「カワセ」というルビを振ります。分以降に表示される「為替」に対しては、ルビは振りません。指定されたルビを実際にどのように表示するかは、本拡張規格では定義せずに、個々のプレーヤーに任せるものとします。いえ、一般的には、通常のカラオケと同じように表示するのが自然でしょう。漢字(などのルビ対象)の真上に、漢字よりも小さい文字でルビを振ります。ルビのワイプは、漢字と同じタイミングで行います。例として、以下の歌詞ファイルでのルビ表示を考えてみます。サンプル@Ruby1=為替,かわせ[00:01:00]本日の[00:10:00]為替[00:12:00]レート[00:20:00]ルビを均等割り付けすることにすると、「本日の為替レート」という歌詞のうち、「為替」の真上にルビである「かわせ」を均等に配置します。「か」を「為」の上あたり、「わ」を「為」と「替」の間、「せ」を「替」の上あたりに配置します。秒の時点から「為」のワイプが始まり、同時にルビの「か」のワイプも始まります。秒の時点では、「為」のワイプがちょうど終わったところで、ルビの方は、「か」のワイプが終わり、「わ」のワイプが半分終わったところになります。秒の時点で、「替」のワイプが終わり、ルビの方は「わ」の残り半分と「せ」のワイプが終わります。ルビへのタイムタグの埋め込み本規格では、ルビにタイムタグを埋め込むことも可能とします。これにより、より細かなワイプの制御が可能です。ルビに埋め込まれたタイムタグは、歌詞中で指定されている時刻からの相対時刻とし、歌詞中で指定されている時刻との逆転現象を発生させないように指定するものとします。時刻の逆転現象が発生した場合のプレーヤーの動作は不定です。例として、以下の歌詞ファイルでのルビ表示を考えてみます。先ほどの例とほとんど同じですが、ルビにタイムタグが埋め込まれています。秒の時点から「為」のワイプが始まり、同時にルビの「か」のワイプも始まります。秒の時点で「か」のワイプが終わります。秒の時点では、漢字の方は「為」の途中までワイプが終わっていることでしょう。秒の時点で「せ」のワイプが終わります。「かわ」が早くワイプされ、「せ」が遅くワイプされる感じですね。秒の時点で始まり、逆転現象が発生します。逆転現象が発生するようなタイムタグの埋め込みは行わないで下さい。以上がルビ拡張規格の内容ですが、ルビ拡張規格を「必須部分」と「オプション部分」に区別することとします。「必須部分」は、ルビ拡張規格に対応するプレーヤーを開発する際に、必ずサポートしなければならない部分です。「必須部分」は次の部分です。「ルビ対象(漢字等)」の指定。「ルビ(読みがな)」の指定。ルビ中のタイムタグ埋め込みは必須としないが、埋め込まれているタイムタグを正しく無視できるようにすること。「オプション部分」は、ルビ拡張規格に対応するプレーヤーを開発する際に、必ずしもサポートしなくても良い部分です。サポートが可能であれば、積極的にサポートして下さい。ルビへのタイムタグの埋め込み。本拡張規格の特徴ルビ拡張規格の策定に当たり、いくつかの方式を検討しましたが、最終的に上記の仕様といたしました。ここでは、備忘録の意味も込め、本拡張規格の策定経緯や、本拡張規格の利点などを記します。タグで指定するようにしたのは、ルビの指定による副作用を排除するためです。一般的にルビを表記する方法として用いられている、括弧でルビを指定するという仕様も検討しました。「本日の為替(かわせ)レート」というように、歌詞に直接ルビを書き込む表記です。この方法は一般的なので、歌詞ファイルの流用がしやすい(修正しなくてもルビ表示ができる)という利点があります。コーラスを括弧でくくる場合もあるなど、括弧はよく使われる文字なので、ルビ以外の文字もルビとして扱われてしまうという副作用があり、悪影響もまた大きくなります。それと、ルビ対象の文字がどこなのかが特定しづらいという問題もあります。このため、採用を見送りました。それでは括弧よりも使用頻度の少ない文字で、ルビ対象もきちんと表記すればどうかということで、「本日の{為替|かわせ}レート」のような仕様も検討しました。そのまま表示されてしまい、使用頻度が少ないだけに違和感のある表示となってしまいます。タグが無視されるだけで、悪影響はありません。ルビ対応プレーヤーにおいても、ルビとルビ以外を混同する恐れがありません。ルビ対応プレーヤー開発時の手間という観点から見ても、歌詞解析ルーチンについては既存のものをそのまま使用できるという利点があります。指定できるようにしたのは、同じ漢字に複数のルビを振れるようにするためです。なんていう遠回しな指定方法ではなく、単純に、ルビが出てくる回数だけルビを指定すればよい、という考え方もあります。番なのか、そのうち数え間違えたりします。タイムタグで指定する方式であれば、漢字の近くにタイムタグがあるわけですから、間違えずに済みます。タグのみでルビを指定できます。適用開始時刻などはオプションなので、基本的には漢字とルビを指定するだけです。ルビの表示方法を各プレーヤーに任せることで、細かなオプションが不要となり、同時に、各プレーヤーにむやみな制約を課すことを防いでいます。上記の内容のうち、仕様に関する部分のみを、仕様書としてまとめて配布します。タイムタグ規格ルビ拡張規格仕様書ルビ拡張規格に対応したソフトウェアここでは、本拡張規格に対応したソフトウェアを紹介します。本拡張規格に対応したソフトウェアを開発された方は、ご連絡を頂ければ、ここに掲載させて頂きます。きのメディアプレーヤー。音楽だけではなく、動画(ムービー)に歌詞を合わせることも可能。カラオケタグエディタは歌詞のワイプ(色替え)をマウスで指定でき、タイミングを取りやすい。カラ(カラオケ字幕付きの楽曲動画)を手軽に作ることができるツール。プレビューでビジュアルに出来映えを確認しながら、ニコカラを作成できる。リズムゲーム感覚でリズミカルにタイムタグ付き歌詞が作成できるタイムタグエディタ。歌詞ファイル終わりに最後までお読みいただきありがとうございました。ご不明な点などございましたら、お気軽にご連絡ください。よい規格のご提案や、実装時のテクニックなどございましたら、こちらもお寄せいただければと思います。サンプルデータを記載。仕様書部分を独立して公開。アドレス(URL)変更:内容は変更無し。