NarraLeaf

テキスト

nl.text ウィジェットの Self ノード——内容、タイポグラフィ、色、静的エフェクトの読み書きです

Text 分類は nl.text ウィジェットの Self ノード集合です。表示する文字列、表示に使う書体と字形の各種数値、そしてその上に重ねる静的エフェクトを扱います。これらのノードは nl.text 要素自身の widgetMain ブループリントのパレットにのみ現れ、いずれもその要素に対して作用します。別のテキスト要素にアクセスするには、Element 分類にある同名の blueprint.element.text.* ノードを使用してください——プロパティは同一で、対象を指定するための element:nl.text 入力が追加されているだけです。

規約

  • ターゲットピンはありません。 Self ノードには Element 入力がなく、ブループリントの実行元からターゲットを解決します。接続するものがない以上、誤った要素を指定してしまうこともありません。
  • 読み取りは Pure、書き込みは Latent です。 各 getter は副作用がなく、eventfunctionmacro グラフで合法です。各 setter はホストがパッチを適用する間グラフを一時停止させるため、function グラフには置けません——function は呼び出し元に同期的に戻るため、保留中の書き込みを置いておく場所がありません。
  • Blueprint Value では使用できません。 Blueprint Value の宿主は widgetValue であり、これらのノードのスコープは widgetMain であるため、getter が pure であっても、そのパレットには現れません。Blueprint Value からテキストのプロパティを読み取るには、Element を対象とした getter を Element のリテラルとともに使用してください。
  • 書き込みにはゲームの実行が必要です。 ホスト API はブループリントの実行時の下でのみ存在します。エディターのキャンバス上では、setter は Host API unavailable (use Dev Mode) で失敗し、getter は何も生成しません。
  • 何も変わらない書き込みは何もしません。 各 setter はパッチを正規化したうえで要素の現在のプロパティと比較し、一致する場合は早期に処理を終えます——その要素の再描画も On Flush も発生しません。getter も flush をキューに入れることはないため、グラフは自分自身をループに追い込むことなくプロパティをポーリングできます。
  • 未接続または認識されない入力は「そのままにする」ことを意味しません。 エッジがない、カード上に何も入力されていない、あるいは許可された集合の外の値である場合、ほとんどの setter は現在の値を保持するのではなく、固定のフォールバック値を書き込みます。Set Text は空文字列を、Set Font はフォントをクリアし、Set Font Size16 を、Set Line Height1.4 を書き込み、各列挙型 setter はそのリストの先頭の値を書き込みます。何も拒否されず、何もスローされません。現在の値にフォールバックするのは、Set Text ColorSet Effects、そして Set All Properties のすべてのピンだけです。

Get Text

blueprint.text.getText · Pure

要素が現在保持している文字列を読み取ります。

ピン方向備考
textout · datastring

Set Text

blueprint.text.setText · Latent

文字列全体を置き換えます。

ピン方向備考
inin · exec
nextout · exec
textin · datastring何にも解決できない場合は空文字列を書き込みます。カード上での直接入力に対応します。

要素の props.textBlueprint Value にバインドされている場合、そのバインディングが優先されます。算出された値は毎回の描画時に props.text の上に重ねられ、書き戻されることはありません。そのため Set Text が保存する文字列は誰の目にも触れず、Get Text が読み取るのも画面上のものではなく保存されたその文字列です。値グラフが読んでいるデータそのものを変更してください。

Append Text

blueprint.text.appendText · Latent

現在の文字列を読み取り、末尾に text を付けて書き戻します。空文字列を追加した場合は元と同じ文字列になるため、実質的な操作は行われません。

ピン方向備考
inin · exec
nextout · exec
textin · datastring区切り記号を挟まず、そのまま追加されます。カード上での直接入力に対応します。

Clear Text

blueprint.text.clearText · Latent

空文字列を書き込みます。何も接続していない Set Text と同じですが、カード上でその意図を明示します。

ピン方向備考
inin · exec
nextout · exec

Get Font

blueprint.text.getFont · Pure

要素が使用しているプロジェクトのフォントアセットの id を読み取ります。

ピン方向備考
fontAssetIdout · datastringフォントアセットが未設定で、要素がキャンバスの既定書体を継承している場合は空文字列です。

Set Font

