タイムタグ規格ルビ拡張規格仕様書

最終更新:2020/11/22

タイムタグ規格にはルビに関する定めがなく、ルビを振ることができません。ルビを振りたい場合は、「薔薇(ばら)」のように、括弧付きでルビを表記するなどの代替策が取られていますが、ルールやフォーマットが各ソフトウェアによってまちまちであり、このような状況は、必ずしもよいこととは言えません。

そこで本書では、タイムタグ規格に完全に準拠した上で、ルビ表示に関する拡張規格をとりまとめ、ルビを扱えるようにしています。今後は、なるべく多くのソフトが本仕様に準拠することによって、各ソフト間での矛盾がなくなっていくことを期待します。

本仕様書配布場所:http://shinta0806be.ldblog.jp/archives/9458917.html


目次

  1. ルビの記述方法
  2. ルビの記述例
  3. プレーヤーでの表示方法
  4. ルビへのタイムタグの埋め込み
  5. 必須部分とオプション部分

ルビの記述方法

大前提として、ルビ以外の部分についてはタイムタグ規格に準拠します。ルビの部分のみを拡張します。

ルビは @ タグで指定します。書式は次の通りです。

書式 @RubyX=ルビ対象(漢字等),ルビ(読みがな)【省略可】,適用開始時刻【省略可】,適用終了時刻【省略可】

ルビの記述例

@Ruby1=為替,かわせ,,[01:00:00]
@Ruby2=為替,カワセ,[01:00:00],[02:00:00]
@Ruby3=為替,,[02:00:00]

プレーヤーでの表示方法

指定されたルビを実際にどのように表示するかは、本拡張規格では定義せずに、個々のプレーヤーに任せるものとします。

とはいえ、一般的には、通常のカラオケと同じように表示するのが自然でしょう。すなわち、漢字(などのルビ対象)の真上に、漢字よりも小さい文字でルビを振ります。ルビのワイプは、漢字と同じタイミングで行います。例として、以下の歌詞ファイルでのルビ表示を考えてみます。

サンプル @Ruby1=為替,かわせ
[00:01:00]本日の[00:10:00]為替[00:12:00]レート[00:20:00]

ルビを均等割り付けすることにすると、「本日の為替レート」という歌詞のうち、「為替」の真上にルビである「かわせ」を均等に配置します。「か」を「為」の上あたり、「わ」を「為」と「替」の間、「せ」を「替」の上あたりに配置します。

ワイプは、10 秒の時点から「為」のワイプが始まり、同時にルビの「か」のワイプも始まります。11 秒の時点では、「為」のワイプがちょうど終わったところで、ルビの方は、「か」のワイプが終わり、「わ」のワイプが半分終わったところになります。12 秒の時点で、「替」のワイプが終わり、ルビの方は「わ」の残り半分と「せ」のワイプが終わります。


ルビへのタイムタグの埋め込み

本規格では、ルビにタイムタグを埋め込むことも可能とします。これにより、より細かなワイプの制御が可能です。

ルビに埋め込まれたタイムタグは、歌詞中で指定されている時刻からの相対時刻とし、歌詞中で指定されている時刻との逆転現象を発生させないように指定するものとします。時刻の逆転現象が発生した場合のプレーヤーの動作は不定です。

例として、以下の歌詞ファイルでのルビ表示を考えてみます。先ほどの例とほとんど同じですが、ルビにタイムタグが埋め込まれています。

サンプル @Ruby1=為替,か[00:00:50]わ[00:01:00]せ
[00:01:00]本日の[00:10:00]為替[00:12:00]レート[00:20:00]

ワイプは、10 秒の時点から「為」のワイプが始まり、同時にルビの「か」のワイプも始まります。今回はルビにタイムタグが埋め込まれているので、「か」のワイプが始まってから [00:00:50] 秒後、すなわち、10.50 秒の時点で「か」のワイプが終わります。一般的なプレーヤーでは、ルビと漢字のワイプ位置は揃えられていますから、10.50 秒の時点では、漢字の方は「為」の途中までワイプが終わっていることでしょう。同様にして、11 秒の時点で「わ」のワイプが終わり、12 秒の時点で「せ」のワイプが終わります。「かわ」が早くワイプされ、「せ」が遅くワイプされる感じですね。

ここで例えば、ルビ中のタイムタグを「か[00:00:50]わ[00:03:00]せ」のように指定してしまうと、ルビのワイプとしては 13 秒の時点でようやく「せ」のワイプが始まるのに対し、歌詞は次の「レート」のワイプが 12 秒の時点で始まり、逆転現象が発生します。逆転現象が発生するようなタイムタグの埋め込みは行わないで下さい。


必須部分とオプション部分

以上がルビ拡張規格の内容ですが、ルビ拡張規格を「必須部分」と「オプション部分」に区別することとします。

「必須部分」は、ルビ拡張規格に対応するプレーヤーを開発する際に、必ずサポートしなければならない部分です。「必須部分」は次の部分です。

「オプション部分」は、ルビ拡張規格に対応するプレーヤーを開発する際に、必ずしもサポートしなくても良い部分です。もちろん、サポートが可能であれば、積極的にサポートして下さい。「オプション部分」は次の部分です。