Home / 文書 / NiVE2 マルチテキスト
NiVE2 マルチテキスト

NiVE2用エフェクトプラグイン『マルチテキスト』(ruche.nive2.effects.wpf.MultiText.dll)の使用方法マニュアル。

この文書について

この文書では、NiVE2用エフェクトプラグインセット ruche.nive2.effects に含まれているエフェクトの1つである『マルチテキスト』の使い方を解説します。

基本的に最新バージョンについて取り扱います。
過去のバージョンからの変更箇所については更新履歴を参照してください。

なお、導入手順等の基本的なことについては解説していませんので、添付のreadme.txtを参照してください。

エフェクト概要

できること

『マルチテキスト』では次のようなことが行えます。

  • 1エフェクトでの複数テキスト配置
    • 描画順序設定
  • 文字の装飾
    • フォント、太字、斜体設定
    • 塗り潰し、縁取り設定
    • 下線、取り消し線、傍点*1設定
    • 影設定
  • 文字間や行間のマージン設定
  • 表示速度設定
    • フェードイン時間設定
  • テキスト全体、背景全体の不透明度、明度、彩度設定
  • テキストのブレンド方法設定
  • 変数表示&設定
  • HTMLライクなタグによる装飾
    • 独自タグ設定
  • エクスプレッションによるデリゲート設定

テキスト装飾例

例えば、表示文字列に次のような文字列を設定したとします。

<u>HTML</u>みたいに<font color="red">タグ付け</font>できるよ!
<i>デフォルトで<big>定義</i>されている</big>
<shadow color="red" depth="3">タグ</shadow>や<b fill="blue">属性</b>もあるし、
<grad>自分でタグを<wide>定義</wide>することもできるよ!</grad>
&lt;エンティティ文字&gt;にも対応<font color="violet">&hearts;</font>
変数を使うことも$sample

これは次のように表示されます。
なお、タグ設定で grad タグと wide タグを、変数設定で sample 変数を予め設定してあります。

HTMLみたいにタグ付けできるよ! ...

基本的な使い方

基本的に、最初に必要な分のテキストを配置して、キーフレームを打ちながら表示文字列を設定する流れになります。

  1. テキストの描画対象となるレイヤーを用意する。

  2. レイヤーに『マルチテキスト』エフェクトを追加する。

  3. ベーススタイルベース表示速度等を設定する。

  4. テキストを必要な数だけ追加する。

  5. 各テキストの配置を設定する。

  6. 各テキストの表示文字列を設定する。様々なテキスト書式を用いることができる。

  7. その他の設定項目を適宜設定する。

設定項目一覧

プロパティ名はエクスプレッション用ですが、『マルチテキスト』では各プロパティを直接操作するよりもデリゲート隠しプロパティを用いることを推奨します。
詳しくはエクスプレッション対応の項を参照してください。

ルート項目

表示名プロパティ名内容
テキストtextsテキストを追加できる可変長リスト。
ベーススタイルすべてのテキストのデフォルトとなるスタイル
ベース表示速度すべてのテキストのデフォルトとなる表示速度
変数variables変数を追加できる可変長リスト。
スタイルタグtagsタグを追加できる可変長リスト。
背景ポスト処理エフェクトを適用したレイヤーに対するポスト処理
(デリゲート)delegateエクスプレッション用の隠しプロパティ。

テキスト

表示名プロパティ名内容
表示文字列textレイヤー上に表示する文字列。
様々なテキスト書式を使用可能。
描画順序order複数のテキストがある場合の描画順序。
数字が小さいテキストほど先に描画される(奥側になる)。
数字が同じ場合はリストの先頭側にあるテキストほど先に描画される。
全体配置基準位置arrange.position配置の基準位置。
レイヤーの左上端を (0,0) とする相対座標。
横基準arrange.halign基準位置に対してテキスト領域のどの位置を割り当てるかの指定。
例えば横基準を「右」にすればテキスト領域の右端位置=基準位置となる。
縦基準arrange.valign
最小サイズarrange.size.minテキスト領域の最小サイズ。
テキスト量が少ない場合もこのサイズ未満にはならない。
最大サイズarrange.size.maxテキスト領域の最大サイズ。
あくまで配置用サイズの最大値であり、領域外の文字も表示はされる。
領域外の文字を非表示にしたい場合は『範囲変更』を併用すること。
回転中心位置arrange.rotate.centerテキスト全体を回転させる場合の中心位置。
レイヤーの左上端を (0,0) とする相対座標。
回転角度arrange.rotate.angleテキスト全体の回転角度。
行配置行揃えarrange.row.alignテキスト全体の領域に対する各行の配置。
最小サイズarrange.row.size.min各行の最小サイズ。
幅を大きくすると中央揃えや右揃えにした場合も行が左寄りになる。
高さを大きくすると行間が空く。
最大サイズarrange.row.size.max各行の最大サイズ。折り返しサイズでもある。
幅を小さくするとその幅を超える場合に行が折り返される。
高さを小さくすると上下の行と重なり合う。
行高タイプarrange.row.htype行によって文字の大きさが違う場合に、各行の高さをどう定めるかの指定。
「全行均一」にした場合は一番高い行に合わせられる。
行間arrange.row.span行間の指定。
デフォルト状態を 100 、行が完全に重なる状態を 0 とするパーセント値。
拡張書式変数option.variable変数書式の有効/無効を切り替える。
変数ネストoption.variable.nest変数書式が有効である場合に変数のネストの有効/無効を切り替える。
タグoption.tagタグ書式の有効/無効を切り替える。
エンティティoption.entityエンティティ書式の有効/無効を切り替える。
スタイルスタイルの上書き設定。
チェックを付けた項目についてはベーススタイルの設定を上書きする。
表示速度表示速度の上書き設定。
チェックを付けた項目についてはベース表示速度の設定を上書きする。
ポスト処理表示文字列に対するポスト処理
ブレンドblend表示文字列の背景レイヤーへのブレンド方法。
(デリゲート)delegateエクスプレッション用の隠しプロパティ。