blueprint.text.setFont · Latent

要素をプロジェクトのフォントアセットに向けます。

ピン方向備考
inin · exec
nextout · exec
fontAssetIdin · datastring空欄または解決できない値はフォントをクリアし、要素をキャンバスの既定書体に戻します。カード上での直接入力に対応します。

Get Font Size

blueprint.text.getFontSize · Pure

ピン方向備考
fontSizeout · datafloatSurface のデザインピクセルです。

Set Font Size

blueprint.text.setFontSize · Latent

ピン方向備考
inin · exec
nextout · exec
fontSizein · datafloat下限は 1 にクランプされます。インスペクターの 8–256 の範囲はブループリントによる書き込みには適用されません。フォールバック値は 16 です。カード上での直接入力に対応します。

Get Font Weight

blueprint.text.getFontWeight · Pure

ピン方向備考
fontWeightout · datastringnormal600bold のいずれかです。

Set Font Weight

blueprint.text.setFontWeight · Latent

字重は数値の CSS font-weight ではなく、3値の列挙型です。ここでの 700bold の同義語ではありません——許可された集合の外にあるため、normal にフォールバックします。

ピン方向備考
inin · exec
nextout · exec
fontWeightin · datastringnormal600、または bold です——"600" は文字列であり、数値ではありません。それ以外の値はすべて normal にフォールバックします。カード上での直接入力に対応します。

Get Text Color

blueprint.text.getTextColor · Pure

ピン方向備考
colorout · dataRGBAColor

Set Text Color

blueprint.text.setTextColor · Latent

要素は色を CSS の色文字列として保持しており、これらのピンは双方向に変換します。そのためピンの型は string ではなく RGBAColor です。

ピン方向備考
inin · exec
nextout · exec
colorin · dataRGBAColorカード上での直接入力はできません——Data の色の定数、または別のノードの RGBAColor 出力を接続してください。フォールバックは現在の色です。

Get Text Align

blueprint.text.getTextAlign · Pure

ピン方向備考
textAlignout · datastringleftcenterright のいずれかです。

Set Text Align

blueprint.text.setTextAlign · Latent

要素のボックス内でテキスト行を水平方向に揃えます。ボックス自体の移動やサイズ変更は行いません。

ピン方向備考
inin · exec
nextout · exec
textAlignin · datastringleftcenter、または right です。それ以外の値はすべて left にフォールバックします。カード上での直接入力に対応します。

Get Text Vertical Align

blueprint.text.getTextVerticalAlign · Pure

ピン方向備考
textVerticalAlignout · datastringstartcenterend のいずれかです。

Set Text Vertical Align

blueprint.text.setTextVerticalAlign · Latent

要素のボックス内でのテキスト行の配置を決めます。ボックス内でテキストを動かすものであり、ボックス自体のサイズは変更しません。

ピン方向備考
inin · exec
nextout · exec
textVerticalAlignin · datastringstartcenter、または end です。それ以外の値はすべて start にフォールバックします。カード上での直接入力に対応します。

Get Line Height

blueprint.text.getLineHeight · Pure

ピン方向備考
lineHeightout · datafloatピクセル距離ではなく、フォントサイズに対する単位のない倍率です。

Set Line Height

blueprint.text.setLineHeight · Latent

ピン方向備考
inin · exec
nextout · exec
lineHeightin · datafloat倍率で、下限は 0.1 にクランプされます。フォールバック値は 1.4 です。カード上での直接入力に対応します。

Get Wrap Mode

blueprint.text.getWrapMode · Pure

ピン方向備考
textWrapModeout · datastringwordcharacternowrap のいずれかです。

Set Wrap Mode

blueprint.text.setWrapMode · Latent

ピン方向備考
inin · exec
nextout · exec
textWrapModein · datastringword は単語の間で改行し、character は単語の内部でも改行し、nowrap は決して改行しません。それ以外の値はすべて word にフォールバックします。カード上での直接入力に対応します。

Get Effects

blueprint.text.getEffects · Pure

要素の静的エフェクトブロックを、常にすべてのフィールドが揃った1つの JSON オブジェクトとして読み取ります。

{
    "effectBlur": 0,
    "effectBackgroundBlur": 0,
    "effectShadow": null,
    "effectTextShadow": null,
    "effectInnerShadow": null,
    "effectBlend": "",
    "effectGlow": null,
    "effectFilter": null
}

