カスタム形式時間表示の書式設定について(2)

TypeTimeFormatの文字列アイテムは、
再生時間(現在の再生位置)・残り時間・総演奏時間のうち
複数の時間表示を1つのアイテムでまとめて表示できる文字列です。

PlayTimeFormatなどと同じく、
下の一覧表にある「識別子」や「特殊記号」を並べて記述していくことにより
再生時間・残り時間・総演奏時間それぞれの時間表示の形式・内容を自由に設定したり
任意の単語・文章を混合した時間表示を1つの文字列アイテムで作成することができます。

例えば『再生時間 / 総演奏時間』という表示を全て右に寄せて表示する場合、
再生時間・総演奏時間を個別のアイテムで作成すると
再生しているファイルによって文字列の幅(桁数)が変わることがあるので、
それぞれのアイテムの表示が被らないよう位置を調整して配置すると
(総演奏時間が時間まで表示されているときの長さに合わせた例)

上の画像のように、合計時間の左の余白が合計時間の文字列の長さに応じて広がってしまいますが、
TimeFormatで1つのアイテムとして作成すると

上の画像のように、余白の幅を固定することが可能になります。
ただし、TimeFormatを使用した場合、
再生時間などを個別のアイテムで作成したときよりも処理が重くなるので、
必要のない場面では使用しないようにしてください。

PlayTimeFormatなどとの違いは書式に使用する識別子(%Hour%など)の種類のみです。
以下の一覧表の通り、PlayTimeFormatなどで使用するものと同じ識別子の先頭に
PRTを追加したものを使用します。
P ~は再生時間、R ~は残り時間、T ~は総演奏時間を示します。

時間表示の書式は、以下のようにFormatStringキーに内容を記述して指定します。
[TimeText02]
Category = DynamicString
Type = TimeFormat
FormatString = "%PMinuteNF%:%PSecondZF% / %TMinuteNF%:%TSecondZF%"
PosX = 20
PosY = 20
Width = 150
Height = 20
Align = CenterLeft
FontFace = MS Pゴシック
AlternateFontFace = MS UI Gothic
FontSize = 15
TextColor = 0xFFFFFFFF
CrossFadeTime = 0


識別子・特殊記号の一覧表

識別子

  • 再生時間
識別子 表示内容 備考
%PHour% 再生時間の「時間」 【※1】
%PHourZ% 再生時間の「時間」 【※2】
%PHourF% 再生時間の「時間」 【※3】
%PHourZF% 再生時間の「時間」 【※4】
%PMinute% 再生時間の「分」(59分まで) 【※1】
%PMinuteZ% 再生時間の「分」(59分まで) 【※2】
%PMinuteF% 再生時間の「分」(59分まで) 【※3】
%PMinuteZF% 再生時間の「分」(59分まで) 【※4】
%PMinuteN% 再生時間の「分」(60分以上の表示が可能) 【※1】
%PMinuteNZ% 再生時間の「分」(60分以上の表示が可能) 【※2】
%PMinuteNF% 再生時間の「分」(60分以上の表示が可能) 【※3】
%PMinuteNZF% 再生時間の「分」(60分以上の表示が可能) 【※4】
%PSecond% 再生時間の「秒」 【※1】
%PSecondZ% 再生時間の「秒」 【※2】
%PSecondF% 再生時間の「秒」 【※3】
%PSecondZF% 再生時間の「秒」 【※4】
%PMilisecond% 再生時間の「ミリ秒」 【※1】
%PMilisecondZ% 再生時間の「ミリ秒」 【※2】
%PMilisecondF% 再生時間の「ミリ秒」 【※3】
%PMilisecondZF% 再生時間の「ミリ秒」 【※4】

  • 残り時間