スタイル

文字の見栄えを設定します。
ベーススタイル以外はチェックボックスによって各項目を設定するか否かを選択でき、設定しなかった項目についてはデフォルト値が用いられます。

  • テキストごとのスタイル設定におけるデフォルト値はベーススタイルで設定した値になります。
  • タグごとのスタイル設定におけるデフォルト値についてはタグ書式の項を参照してください。
表示名プロパティ名内容
文字配置行内位置valign行内における文字の位置。
例えば文字を小さくして文字位置を上端にすることで上付き文字にしたりできる。
スケールscale.x各文字のサイズ倍率。
デフォルト状態を 100 とするパーセント値。
負数にすることで上下左右を逆さにもできる。
scale.y
マージンmargin.top各文字の上下左右にある文字との間に適用する余白幅。
どの文字間にもここで設定した値を満たすような余白が取られる。
例えば右余白3pxの文字と左余白5pxの文字が隣り合う場合、余白は5pxとなる。
あくまで文字間の余白であり、テキスト全体の上下左右端に対しては適用されない。

なお、余白設定の適用はテキストの行間設定の適用より前に行われる。
そのため、行間の設定値に応じて実際の余白幅は変動する。
margin.bottom
margin.left
margin.right
フォントファミリfont.family文字のフォントファミリの選択。
フォントによっては全角文字をサポートしていない場合がある。
その場合は「MS Pゴシック」が全角文字の代替フォントとして適用される。
サイズfont.size文字の大きさ。
一般によく用いられるポイント値ではなく、ピクセル値で指定する。
基本的にこの値が文字の縦幅となるが、メイリオ等は余白サイズが上乗せされる。
太さfont.weight文字の太さ。通常、太字のいずれか。
スタイルfont.style文字のスタイル。通常、イタリック体、斜体のいずれか。
塗り色fill.color文字の塗り潰し色。
塗り潰したくない場合は透明色にすること。
edge.color文字の縁の塗り潰し色。
edge.width文字の縁の幅。
縁を表示したくない場合は 0 にすること。
形状edge.type文字の縁の形状。鋭角、面取り、丸角のいずれか。
下線underline.color下線の色。
underline.width下線の幅。
下線を表示したくない場合は 0 にすること。
端形状underline.cap下線の端の形状。なし、四角、三角、半円のいずれか。
なし以外にした場合、形状分だけ線の長さが伸びる(線幅の半分)。
破線パターンunderline.pattern破線パターン。 (1,0) で実線となる。
数値列によって線幅と空白幅を交互に表す。
各々の値は、線幅を 1 とする相対サイズ(小数も使用可能)。
数値の個数が奇数個の場合、偶数個となるように同じ数値列2つを繋げた扱いとなる。
即ち、例えば 2,3,02,3,0,2,3,0 と等価として扱われる。
オフセットunderline.offset下線の基準位置である文字下端からの縦方向のオフセット割合。
正数にすると下方向、負数にすると上方向へ移動する。
文字の縦幅を 100 とするパーセント値。
Z位置underline.zテキスト内での描画順序。値が小さいほど先に描画される(奥になる)。
表示文字列のZ位置は 0 で固定となる。
値が同じ場合、文字列→下線→取り消し線→傍点の順に描画される。
なお、値が 100 より大きい場合、影が適用されなくなる。
取り消し線strike.color基準位置が文字中央であること以外は下線と同じ。
strike.width
端形状strike.cap
破線パターンstrike.pattern
オフセットstrike.offset
Z位置strike.z
傍点*2dot.color傍点の色。
dot.width傍点の直径。
傍点を表示したくない場合は 0 にすること。
オフセットdot.offset某店の基準位置である文字上端からの縦方向のオフセット割合。
下線の説明を参照のこと。
Z位置dot.zテキスト内での描画順序。
下線の説明を参照のこと。
shadow.color影の色。
影を表示したくない場合は透明色にすること。
他の色とは違い、グラデーション色は設定できない。
方向shadow.dir影の方向。
距離shadow.depth文字から見た影の距離。
ぼかし幅shadow.blur影のぼかし幅。
大きい値にすればするほど処理が重くなる。
距離を 0 にすることで文字が発光しているような表現も可能。
品質shadow.quality影の品質。

