TextSprite [w] HTML5版テスト2(新) HTML5版テスト(旧) 何度目かの作り直しでやっと納得の行く表示になったかと思います。 -------------------------------------------------------------------------------- -- TextSprite Extension 20240707 -------------------------------------------------------------------------------- 動作までの配置 CF25\Extensions\Unicode\TextSprite.mfx CF25\Data\Runtime\Unicode\TextSprite.mfx ----------------------------- ※新しい更新箇所 20240707 DirectX11の乗算アルファでも表示されるように調整 20231222 画面外に移動しても自動的に削除されないように調整 20221114 外部ファイル読み込み起動に関する処理を修正 20220908 表示の再修正・コールバック位置を取得できる機能の追加 20220907 [CALL:abc]コールバック機能の追加と一部不具合の修正 20220905 [P]タグまでスキップする機能の追加と一部不具合の修正 -------------------------------------------------------------------------------- ■仕様など 標準のテキストオブジェクトとリンクさせる事で、色々な表現ができるようになります。 ・文字の出現アニメーションとその管理 ・文字のグラデーション、アウトライン、シャドウ、アンチエイリアス(文字・アウトライン) ・単一文字への座標管理、拡大、回転、着色、座標取得 ・行間の設定 ・縦書きへの対応と位置合わせ ・文字全体の回転・拡大・着色 ・フォントの画像化とスプライトフォント化機能 ・文字へ画像の合成 基本的に文字列オブジェクトの文字配置設定を互換します。 □アンチエイリアスの設定について それぞれ動作に特徴があり ・文字列オブジェクトのアンチエイリアス設定(文字の回りにアンチエイリアス) ・TextSprite Extensionでのアンチエイリアス設定(アウトラインやスケーリング時に有効) RGB設定などのエフェクトはTextSprite側で利用されます。 □制限について DX11でも動作しますが、乗算済みテクスチャがONになっていると正しく動作しないようです 32bitカラーのみ対応 PNGフィルタの追加を明示的に行わなくてもビルド時にPNGフィルタが内包されるようになりました ※FRGB,GRGB,ORGB,IMSKといった、フォント生成に関係する機能では スプライトフォント化しての実行動作に対しての動作はしませんので注意。 -------------------------------------------------------------------------------- ■簡易スクリプトについて 文中に下記の書式が混ざる場合、文字及びアニメーションへの効果が起こります 文字効果については設定以降の文字に対して影響されますので、戻す場合は再度上書きする形で再設定してください [FRGB:255,0,0] 文字の色自体の変更 [GRGB:255,0,0] グラデーションカラーの変更 [ORGB:255,0,0] アウトラインカラーの変更 [RGB:255,0,0] フィルタエフェクトとして色を変更します(この例では赤になります) [WAIT:60] ウエイトを掛けます(この例では60フレームのウエイト) [SPD:5] 標準ウエイト値の変更 (TextSync時に設定するウエイトの変更) [FADE:5] フェードスピードの変更(TextSync時に設定するアニメーションフェードスピードの変更) [SCALE:1.0,1.0] スケール値の変更(widthとheightのスケールを変更します) [P] 表示の一時停止を行います [WAVE:1.0,0.1] 文字を揺らします。渡す値はfloat(幅,フレームあたりの速度)です ※ドット幅をマイナスにすると横方向に揺らします [IMSK:0,1] 画像マスク適用フラグを変更します (この例ではslot 0を Onにする) 機能的に UseImageMask( slot , flg )と同じものです。 [CALL:あいう] このスクリプトが表示されるタイミングでCallBackScriptが発生します getCallBackによってその内容を取り出せます。 -------------------------------------------------------------------------------- ■プロパティ アウトサインの幅やアウトラインの色 フォントシャドウの有無、シャドウの色などを設定できます ■Action LinkTextObject 標準のテキストオブジェクトの固定値を指定し、エクステンションとリンクさせます TextSync( ウエイト , アニメーションフェードスピード) テキストオブジェクトに設定されている文字情報を元に、表示設定を行います AnimationSkipToPauseTag 次にある[P]タグまでアニメーションをスキップします AnimationSkip アニメーション機能をスキップし、全部表示させます AnimationPause アニメーションのウエイトを一時停止させます(それまでのフェードインは継続される) AnimationResume アニメーションのウエイトを再開します SetGradientMode 文字のグラデーションモードを変更します(プロパティのチェックボックスにもあり) SetOutline アウトラインの幅を指定します(プロパティのチェックボックスにもあり) SetHotSpot テキストボックスを対象に、ホットスポットを設定します(回転拡縮向け) SetScale テキストボックスを対象に、スケール値を設定します SetAngle テキストボックスを対象に、回転角を設定します SetPosition テキストボックスを対象に、位置を変更します CharactersDefaultAngle 表示される文字全体の回転角を設定します CharactersDefaultScale 表示される文字全体のスケールを設定します CharactersDefaultRGB 表示される文字全体のRGBを設定します setCharacterPosition 1文字あたりを対象に、位置を変更します setCharacterHotspot 1文字あたりを対象に、ホットスポットを変更します setCharacterScale 1文字あたりを対象に、スケールを変更します setCharacterAngle 1文字あたりを対象に、回転角を変更します setCharacterRGB 1文字あたりを対象に、RGB色を設定します setCharacterAlpha 1文字あたりを対象に、アルファ値を設定します refreshCharacters 文字情報(サイズなど)を変更している場合、変更後サイズを元にテキスト位置の再計算を行います addCharacterWait 1文字あたりを対象に、アニメーションウエイトを加算します(マイナスを指定すれば減算) SetLineSpace 行間を指定します SetVerticalWrite 縦書き設定を指定できます(プロパティのチェックボックスにもあり) imagefont_outfile 現在のテキストを元にスプライトフォントを出力します imagefont_infile スプライトフォントを読み込みます imagefont_mode スプライトフォントの使用を設定します ChangeTextBoxRect 描画する位置やサイズを変更できます SetOutLineMode アウトラインを使用する際の描画モードを設定します(0で囲み表示 1で描画をズラして表示) SetAnimationType 表示アニメーションのパターンを設定します SetImageMask( slot , active_object_fixed ) フォントに合成する画像を、アクティブオブジェクトを通して指定します UseImageMask( slot , flg ) 登録したスロットに対して、使用フラグを設定します ※基本的な使い方は動作サンプルを見て頂ければ大体わかるかと思います。 -------------------------------------------------------------------------------- ■Expressions getcharcterPosition 1文字あたりを対象に、配置位置を取得します(ボックスからの相対距離) 0:x座標 1:y座標 2:計算後x座標 3:計算後y座標 (setCharacterPosition等で変更した値は前者の値が取れ、後者の値は配置後の固定値) getcharcterSize 1文字あたりを対象に、幅情報を取得できます(行間含む) ※文字のピクセルサイズも取得できるように拡張されました (PW PH) getcharcterAnimationStep 1文字あたりを対象に、アニメーションフェード値が取得できます getcharcterAngle 1文字あたりを対象に、角度が取得できます getcharcterAlpha 1文字あたりを対象に、アルファ値が取得できます getStringSize スクリプト記述を除外した文字列の長さを取得できます getCallBack$ 簡易スクリプト[CALL:]の中身を取得します getCallBackPosition コールバック発生位置にある文字位置を取得できます -------------------------------------------------------------------------------- ■Conditions FinishAnimationDraw 全ての表示が終了したら発生します ScriptPause 簡易スクリプトによる一時停止発生時に発生します CallBackScript 簡易スクリプト[CALL:]が呼び出されたタイミングで発生します getCallBackと連携し、中身を取り出せます -------------------------------------------------------------------------------- □変更点 20240707 DirectX11の乗算アルファでも表示されるように調整 20231222 画面外に移動しても自動的に削除されないように調整 20221114 外部ファイル読み込み起動に関する処理を修正 20220908 表示の再修正・コールバック位置を取得できる機能の追加 20220907 [CALL:abc]コールバック機能の追加と一部不具合の修正 20220905 [P]タグまでスキップする機能の追加と一部不具合の修正 20220903 文字に画像を合成する機能の追加 20220729 表示アニメーションのパターンを追加 20220725 文字を揺らす簡易スクリプトの追加[WAVE:vec,spd] 20220521 アクションから影の指定をできるようにするSetTextShadowの追加 簡易スクリプト構文の追加 テキストシャドウ生成の調整 20220520 少し綺麗に見えるアウトラインモードの追加 SetOutLineModeの拡張 20220513 ChangeTextBoxRectにより任意の位置とサイズにできるように拡張 フォントによってはスペースにドットが出現していた点を調整 20220508 簡易スクリプトを除外した文字列の長さを取得できるように拡張 20220506 シャドウONの際に文字単体のα値を操作してもシャドウはそのままだった点の修正 20220505 簡易スクリプトのRGBが正しい値になっていなかった点の修正(CharactersDefaultRGBの追加) 20220504 文字のリアルサイズを取得できるように拡張 20220119 簡易スクリプトの実装 20220118 アニメーションの一時停止と再開の実装 20220127 ターゲット文字列側スクロールオプションに追随する拡張 20211126 連続する改行を認識していなかった点の改良 20211016 DX11において最速描画時に表示が1テンポ遅れていた点の修正 20211015 アウトライン設定アクション命令が抜けていたので調整 サブアプリ実行時に描画が狂った部分の修正 20210922 ビルド後の実行ファイルでは スプライトフォントの読み込み利用時に 自動でバイナリ内包ファイルを展開して読み込むようになりました 20210927 フォント画像生成時にフォントがテキストBOXより小さい場合に不正落ちする点の改良 20210927 複数のフォントがある場合、上手く動作しなかった点の改善 20210925 シャドウカラーに不備が見られたので改善 -------------------------------------------------------------------------------- ■あとがき 完成した。 基本的に無償で公開していますが 制作したエクステンションを使っての作品が大ヒットして 儲かって儲かって仕方がないというような方は 干し芋リストを公開していますので何かご支援下さると、とても喜びます。 DOWNLOAD OLDVER OLDVER OLDVER