テキスト要素が反映するのは effectBlureffectTextShadoweffectBlendeffectFilter だけです——影は CSS の text-shadow で描かれ、box-shadow 系のフィールドは chrome 系ウィジェットに属します。そのため、テキスト要素上では effectShadoweffectInnerShadoweffectGlow は常に null として読み戻されます。

ピン方向備考
effectsout · datajson

Set Effects

blueprint.text.setEffects · Latent

エフェクトブロック全体を置き換えます——これはマージではないため、1つのフィールドだけを変えたい場合は、先に Get Effects で読み取ってからそのオブジェクトを編集してください。

box-shadow 系のフィールドへの書き込みが静かに失われるわけではありません。次に読み取ったとき、テキストシャドウが未設定であれば effectShadow(それもなければ effectGlow)が effectTextShadow に昇格し、box-shadow 系のフィールド自体は null として返ります。影自体は表示されますが、書き込んだキーの下ではありません。

ピン方向備考
inin · exec
nextout · exec
effectsin · datajson欠けているフィールドや形式が不正なフィールドは、現在のエフェクトではなく上記の既定値で埋められます。何にも解決できない場合のみ、全体が現在のエフェクトにフォールバックします。

Get All Properties

blueprint.text.getAllProperties · Pure

1枚のカードですべてのテキストプロパティを取得します。各出力は、対応する専用の getter が返すものとまったく同じ内容を運びます。

ピン方向備考
textout · datastring
fontAssetIdout · datastringフォントアセットが未設定の場合は空文字列です。
fontSizeout · datafloat
fontWeightout · datastring
colorout · dataRGBAColor
textAlignout · datastring
textVerticalAlignout · datastring
lineHeightout · datafloat
textWrapModeout · datastring
effectsout · datajson

Set All Properties

blueprint.text.setAllProperties · Latent

1回のパッチですべてのテキストプロパティを書き込むため、要素は10回ではなく1回だけ再描画されます。まず現在のプロパティを読み取り、それをすべてのピンのフォールバックとして使うため、これは唯一「ピンを未接続のままにすると現在の値が保持される」setter です——単一プロパティの setter とはちょうど逆になります。

ピン方向備考
inin · exec
nextout · exec
textin · datastringカード上での直接入力に対応します。
fontAssetIdin · datastring明示的に null を渡した場合もフォントはクリアされます。カード上での直接入力に対応します。
fontSizein · datafloat下限は 1 にクランプされます。カード上での直接入力に対応します。
fontWeightin · datastringnormal600、または bold です。カード上での直接入力に対応します。
colorin · dataRGBAColorカード上での直接入力はできません。
textAlignin · datastringleftcenter、または right です。カード上での直接入力に対応します。
textVerticalAlignin · datastringstartcenter、または end です。カード上での直接入力に対応します。
lineHeightin · datafloat倍率で、下限は 0.1 にクランプされます。カード上での直接入力に対応します。
textWrapModein · datastringwordcharacter、または nowrap です。カード上での直接入力に対応します。
effectsin · datajsonカード上での直接入力はできません。

Get Visible

blueprint.text.getVisible · Pure

ピン方向備考
visibleout · databoolean

Set Visible

blueprint.text.setVisible · Latent

要素の visible プロパティを設定します。これは Displayable 分類の Set Display とは別のスイッチです。display は要素とそのサブツリーをマウントしたまま CSS で隠す実行時の描画スイッチであり、visible はインスペクターが公開しているレイアウト上の可視性プロパティです。

ピン方向備考
inin · exec
nextout · exec
visiblein · databooleanカード上での直接入力はできません——真偽値を接続してください。フォールバックは現在の値です。

Get Enabled

blueprint.text.getEnabled · Pure

ピン方向備考
enabledout · databoolean

Set Enabled

blueprint.text.setEnabled · Latent

false は下層の操作無効化の仕組みに対応付けられます。生の interactionDisabled プロパティは作者には公開されていないため、このペアがそのインターフェースのすべてです。

ピン方向備考
inin · exec
nextout · exec
enabledin · databooleanカード上での直接入力はできません——真偽値を接続してください。フォールバックは現在の値です。

このページの目次