表示速度

各文字が表示されるタイミングを設定します。
テキストごとの表示速度設定はチェックボックスによって各項目を設定するか否かを選択でき、設定しなかった項目についてはベース表示速度で設定した値が用いられます。

表示名プロパティ名内容
文字間隔speak.letter文字の表示時間間隔(ミリ秒単位)。
前の文字が表示開始されてからこの時間が経過した後に次の文字が表示開始される。
改行間隔speak.row改行時の待機時間(ミリ秒単位)。
入力された改行にのみ適用され、折り返しによる改行には適用されない。
フェードインspeak.fadein文字の表示開始から完全不透明になるまでの時間(ミリ秒単位)。
文字間隔より大きい値にすることも可能。
その場合、前の文字のフェードインが完了する前から次の文字が表示開始される。
スキップ行数speak.skip.row文字間隔指定や改行間隔指定を無視して最初から表示状態にする行数と文字数。
フェードイン指定も無視して最初から表示される。
スキップ文字数指定はスキップ行数指定の次の行に対して適用される。
例えばスキップ行数が 0 ならば1行目、 2 ならば3行目が対象となる。
スキップ文字数speak.skip.letter
余白スキップspeak.skip.blank有効にすると行の先頭および末尾の空白文字をスキップする。
折り返しによって先頭や末尾にきた空白文字はスキップされない。

変数

変数書式で用いることができる変数を設定します。
文字列値と数値(小数点以下桁数可変&固定)がありますが、どちらもその値がそのまま変数値となります。

なお、変数はエクスプレッションからデリゲート隠しプロパティを用いて設定することも可能です。

表示名プロパティ名内容
変数名variable.name変数の名前。
半角の英数字および _ (アンダーバー)を使うことが可能。
数字やアンダーバーのみの変数名でも問題ない。
他の変数と同じ名前を付けた場合、リストの後ろにある変数が優先される。
変数値(文字列値、数値)variable.value変数の値。

タグ

タグ書式で用いることができるタグを設定します。

ここで設定していない名前のタグを用いることも可能で、その場合は一切スタイル設定のされていないタグとして扱われます。
ただし、予めいくつかのスタイルが設定されている標準タグもあります。

表示名プロパティ名内容
タグ名tag.nameタグの名前。
半角の英数字および _ - . : ! @ を使うことが可能。
数字や記号のみのタグ名でも問題ない。
他のタグと同じ名前を付けた場合、すべての項目がマージされる。
同一名かつ同一項目が設定されている場合はリストの後ろにあるタグが優先される。
スタイル(タグ名以外の項目)タグによるスタイルの上書き設定。
チェックを付けた項目についてデフォルト値を上書きする。

ポスト処理

エフェクト適用対象のレイヤーや各テキストに対して、レイヤーとテキストを合成する直前に行う画像変換処理を設定します。
『範囲変更』エフェクトを適用している場合、レイヤーへの処理は有効範囲のみに適用されます。

表示名プロパティ名内容
不透明度post.alpha後ろのレイヤーや背景をどれだけ透過するかの設定。
100 で完全不透明、 0 で完全透明(=非表示)。
明度post.brightness明るさ。数値を小さくするほど黒に近付く。
彩度post.saturation鮮やかさ。数値を小さくするほどグレースケールに近付く。

テキスト書式

テキストの表示文字列には変数書式タグ書式エンティティ書式を用いることができます。
これらの書式はテキストの拡張書式設定で無効にすることも可能です。

各書式は、有効である場合、次の順序で適用されます。

  1. 変数書式
  2. タグ書式
  3. エンティティ書式

変数書式

あらかじめ設定した変数値を任意の位置に文字列として展開できます。

構文と記述例

変数の構文は次の通りです。
[] で囲まれた部分は省略可能です。

$name
$(name[,width[.digits][,pad]])
${name[,width[.digits][,pad]]}

変数名 name には半角の英数字および _ (アンダーバー)を使うことが可能です。

変数名以外の各パラメータの解説も兼ねて、具体的な構文の一覧を以下に示します。
ここでは説明の便宜上、変数名 foo の変数に 12.3 という小数値が設定されているものとします。