識別子 表示内容 備考
%RHour% 残り時間の「時間」 【※1】
%RHourZ% 残り時間の「時間」 【※2】
%RHourF% 残り時間の「時間」 【※3】
%RHourZF% 残り時間の「時間」 【※4】
%RMinute% 残り時間の「分」(59分まで) 【※1】
%RMinuteZ% 残り時間の「分」(59分まで) 【※2】
%RMinuteF% 残り時間の「分」(59分まで) 【※3】
%RMinuteZF% 残り時間の「分」(59分まで) 【※4】
%RMinuteN% 残り時間の「分」(60分以上の表示が可能) 【※1】
%RMinuteNZ% 残り時間の「分」(60分以上の表示が可能) 【※2】
%RMinuteNF% 残り時間の「分」(60分以上の表示が可能) 【※3】
%RMinuteNZF% 残り時間の「分」(60分以上の表示が可能) 【※4】
%RSecond% 残り時間の「秒」 【※1】
%RSecondZ% 残り時間の「秒」 【※2】
%RSecondF% 残り時間の「秒」 【※3】
%RSecondZF% 残り時間の「秒」 【※4】
%RMilisecond% 残り時間の「ミリ秒」 【※1】
%RMilisecondZ% 残り時間の「ミリ秒」 【※2】
%RMilisecondF% 残り時間の「ミリ秒」 【※3】
%RMilisecondZF% 残り時間の「ミリ秒」 【※4】

  • 総演奏時間
識別子 表示内容 備考
%THour% 総演奏時間の「時間」 【※1】
%THourZ% 総演奏時間の「時間」 【※2】
%THourF% 総演奏時間の「時間」 【※3】
%THourZF% 総演奏時間の「時間」 【※4】
%TMinute% 総演奏時間の「分」(59分まで) 【※1】
%TMinuteZ% 総演奏時間の「分」(59分まで) 【※2】
%TMinuteF% 総演奏時間の「分」(59分まで) 【※3】
%TMinuteZF% 総演奏時間の「分」(59分まで) 【※4】
%TMinuteN% 総演奏時間の「分」(60分以上の表示が可能) 【※1】
%TMinuteNZ% 総演奏時間の「分」(60分以上の表示が可能) 【※2】
%TMinuteNF% 総演奏時間の「分」(60分以上の表示が可能) 【※3】
%TMinuteNZF% 総演奏時間の「分」(60分以上の表示が可能) 【※4】
%TSecond% 総演奏時間の「秒」 【※1】
%TSecondZ% 総演奏時間の「秒」 【※2】
%TSecondF% 総演奏時間の「秒」 【※3】
%TSecondZF% 総演奏時間の「秒」 【※4】
%TMilisecond% 総演奏時間の「ミリ秒」 【※1】
%TMilisecondZ% 総演奏時間の「ミリ秒」 【※2】
%TMilisecondF% 総演奏時間の「ミリ秒」 【※3】
%TMilisecondZF% 総演奏時間の「ミリ秒」 【※4】

識別子 表示内容 備考
%% % 記号 半角の「%」をそのまま表示します。

※1 末尾に何もついていない識別子
  • 0のときには空になります。
  • 1文字の場合、1桁のままで表示されます。

※2 末尾にZがついている識別子
  • 0のときには空になります。
  • 1文字の場合、先頭に0を追加し「01」のように2桁で表示します。

※3 末尾にFがついている識別子
  • 0のときには「0」と表示されます。
  • 1文字の場合、1桁のままで表示されます。

※4 末尾にZFがついている識別子
     末尾の「Z」と「F」の両方の特徴をもった識別子です。
  • 1文字の場合、先頭に0を追加し「01」のように2桁で表示します。
  • 0のときには「00」と表示されます。
    (『0のときに「0」が表示される』効果と
      『1文字表示の先頭に0を追加して2桁表示にする』効果が組み合わさっています)

表示例:
   末尾なし ~~Z ~~F ~~ZF
0 (非表示) (非表示) 0 00
1 1 01 1 01
10 10 10 10 10

特殊記号

