見出し画像

【ティラノビルダー】フォーカス効果の改造方法

フォーカス効果の改造方法について解説します。


【注意点】

ティラノスクリプト本体を改造しています。

不具合が発生した場合は、お手数をおかけしますが、今回貼り付けたコードを削除してください。

【使用素材】

わたおきば様の立ち絵を使用させていただきました。

①plugin.ksファイルの編集

画面左上のプロジェクト名をクリックします。

scenarioフォルダをクリックします。

systemフォルダをクリックします。

plugin.ksをメモ帳で開きます。

[return]と書かれています。このコードは絶対に消さないでください。

下記のコードを貼り付けます。

tyrano.plugin.kag.tag.chara_ptext = {
  pm: {
    name: "",
    face: ""
  },
  start: function(pm) {
    this.kag.layer.hideEventLayer();
    "none" != this.kag.stat.chara_talk_focus && $("#tyrano_base").find(".tyrano_chara").css({
      "-webkit-filter": "brightness(100%) blur(0px)",
      "-ms-filter": "brightness(100%) blur(0px)",
      "-moz-filter": "brightness(100%) blur(0px)"
    })
    if ("" == pm.name) {
      $("." + this.kag.stat.chara_ptext).html("");
    } else {
      this.kag.stat.jcharas[pm.name] && (pm.name = this.kag.stat.jcharas[pm.name]);
      var cpm = this.kag.stat.charas[pm.name];
      if (cpm) {
        $("." + this.kag.stat.chara_ptext).html(cpm.jname);
        "" != cpm.color && $("." + this.kag.stat.chara_ptext).css("color", $.convertColor(cpm.color));
        if ("none" != this.kag.stat.chara_talk_focus) {
          var chara_obj = $("#tyrano_base").find("." + pm.name + ".tyrano_chara");
          if (chara_obj.length > 0) {
            $("#tyrano_base").find(".tyrano_chara").css({
              "-webkit-filter": this.kag.stat.apply_filter_str,
              "-ms-filter": this.kag.stat.apply_filter_str,
              "-moz-filter": this.kag.stat.apply_filter_str
            });
            chara_obj.css({
              "-webkit-filter": "brightness(100%) blur(0px)",
              "-ms-filter": "brightness(100%) blur(0px)",
              "-moz-filter": "brightness(100%) blur(0px)"
            });
          }
        }
        if ("none" != this.kag.stat.chara_talk_anim) {
          var chara_obj = $("#tyrano_base").find("." + pm.name + ".tyrano_chara");
          if (chara_obj.get(0)) {
            this.animChara(chara_obj, this.kag.stat.chara_talk_anim, pm.name);
            "" != pm.face && this.kag.ftag.startTag("chara_mod", {
              name: pm.name,
              face: pm.face,
              time: "0"
            })
          }
        }
      } else {
        if (pm.name.includes(',')) {
          if (!this.kag.stat.charas["characters"]) {
            this.kag.stat.charas["characters"] = {};
          }
          var charaList = pm.name.split(',');
          var displayedChar = charaList.shift();
          this.kag.stat.charas["characters"].jname = displayedChar;
          $("." + this.kag.stat.chara_ptext).html(this.kag.stat.charas["characters"].jname);
          if ("none" != this.kag.stat.chara_talk_focus) {
            var foundElements = [];
            charaList.forEach(function(name) {
              var $elements = $("#tyrano_base").find("." + name + ".tyrano_chara");
              if ($elements.length > 0) {
                foundElements.push($elements);
              }
            });
            if (foundElements.length > 0) {
              $("#tyrano_base").find(".tyrano_chara").css({
                "-webkit-filter": this.kag.stat.apply_filter_str,
                "-ms-filter": this.kag.stat.apply_filter_str,
                "-moz-filter": this.kag.stat.apply_filter_str
              });
              foundElements.forEach(function($elements) {
                $elements.css({
                  "-webkit-filter": "brightness(100%) blur(0px)",
                  "-ms-filter": "brightness(100%) blur(0px)",
                  "-moz-filter": "brightness(100%) blur(0px)"
                });
              });
            }
          }
          if ("none" != this.kag.stat.chara_talk_anim) {
            charaList.forEach(function(name) {
              var chara_obj = $("#tyrano_base").find("." + name + ".tyrano_chara");
              if (chara_obj.get(0)) {
                this.animChara(chara_obj, this.kag.stat.chara_talk_anim, name);
                "" != pm.face && this.kag.ftag.startTag("chara_mod", {
                  name: name,
                  face: pm.face,
                  time: "0"
                });
              }
            });
          }
        } else {
          $("." + this.kag.stat.chara_ptext).html(pm.name);
        }
      }
    }
    if (1 == this.kag.stat.vostart && this.kag.stat.map_vo.vochara[pm.name]) {
      var vochara = this.kag.stat.map_vo.vochara[pm.name],
        se_pm = {
          loop: "false",
          storage: $.replaceAll(vochara.vostorage, "{number}", vochara.number),
          stop: "true",
          buf: vochara.buf
        };
      this.kag.ftag.startTag("playse", se_pm);
      this.kag.stat.map_vo.vochara[pm.name].number = parseInt(vochara.number) + 1
    }
    this.kag.stat.f_chara_ptext = "true";
    if ("" != pm.face) {
      if (!this.kag.stat.charas[pm.name].map_face[pm.face]) {
        this.kag.error("指定されたキャラクター「" + pm.name + "」もしくはface:「" + pm.face + "」は定義されていません。もう一度確認をお願いします");
        return
      }
      this.kag.stat.charas[pm.name].map_face[pm.face];
      "none" == this.kag.stat.chara_talk_anim && this.kag.ftag.startTag("chara_mod", {
        name: pm.name,
        face: pm.face
      })
    } else {
      this.kag.layer.showEventLayer();
      this.kag.ftag.nextOrder()
    }
  },
  animChara: function(chara_obj, type, name) {
    if (void 0 === this.kag.tmp.map_chara_talk_top[name]) {
      var that = this,
        tmp_top = parseInt(chara_obj.get(0).offsetTop);
      chara_obj.css("top", tmp_top);
      var a_obj = {},
        b_obj = {};
      this.kag.tmp.map_chara_talk_top[name] = !0;
      var anim_time = this.kag.stat.chara_talk_anim_time;
      if ("up" == type) {
        a_obj.top = tmp_top - this.kag.stat.chara_talk_anim_value;
        b_obj.top = tmp_top
      } else if ("down" == type) {
        a_obj.top = tmp_top + this.kag.stat.chara_talk_anim_value;
        b_obj.top = tmp_top
      }
      chara_obj.stop(!0, !0).animate(a_obj, anim_time, "easeOutQuad", (function() {
        chara_obj.stop(!0, !0).animate(b_obj, anim_time, "easeOutQuad", (function() {
          delete that.kag.tmp.map_chara_talk_top[name]
        }))
      }))
    }
  }
};
TYRANO.kag.ftag.master_tag.chara_ptext = TYRANO.kag.tag.chara_ptext
TYRANO.kag.ftag.master_tag.chara_ptext.kag = TYRANO.kag
[endscript]