書式解説記述例表示例
$foo変数の値を展開する。
変数の直後に英数字が続く場合には使えない。
答えは$fooです。答えは12.3です。
$(foo)変数の値を展開する。
変数の直後に英数字が続く場合でも問題なく使える。
$(foo)cm12.3cm
${foo}${foo}msec.12.3msec.
$(foo,w)変数の値を文字幅 w で右詰めまたは左詰めして展開する。
正数ならば右詰め、負数ならば左詰めとなる。
余白は半角スペースで埋められる。
文字幅 w より実際の幅の方が大きい場合は何もしない。
なお、文字は半角も全角も同じ1文字としてカウントされる。
x=$(foo,6)pxx=  12.3px
${foo,w}y=${foo,3}mmy=12.3mm
$(foo,-w)x=$(foo,-6)pxx=12.3  px
${foo,-w}y=${foo,-3}mmy=12.3mm
$(foo,w.d)変数の値を数値として扱い、小数部の幅を d とする。
小数部は指定した幅になるように 0 埋めや四捨五入が行われる。
それ以外の点は $(foo,w)$(foo,-w) と同じ。
変数の値を数値として扱えない場合は .d を無視する。
x=$(foo,7.2)pxx=  12.30px
${foo,w.d}y=${foo,0.0}mmy=12mm
$(foo,-w.d)x=$(foo,-7.2)pxx=12.30  px
${foo,-w.d}y=${foo,-0.3}mmy=12.300mm
$(foo,w,p)余白を半角スペースではなく文字 p で埋める。
それ以外の点は $(foo,w)$(foo,-w) と同じ。
p には全角文字も指定可能。
x=$(foo,6,0)pxx=0012.3px
${foo,w,p}y=${foo,3,x}mmy=12.3mm
$(foo,-w,p)x=$(foo,-6,*)pxx=12.3**px
${foo,-w,p}y=${foo,-3,x}mmy=12.3mm
$(foo,w.d,p)余白を半角スペースではなく文字 p で埋める。
それ以外の点は $(foo,w.d)$(foo,-w.d) と同じ。
p には全角文字も指定可能。
x=$(foo,7.2,@)pxx=@@12.30px
${foo,w.d,p}y=${foo,0.0,x}mmy=12mm
$(foo,-w.d,p)x=$(foo,-7.2,あ)pxx=12.30ああpx
${foo,-w.d,p}y=${foo,-0.3,x}mmy=12.300mm

なお、定義されていない変数名が用いられた場合、空の文字列を変数値として処理します。
$ の後に英数字が続くような文字列そのものを表示したい場合、エンティティ書式を用いる必要があります。

ネスト

変数のネストが有効である場合、表示文字列内の変数は最大10回まで繰り返し展開されます。

例えば次のような変数が定義されているとします。

変数名変数値(文字列値)
abcあいうえお
xyzabc
foo$abc$x
width6

この時、次のような記述をすることができます。

記述例展開(1回目)展開(2回目)最終表示文字列
$$xyz$abcあいうえおあいうえお
$(foo)yz$abc$xyzあいうえおabcあいうえおabc
$(xyz,$width,X)$(xyz,6,X)XXXabcXXXabc

ネスト展開を10回行っても完了しなかった場合、ネストを無効化して処理されます。

タグ書式

HTML風の記述で1つのテキスト内に複数のスタイル設定や表示速度設定を混在させることができます。

構文

タグの構文は次の通りです。
[] で囲まれた部分は省略可能です。

開始タグ
タグによるスタイル適用の開始を表します。
タグ名と、それに続く0個以上の属性で記述します。
<tag[ attr="value"[ attr="value"[...]]]>
終端タグ
開始タグとセットで用いることでタグ設定適用範囲の終端を表します。
</tag>
独立タグ
単体で効果を発揮する属性や特殊タグで用いる書式です。
開始タグの直後に対応する終端タグを書くことと同じです。
<tag[ attr="value"[ attr="value"[...]]]/>

tag をタグ名、 attr を属性名、 value を属性値と呼びます。
また、属性名と属性値をイコールで結んだ attr="value" をまとめて属性と呼びます。

タグ名 tag には半角の英数字および _ - . : ! @ を使うことが可能です。
スタイルタグで定義したタグを用いる場合、タグ名の項目で設定した文字列をここに記述します。
定義されていないタグ名を記述することも可能です。

属性名 attr には半角の英数字および _ - . : を使うことが可能です。
定義されていない属性名を記述することも可能ですが、特に表示上の意味はありません。

属性値 value は基本的にダブルクォートで囲んで記述しますが、空白文字を含まない場合はダブルクォート無しで記述することも可能です。
とはいえ、基本的に属性値はダブルクォートで囲むものと考えておいた方が良いでしょう。
属性名と属性値の内容がマッチしない場合、その属性は無視されます。

タグの適用範囲

タグは開始タグから終端タグの間にある文字列に対して適用されます。
開始タグに対応する終端タグが存在しない場合は表示文字列の末尾まで適用されます。

範囲外<b>b の適用範囲</b>範囲外<span fill.color="red">span の適用範囲(文末まで)

独立タグの場合は記述した位置に対して適用されます。

タグをネストすることも可能です。
ネストされた表示文字列には両方のタグが適用されます。

<b>b の適用範囲<span fill.color="red">b と span の適用範囲</span>b の適用範囲</b>

また、適用範囲の一部だけを重ねることも可能です。
例えば次のような記述が行えます。

適用なし<u>下線適用<font color="#0000FF">両方適用</u>青字適用</font>適用なし

これは次のように表示されます。

適用なし下線適用両方適用青字適用適用なし

あるタグで囲まれた表示文字列に適用されるスタイルおよび表示速度は次のように定まります。

  1. そのタグ自体や属性によって明示的に指定されているスタイルおよび表示速度についてはそれを適用する。
  2. そのタグでは指定されていないが、更に外側を囲むタグで指定されているスタイルおよび表示速度についてはそれを適用する。
  3. いずれのタグでも指定されていないスタイルおよび表示速度についてはテキストごとのベーススタイル設定およびベース表示速度設定を用いる。