特殊記号 内容 備考
%# 識別子との関連付けをリセット %# を挿入した部分の前後で文字列を区切ります。
%< 直前の識別子と関連付け %< を挿入した部分の前後で文字列を区切ります。
%< の記号が挿入された部分の直前の文字列は、
その文字列の直前にある識別子が空でないときだけ
(表示されているときだけ)表示されます。
%> 直後の識別子と関連付け %> を挿入した部分の前後で文字列を区切ります。
%> の記号が挿入された部分の直前の文字列は、
この %> 記号の直後の識別子が空でないときだけ
(表示されているときだけ)表示されます。


カスタム形式時間表示の書式の基本的な仕組み

基本的には「タイトル文字列の書式」と同じ仕組みです。
識別子は、フェイス上ではそれぞれの識別子に対応する時間表示に置き換わって表示されます。
特殊記号(%#%<%>)はフェイス上では表示されません。
(時間表示アイテムでは表示する場面はほとんどないとは思いますが、
 半角の%を表示したい場合は、%%と記述してください。)
文字列(識別子でも特殊記号でもない普通の単語・文章・記号。半角スペースも含む)は、
そのまま表示されます。

文字列の直後に特殊記号を記述することで文字列を区切ります。
特殊記号によって、隣接する識別子が空(※)かどうかで
文字列の表示・非表示を制御することも出来ます。(詳しくは下の項目で説明しています)
【※】末尾に何もない識別子か、末尾が~~Zのもので、「0」のとき

識別子か特殊記号で区切られた部分が文字列のひとかたまりになります。
再生時間 :%PHour%h%<%PMinute%m%<%PSecondF%s
例えば、このような書式の場合
  「再生時間 :」%PHour%「h」%<%PMinute%「m」%<%PSecondF%「s」
と分けられ、
時間が「1時間30分40秒」なら、
再生時間 :1h30m40s
「20分10秒」なら、
再生時間 :20m10s
のように表示されます。


特殊記号による文字列の表示制御

文字列の直後に記述した特殊記号によって、
文字列の前後にある識別子が空かどうかに連動して
文字列の表示・非表示を制御することができます。


直前の識別子と関連付け - 「%<」
%<は文字列を区切り、その文字列の直前の識別子が表示されているかどうかで
文字列の表示・非表示を決定します。
%PHour%:%<%PMinute%:%<%PSecondF%
  %PHour%「:」%<%PMinute%「:」%<%PSecondF%
%<をつけた文字列は、文字列の直前の識別子が空でないときだけ表示されます。
上の例の場合、%PHour%(時間)が空(=1時間未満)の場合、時間と分の間の「:」は表示されません。
1時間以上の場合のみ、時間と分の間の「:」が表示されます。
分と秒の間の「:」も同様に、%PMinute%(分)が空(=1分未満)の場合「:」が表示されません。

他にも、このように
%PHour%時間%<%PMinute%分%<%PSecondF%秒
  %PHour%「時間」%<%PMinute%「分」%<%PSecondF%「秒」
%PHour%の直後に"時間"という文字列を記述しているときに
1時間未満のときにその"時間"がフェイス上に表示されないように制御するのにも使われます。

時間表示の文字列の場合、
基本的にはこの%<(直前の識別子と関連付け)のみが使われると思います。
使用される場面は少ないと思われますが、以下の2つの特殊記号も使用することはできます。

直後の識別子と関連付け - 「%>」
+ ←の+をクリックすると説明を開きます
%>は文字列を区切り、その文字列の直後の識別子が表示されているかどうかで
文字列の表示・非表示を決定します。
タイム : %>%PHour%
  「タイム : 」%>%PHour%
%>をつけた文字列は、文字列の(後の%>の)直後の識別子が空でないときだけ表示されます。
上の例の場合、%PHour%(時間)が空(=1時間未満)の場合、「タイム : 」も表示されません。
識別子との関連付けをリセット - 「%#」
+ ←の+をクリックすると説明を開きます
%#は文字列を区切る特殊記号です。
%<%>による前後の識別子との関連付けをリセットする効果もあります。
%#が挿入された部分より「前の文字列」には、
「その後の文字列」の直後にある%<%>の効果は無効になります。
再生%#タイム : %>%PHour%h%<%PMinute%m%<%PSecondF%s
  「再生」%#「タイム : 」%>%PHour%「h」%<%PMinute%「m」%<%PSecondF%「s」
と分かれていると考えてください。

この場合、「タイム : 」は%PHour%(時間)が空の場合には表示されませんが、
%#より前の「再生」は「タイム : 」とは別のかたまりになるので
「タイム : 」の%>の処理の影響を受けず、%PHour%が空かどうかに関係なく表示されます。

例えば、
1時間23分45秒のときは
再生タイム : 1h23m45s
となりますが、

11分22秒のときは
%PHour%が空のとき)
再生11m22s
になります。