最後に上書き保存します。

これで、plugin.ksファイルの編集は完了です。

①フォーカス効果の設定

「プロジェクト」「ゲームコンフィグ」をクリックし、ゲームセッティング画面を開きます。

「キャラクター」をクリックします。

「フォーカス」をクリックします。

「効果なし」をクリックします。

今回は、「ブライトネス」を指定しました。

「更新する」をクリックします。

更新しましたと表示されるので、「OK」をクリックします。
最後に、ゲームセッティング画面を閉じます。

これで、フォーカス効果の設定は完了です。

③使用例

  • えま

  • はると

  • つむぎ

  • みなと

今回は、上記の名前をキャラクター名に設定しています。

③-(1) 注意点

複数人のキャラクターが話している場合は、
①メッセージウィンドウ・バックログに表示したい名前
②1人目のキャラクターの名前
③2人目のキャラクターの名前の順に指定します。

必ず半角の,(コンマ)で区切ってください。

③-(2) (例) 2人のキャラクターが話している場合

#2人(えま、はると),えま,はると
おはよう[p]

③-(3) (例) 3人のキャラクターが話している場合

#3人(えま、はると、つむぎ),えま,はると,つむぎ
おはよう[p]

これで、フォーカス効果を改造する手順は完了です。

以上で解説を終わります。おつかれさまでした。