記述例

内容記述例表示例*3
標準属性<span fill.color="red">塗り潰したり</span>、
<span dot="3px blue">傍点を付けたり</span>します。
塗り潰したり、傍点を付けたりします。
標準タグ<b>太字にしたり</b>、
<big>大きくしたり</big>します。
太字にしたり、大きくしたりします。
特殊属性<font color="RGB(0,128,0)" style="italic">緑字斜体にしたり</font>、
表示を<wwww/>1秒待ったりします。
緑字斜体にしたり、表示を1秒待ったりします。

標準属性

あらゆるタグにおいて指定可能な属性の一覧です。
スタイル指定および一部の表示速度指定を行うことができます。

  • あらゆる属性値には auto および inherit を指定可能です。いずれも何も行わないことを表します。
    • 複数の属性値記述が必要な場合に用いることで、特定の属性値だけ指定しないようにすることができます。
  • 属性値内容において「一括」となっているものについては、対応スタイルや対応表示速度に書かれているものを一括で指定できることを表します。
    • 備考に特記されていない限り、すべての値は順不同で、任意の値だけを選んで記述可能です。
    • 複数種類の属性値として認識されうる値を記述した場合、対応スタイルや対応表示速度に書かれているもののうち先頭から順に決定されます。
      • 例えば font="normal" と記述すると、フォントのスタイルが太さよりも前にあるため、 font.style="normal" として解釈されます。
  • 属性値内容において「○○指定」となっているものについては属性値指定の項で説明します。
  • 属性値内容において「×2」や「×3」などのようになっているものは、空白を挟んでその数だけ値を記述することを表します。
    • 例えば「サイズ指定×3」ならば 1px auto 3mm のように記述します。
スタイルタイプ
属性名属性値内容対応スタイル備考
項目対応値*4
valigntop文字配置行内位置上端
middle中央
baselineベースライン
bottom下端
scale.x割合指定スケール
scale.y割合指定
scale割合指定横縦横と縦に同一値を適用する。
割合指定×2横,縦
margin.topサイズ指定マージン
margin.bottomサイズ指定
margin.leftサイズ指定
margin.rightサイズ指定
marginサイズ指定上下左右全方向に同一値を適用する。
サイズ指定×2上下,左右上下と左右に同一値を適用する。
サイズ指定×3上,左右,下左右には同一値を適用する。
サイズ指定×4上,右,下,左
font.familyフォント名フォントファミリ
font.sizeサイズ指定サイズ
font.weightnormal太さ通常
regular
medium
bold太字
heavy
font.stylenormalスタイル通常
italicイタリック体
oblique斜体
font一括スタイル,太さ,サイズ,ファミリファミリは末尾で指定する。
fill.color色指定塗り色
fill色指定fill.color と同じ。
edge.color色指定
edge.widthサイズ指定
edge.typenormal形状鋭角
miter
bevel面取り
round丸角
edge一括形状,幅,色色は末尾で指定する。
underline.color色指定下線
underline.widthサイズ指定
underline.capnormal端形状なし
none
flat
square四角
tri三角
triangle
circle半円
round
underline.pattern数値×1以上破線パターン
underline.offset割合指定オフセット
underline.z数値Z位置
underline一括端形状,幅,色色は末尾で指定する。
strike.color色指定取り消し線
strike.widthサイズ指定
strike.capnormal端形状なし
none
flat
square四角
tri三角
triangle
circle半円
round
strike.pattern数値×1以上破線パターン
strike.offset割合指定オフセット
strike.z数値Z位置
strike一括端形状,幅,色色は末尾で指定する。
dot.color色指定傍点
dot.widthサイズ指定
dot.offset割合指定オフセット
dot.z数値Z位置
dot一括幅,色色は末尾で指定する。
shadow.color色指定
shadow.dir数値方向
shadow.depthサイズ指定距離
shadow.blurサイズ指定ぼかし幅大きくし過ぎないこと。
shadow.qualitynormal品質通常
performance
high高品質
quality
shadow一括品質,方向,距離,色色は末尾で指定する。
表示速度タイプ
属性名属性値内容対応表示速度備考
項目対応値*5
speak.letter時間指定文字間隔
speak.row時間指定改行間隔
speak.fadein時間指定フェードイン
speak.wait時間指定(対応なし)指定時間だけ停止する。
独立タグに対して指定しなければ効果なし。

属性値指定

末尾に単位を付けたり特殊な記述をしたりする属性値指定の一覧です。

N のようなイタリック体の英字は任意の数値を表します。
指定可能な数値の範囲は指定方法や対象属性により異なります。