書式設定の実例

実際にFormatStringキーに書き込む設定の実例を
時間ごとの表示内容も合わせてあげておきます。
(主に再生時間の場合の記述例です。残り時間・総演奏時間の場合は
 Pの部分を残り時間ならR・総演奏時間ならTと書き換えてください。)

例1:0分~9分のときのみ「分」を1桁表示、60分以上でも分表示のまま

%PMinuteNF%:%PSecondZF%
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒 12分34秒 1分23秒 12秒 1秒 0秒
表示 754:56 83:45 62:34 12:34 1:23 0:12 0:01 0:00

例2:1時間以上になったら「時間」を表示、
       1時間~9時間のときのみ「時間」を1桁表示、「分」は常に2桁表示

%PHour%:%<%PMinuteZF%:%PSecondZF%
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒
表示 12:34:56 1:23:45 1:02:34

時間 12分34秒 1分23秒 12秒 1秒 0秒
表示 12:34 01:23 00:12 00:01 00:00

例3:「時間」・「分」・「秒」全ての桁を常に2桁で表示

%PHourZF%:%PMinuteZF%:%PSecondZF%
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒
表示 12:34:56 01:23:45 01:02:34

時間 12分34秒 1分23秒 12秒 1秒 0秒
表示 00:12:34 00:01:23 00:00:12 00:00:01 00:00:00

例4:Type = PlayTimeNoHourと同じ形式の表示

%PMinuteNZF%:%PSecondZF%
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒
表示 754:56 83:45 62:34

時間 12分34秒 1分23秒 12秒 1秒 0秒
表示 12:34 01:23 00:12 00:01 00:00

例5:Type = PlayTimeと同じ形式の表示

%PHourZ%:%<%PMinuteZF%:%PSecondZF%
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒
表示 12:34:56 01:23:45 01:02:34

時間 12分34秒 1分23秒 12秒 1秒 0秒
表示 12:34 01:23 00:12 00:01 00:00

また、書式の中で先頭に「-」を記述すると、
-(マイナス)つきの文字列アイテムを作成することができます。
残り時間表示で、1つのアイテムで「-」を先頭に表示したものを作成するときに使用します。
例えば、上の例5(Type = PlayTimeと同じ形式の表示)のものに
(残り時間を表示するので先頭のPRに書き換えた上で)「-」をつけると、
-%RHourZ%:%<%RMinuteZF%:%RSecondZF%
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒
表示 -12:34:56 -01:23:45 -01:02:34

時間 12分34秒 1分23秒 12秒 1秒 0秒
表示 -12:34 -01:23 -00:12 -00:01 -00:00
このように表示されます。

-」と時間表示の間にスペースを空けたい場合は
- %RHourZ%:%<%RMinuteZF%:%RSecondZF%
と、「-」の直後にそのままスペースを挿入してください。

例6:「○時間○分○秒」という形式で表示する場合

識別子の使い方の説明でもこれと同じ例を挙げましたが、
上の例の各表の、上の行の表示内容と全く同じように(漢字交じりで)表示したい場合は
以下のように設定します。
%PHour%時間%<%PMinute%分%<%PSecondF%秒
時間 12時間34分56秒 1時間23分45秒 1時間2分34秒 12分34秒 1分23秒 12秒 1秒 0秒
表示 12時間34分56秒 1時間23分45秒 1時間2分34秒 12分34秒 1分23秒 12秒 1秒 0秒
最終更新:2013年09月17日 22:19