【解決済み】トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

【解決済み】トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

投稿記事by そみや » 2023年5月12日(金) 23:09

こんばんは。いつもお世話になっています。

トリアコンタン様の「動的文字列ピクチャ生成プラグイン」にて
制御文字を使って、アイコンや文字を一部半透明したいと考えています。
ビービー様の「文字枠調節&文字半透明化制御文字追加プラグイン」を参考にプラグインをいじってはいるのですが上手くいきません。

イメージとしては下記の[]に0~255を指定することで透明度を操作したいです。
ただ、「文字枠調節&文字半透明化制御文字追加プラグイン」は0(半透明)と1(通常)でしか指定できない為、アドバイス頂きたいです。

コード: 全て選択

\o[0]→透明
\o[125]→半透明
\o[255] →通常


「動的文字列ピクチャ生成プラグイン」内の下記のコード部分を書き加えると思うのですが、思った結果が得られませんでした。

コード: 全て選択

     Sprite_Picture.prototype._processCharacter = function(textState, bitmap) {
        if (textState.text[textState.index] === '\x1b') {
            var code = this.hiddenWindow.obtainEscapeCode(textState);
            switch (code) {
 


トリアコンタン様の「動的文字列ピクチャ生成プラグイン」
https://triacontane.blogspot.com/2015/12/rpgmv-rpgmv-dtext-1-rpgmv-dtext-dtext.html

ビービー様の「文字枠調節&文字半透明化制御文字追加プラグイン」
https://plugin.fungamemake.com/archives/11110
最後に編集したユーザー そみや on 2023年5月13日(土) 10:56 [ 編集 1 回目 ]

アバター
Plasma Dark
記事: 676
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

投稿記事by Plasma Dark » 2023年5月13日(土) 08:39

動的文字列ピクチャ生成プラグインにおいて、フォントの設定を変更するような制御文字は、通常のウィンドウに表示するための処理とは異なる実装になっています。

通常のウィンドウに表示する文字列の不透明度を操作したい場合は、 Window_Base クラスの processEscapeCharacter に処理を追記すれば実現可能です。

動的文字列ピクチャについて同様のことがしたい場合、 Sprite_Picture クラスの _processCharacter に処理を足すのが一番素直でしょうか。
obtainEscapeCode でtextState.indexが進んでしまうので、その処理だけちょっと気をつけてあげる必要があります。

また、rpg_windows.js の Window_Base.prototype.obtainEscapeCode を読むと、制御文字は必ず大文字に変換されていることがわかります。
ですので、 \o と書いても、実際処理される際には大文字の O として処理されることに注意してください。
アバター
Plasma Dark
記事: 676
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

投稿記事by Plasma Dark » 2023年5月13日(土) 08:41

サンプル実装を用意してみました。
参考にしてみてください。
そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

Re: トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

投稿記事by そみや » 2023年5月13日(土) 10:48

Plasma Dark 様

動的文字列ピクチャにて、不透明度を指定することができました。
プラグインを作って頂き、そして分かり易い説明ありがとうございます。
クラス関係まで考えると自分の力だけでは到底できませんでした。


Plasma Dark 様のプラグインを元に下記のことをしました。

①製作して頂いた「文字の不透明度を操作する制御文字」のプラグインを、そのまま一つのプラグインとして実装
②「動的文字列ピクチャ生成」プラグイン内の「Sprite_Picture.prototype._processCharacter」に下記のコードを追記したところ上手く動作しました。

コード: 全て選択

case 'OP':
bitmap.paintOpacity = this.hiddenWindow.obtainEscapeParam(textState);
アバター
Plasma Dark
記事: 676
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: 【解決済み】トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

投稿記事by Plasma Dark » 2023年5月13日(土) 11:21

①製作して頂いた「文字の不透明度を操作する制御文字」のプラグインを、そのまま一つのプラグインとして実装
②「動的文字列ピクチャ生成」プラグイン内の「Sprite_Picture.prototype._processCharacter」に下記のコードを追記したところ上手く動作しました。


そのまま使った場合(DTextPicture.jsよりも後に読み込めば)2は不要のはずですが、ないと動かないでしょうか。
そみや
記事: 60
登録日時: 2021年1月25日(月) 01:34

Re: 【解決済み】トリアコンタン様の「動的文字列ピクチャ生成プラグイン」で文字半透明

投稿記事by そみや » 2023年5月13日(土) 11:55

Plasma Dark 様

ありがとうございます。
②が無くとも動作しました。

動的文字列ピクチャ(DTextPicture.js)より前に①を読み込んでいた為、②が必要でしたが
①後に読み込んだところ、②は不要でした。

ご指摘ありがとうございました。

“MV:質問” へ戻る