指定方法記述記述例適用される値*6備考
割合指定N1.5100倍値割合
Nem2em
N%80%パーセント
N123.4%
サイズ指定N20.4ピクセル
Npx10px
Npixel12.3pixel
Npt12pt96/72.0倍値ポイント
Npoint9.8point
Nmm50mm96/25.4倍値ミリメートル
Npc1.2pc96/6.0倍値パイカ*7
Npica2pica
Ncm3cm96/2.54倍値センチメートル
Nin0.3in96倍値インチ
Ninch0.25inch
色指定*8#RGB#0E7R, G, B 各々の17倍値
不透明度は255固定
各値はそれぞれ 0F の16進数値。
大文字・小文字は問わない。
0xRGB0xFfF
#ARGB#F66AA, R, G, B 各々の17倍値
0xARGB0xe07a
#RRGGBB#FF0080RR, GG, BB
不透明度は255固定
各値はそれぞれ 00FF の16進数値。
大文字・小文字は問わない。
0xRRGGBB0x00ff00
#AARRGGBB#80aabbccAA, RR, GG, BB
0xAARRGGBB0xFF5090C0
RGB(R,G,B)RGB(255,128,0)R, G, B
不透明度は255固定
各値はそれぞれ 0255 の10進数値。
RGBA(R,G,B,A)RGBA(192,96,96,0)A, R, G, B
ARGB(A,R,G,B)RGBA(192,0,0,255)
色名redHTMLで定義されている色名が使える。

参考:原色大辞典
blue
black
......
時間指定N200ミリ秒
Nms10.5ms
Nmsec500msec
Ns1s1000倍値
Nsec0.7sec
Nm0.05m60000倍値
Nmin0.1min

標準タグ

予めいくつかのスタイルが定義済みであるタグの一覧です。
スタイルタグ設定によって他のスタイルを追加したり、定義済みのスタイルを上書きすることも可能です。

タグ名定義済みスタイル同等の属性指定
スタイル
bフォント太さ太字font.weight="bold"
big文字配置スケール125scale="125%"
125
del取り消し線strike="1px black" strike.pattern="2,1"
1
破線パターン2,1
emフォントスタイル斜体font.style="oblique"
iフォントスタイルイタリック体font.style="italic"
ins下線underline="1px black" underline.pattern="2,1"
1
破線パターン2,1
q下線underline="1px black" underline.pattern="1,1"
1
破線パターン1,1
small文字配置スケール75scale="75%"
75
strongフォント太さ太字font="bold oblique"
スタイル斜体
sub文字配置行内位置下端valign="bottom" scale="50%"
スケール50
50
sup文字配置行内位置上端valign="top" scale="50%"
スケール50
50
ttフォントファミリMS ゴシックfont.family="MS ゴシック"

特殊タグ&属性

特殊属性を指定できたり一般のタグとは異なる挙動をしたりするタグと、それに対応する特殊属性の一覧です。

一部を除き、基本的には標準属性よりも少ない文字数で記述できることが利点です。
例えば、次の2行は同じ表示結果となります。

<span fill.color="black" font.size="20">あいうえお</span>
<font color="black" size="20">あいうえお</font>
特殊タグ名特殊属性名対応する標準属性名備考
scalexscale.x
yscale.y
margintopmargin.top
bottommargin.bottom
leftmargin.left
rightmargin.right
fontcolorfill.color他と違い、 font.color 属性は存在しない。
familyfont.family
sizefont.size
weightfont.weight
stylefont.style
fillcolorfill.color
edgecoloredge.color
widthedge.width
typeedge.type
ucolorunderline.color
widthunderline.width指定されなければ最小値を 1 とする。*9
capunderline.cap
patternunderline.pattern
offsetunderline.offset
zunderline.z
underlineu と同じであるため割愛。
scolorstrike.color
widthstrike.width指定されなければ最小値を 1 とする。*10
capstrike.cap
patternstrike.pattern
offsetstrike.offset
zstrike.z
strikes と同じであるため割愛。
dotcolordot.color
widthdot.width指定されなければ最小値を 1 とする。*11
offsetdot.offset
zdot.z
shadowcolorshadow.color
dirshadow.dir
depthshadow.depth
blurshadow.blur
qualityshadow.quality
speakletterspeak.letter
rowspeak.row
fadeinspeak.fadein
waitspeak.wait独立タグに対して指定しなければ効果なし。
wなしw の数×250ミリ秒だけ停止する。
独立タグとして用いなければ効果なし。

例:<www/>
ww
www
wwww
wwwww
wwwwww
wwwwwww
wwwwwwww

エンティティ書式

変数書式タグ書式で用いる文字($ < >)や、通常では入力しづらい文字を表示できます。

構文

エンティティの構文は次の通りです。

&name;
&#dec;
&#xhex;
&#Xhex;

name は定義済みの名前です。
HTMLエンティティで定義されている名前を用いることができます。

dec はUnicode文字コードを表す10進数値、 hex はUnicode文字コードを表す16進数値です。
いずれも指定したUnicode文字コードに対応する文字を表示できます。
名前が定義されている必要はありません。
なお、数値の頭には任意個数の 0 を付けても構いません。

記述例

代表的なエンティティ文字の一覧です。

文字記述備考
名前10進数16進数
$&dollar;&#36;&#x24;$100 のような変数書式と被る文字列そのものを表示したい場合に用いる。
なお、 dollar という名前はHTMLエンティティには定義されていない。
<&lt;&#60;&#x3c;<abc> のようなタグ書式と被る文字列そのものを表示したい場合に用いる。
>&gt;&#62;&#x3e;
&&amp;&#38;&#x26;&lt; のようなエンティティ書式と被る文字列そのものを表示したい場合に用いる。
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;
©&copy;&#169;&#xa9;著作権表記
®&reg;&#174;&#xae;商標表記
²&sup2;&#178;&#xb2;2乗
³&sup3;&#179;&#xb3;3乗
¼&frac14;&#188;&#xbc;1/4
½&frac12;&#189;&#xbd;1/2
¾&frac34;&#190;&#xbe;3/4
&spades;&#9824;&#x2660;スペード
&clubs;&#9827;&#x2663;クラブ
&hearts;&#9829;&#x2665;ハート
&diams;&#9830;&#x2666;ダイヤ

エクスプレッション対応

エクスプレッションで用いることのできる当プラグイン独自クラスの簡単な説明です。

C#言語およびエクスプレッションの知識があることが前提となります。
C#言語はわかるけどエクスプレッションをよく知らないという方には次のサイトが大変参考になります。

前準備

当プラグインをエクスプレッションで用いるにあたり推奨される設定は次の通りです。
以降、この設定がされているものとして解説します。

設定項目設定値
参照Plugins/ruche.nive2.effects.dll
Plugins/ruche.nive2.effects.wpf.dll
C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\WindowsBase.dll
C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationCore.dll
C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.dll
名前空間ruche.nive2.effects
ruche.nive2.effects.wpf
System.Windows
System.Windows.Media
System.Windows.Shapes

なお、参照の設定における C:\Program Files の部分は標準のプログラムフォルダに適宜置き換えてください。
例えばWindowsをDドライブにインストールした場合は D:\Program Files となります。

その他、基本的なことについてはNiVE2のマニュアルや添付のreadme_expression.txtを参照してください。

デリゲート隠しプロパティ

デリゲート隠しプロパティは、 ruche.nive2.effects.wpf.TextEffectDelegateProperty クラス型のNiVE2プロパティです。
このプロパティの各メンバに対して適切なデリゲートを設定することで、通常の設定では行えない高度な表示制御が可能となります。

このプロパティはルート項目および各テキストが保持しています。
ルート項目のものはすべてのテキストに対して適用され、各テキストのものは各々に対してのみ適用されます。
両方に対してデリゲートを設定した場合、ルート項目→テキストの順に呼び出されます。

エフェクトのエクスプレッションでデリゲート隠しプロパティを取得および設定するコードは次の通りです。

ルート項目
// 取得
TextEffectDelegateProperty propRoot =
    (TextEffectDelegateProperty)property.GetProperty(thisItem, "delegate");

// 設定
property.SetProperty(thisItem, propRoot);
各テキスト
// 0 番目のテキストから取得する例
AddablePropertyBase texts =
    (AddablePropertyBase)property.GetProperty(thisItem, "texts");
FormattedTextPropertySet ps =
    (FormattedTextPropertySet)texts.Properties[0]; // 0 番目
TextEffectDelegateProperty propText =
    (TextEffectDelegateProperty)ps["delegate"];

// 設定(テキスト可変長プロパティを設定することでデリゲートも上書きされる)
property.SetProperty(thisItem, texts);

このプロパティの主要なメンバ、およびそのデリゲート型は次の通りです。
各デリゲート型は ruche.nive2.effects.wpf.TextEffectDelegateProperty クラスの内部型として定義されています。

変数デリゲート
NiVE2上で設定されている変数リストを受け取り、それを操作したり新たな変数を追加したりできます。
/// <summary>
/// 変数リストに対する処理を行うデリゲート。
/// </summary>
/// <param name="variables">変数リスト。</param>
public delegate void VariableDelegate(
    Dictionary<string, object> variables);

/// <summary>
/// 変数リストデリゲートを取得または設定する。
/// </summary>
public VariableDelegate Variable { get; set; }
表示文字列デリゲート
NiVE2上で設定されている表示文字列とその文字列が表示開始されてからの経過秒数を受け取り、表示文字列を変更して返すことができます。
/// <summary>
/// テキストに対する処理を行い、最終的なテキストを返すデリゲート。
/// </summary>
/// <param name="text">テキスト。</param>
/// <param name="elapsedTime">
/// テキストが表示されてからの経過秒数。
/// </param>
/// <returns>最終的に使われるテキスト。</returns>
public delegate string TextDelegate(
    string text,
    double elapsedTime);

/// <summary>
/// テキストデリゲートを取得または設定する。
/// </summary>
public TextDelegate Text { get; set; }
描画情報デリゲート
最終的な描画処理に用いられる情報と対象の表示文字列が表示開始されてからの経過秒数を受け取り、座標等の情報を直接修正することができます。
/// <summary>
/// テキスト描画情報に対する処理を行うデリゲート。
/// </summary>
/// <param name="info">テキスト描画情報。</param>
/// <param name="elapsedTime">
/// テキストが表示されてからの経過秒数。
/// </param>
public delegate void RenderingInfoDelegate(
    ruche.nive2.effects.wpf.TextRenderingInfo info,
    double elapsedTime);

/// <summary>
/// テキスト描画情報デリゲートを取得または設定する。
/// </summary>
public RenderingInfoDelegate RenderingInfo { get; set; }

描画情報デリゲートの引数 info の型である ruche.nive2.effects.wpf.TextRenderingInfo の詳細については別配布のクラスリファレンスを参照してください。
具体的なコーディング例は次節を参照してください。

コーディング例

簡単なコーディング例をいくつか示します。
ここではルート項目のデリゲート隠しプロパティに対してデリゲートを設定していますが、各テキストに対しても同様のことが行えます。

レイヤーのローカル時間 time を変数に追加する。
すべて開くすべて閉じる
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
-
!
 
 
-
!
-
-
!
!
 
-
!
// プロパティ取得
TextEffectDelegateProperty propRoot =
    (TextEffectDelegateProperty)property.GetProperty(thisItem, "delegate");
 
// 変数デリゲート設定
propRoot.Variable = delegate(Dictionary<string, object> variables)
{
    // レイヤーのローカル時間を変数 $time に設定
    variables["time"] = time;
};
 
// プロパティ設定
property.SetProperty(thisItem, propRoot);
文字列が表示されてからの経過秒数(小数点以下切り捨て)を元文字列の末尾に追加する。
すべて開くすべて閉じる
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
-
!
 
 
-
!
-
-
!
!
 
-
!
// プロパティ取得
TextEffectDelegateProperty propRoot =
    (TextEffectDelegateProperty)property.GetProperty(thisItem, "delegate");
 
// 表示文字列デリゲート設定
propRoot.Text = delegate(string text, double elapsedTime)
{
    // 経過秒数(小数点以下切り捨て)を表示文字列の末尾に追加して返す
    return (text + (int)elapsedTime);
};
 
// プロパティ設定
property.SetProperty(thisItem, propRoot);
各文字がフェードイン時に上から落ちてくるような表示にする。
予めNiVE2上で表示速度の設定を行っておいてください。
すべて開くすべて閉じる
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
-
!
 
 
-
!
-
-
!
-
-
!
-
-
!
|
-
|
|
!
|
|
!
!
!
 
-
!
// プロパティ取得
TextEffectDelegateProperty propRoot =
    (TextEffectDelegateProperty)property.GetProperty(thisItem, "delegate");
 
// 描画情報デリゲート設定
propRoot.RenderingInfo = delegate(TextRenderingInfo info, double elapsedTime)
{
    // 行ごとに処理
    foreach (TextRowRenderingInfo ri in info.RowInfos)
    {
        // 文字ごとに処理
        foreach (LetterRenderingInfo li in ri.LetterInfos)
        {
            // 現在のフェードイン割合を取得(0.0〜1.0)
            double rate = li.CalcOpacity(elapsedTime);
 
            // 次のように平行移動させる
            // rate==0.0 -> 文字の高さ分だけ本来の位置より上
            // rate==1.0 -> 本来の位置
            Point2D pos = li.Position;
            pos.Y -= li.CalcHeight() * (1.0 - rate);
            li.Position = pos;
        }
    }
};
 
// プロパティ設定
property.SetProperty(thisItem, propRoot);

FAQ

ありがちな(ありそうな)疑問点とそれに対する答えをまとめています。

変数書式やタグ書式が有効な状態で $< といった文字を表示したい。
エンティティ書式を用いてください。
$&dollar;<&lt;>&gt; と記述することで表示できます。
長い行を特定の幅で折り返し表示したい。
テキストの「行配置/最大サイズ」の幅を折り返したい幅に設定してください。
フォント指定がメイリオの場合に行間が空きすぎてしまう。
行間が空くのはメイリオフォントの仕様です。
テキストの「行配置/行間」を 75 程度にするとちょうどいい具合になります。
下線や取り消し線の位置が微妙にずれる。
下線および取り消し線はアンチエイリアス処理によってぼやけることを防ぐためにピクセル位置を調整しています。
この調整処理は、線が水平である場合はY方向について、線が垂直である場合はX方向について行われ、それ以外の場合は行われません。
また、この調整によって0.5ピクセル以上ずれることはありません。

更新履歴

2011-07-31
  • 特殊タグ&属性u, underline, s, strike, dot 各タグの width 属性が指定されなかった場合の挙動を変更した。
    • 指定されなければ 1 固定だったものを、指定されなければ最小値を 1 とするようにした。
2011-07-30
  • 初版。

*1 *2  文字の上に付く点。主に特定の単語や文章を強調する場合に用いられる。
*3  見やすさのために行間等を調整しています。
*4 *5  何も書かれていない場合は属性値そのものが対応値を表します。
*6  何も書かれていない場合はそのままの値が適用されます。
*7  1パイカ = 12ポイント
*8  現在の実装では色指定でグラデーション色を指定することはできません。グラデーション色を用いたい場合は独自のタグを定義してください。
*9 *10 *11  タグの設定や、更に外側を囲むタグによって 1 以上の値が指定されていた場合はその値に従います。