メインコンテンツへスキップ
  1. SOroom/

ティラノでcamera,mask,bgタグの動作を軽くする

ゲ制 ティラノスクリプト
目次

軽くする #

軽くします。単純にスキップ時とtime=0の時にアニメを使わずCSSを直接変更するだけです。スマホだとバグるかもしれません。

使用バージョン #

ティラノスクリプトV5です。やり方的にはV4でもできます。

改造 #

tyrano.plugin.kag.tag.camera #

    if (
      pm.from_x != "0" ||
      pm.from_y != "0" ||
      pm.from_zoom != "1" ||
      pm.from_rotate != "0"
    ) {
      this.kag.stat.current_camera[pm.layer] = {
        x: parseInt(pm.from_x) * -1 + "px",
        y: parseInt(pm.from_y) * 1 + "px",
        scale: pm.from_zoom,
        rotate: pm.from_rotate + "deg",
      };
    }

    //【改造:追加】
    //★スキップ時とtime=0時にはCSS直接変えてリターン
    if (this.kag.stat.is_skip == true || pm.time == "0") {
      var css_str =
        "scale(" +
        to_camera.scale +
        ") rotate(" +
        to_camera.rotate +
        ") translate(" +
        to_camera.x +
        "," +
        to_camera.y +
        ")";
      if (pm.layer == "layer_camera") {
        $(".layer_camera").css({
          transform: css_str,
          "animation-name": "",
          "-webkit-animation-name": "",
        });
        that.kag.stat.current_camera_layer = "";
      } else {
        $("." + pm.layer + "_fore").css({
          transform: css_str,
          "animation-name": "",
          "-webkit-animation-name": "",
        });
        that.kag.stat.current_camera_layer = pm.layer;
      }

      that.kag.stat.current_camera[pm.layer] = to_camera;
      that.kag.ftag.nextOrder();

      return;
    }
    //【改造:追加ここまで】

    var flag_complete = false;
    that.kag.stat.is_move_camera = true;

tyrano.plugin.kag.tag.reset_camera #


    //【改造:追加】
    //★スキップ時とtime=0時にはCSS直接変えてリターン
  if (this.kag.stat.is_skip == true || pm.time == "0") {
    if (pm.layer != "layer_camera") {
      delete this.kag.stat.current_camera[pm.layer];
    } else {
      this.kag.stat.current_camera = {};
    }

    if (pm.layer == "layer_camera") {
      $(".layer_camera").css({
        "-animation-name": "",
        "-animation-duration": "",
        "-animation-play-state": "",
        "-animation-delay": "",
        "-animation-iteration-count": "",
        "-animation-direction": "",
        "-animation-fill-mode": "",
        "-animation-timing-function": "",
        transform: "",
      });
      that.kag.stat.current_camera_layer = "";
    } else {
      $("." + pm.layer + "_fore").css({
        "-animation-name": "",
        "-animation-duration": "",
        "-animation-play-state": "",
        "-animation-delay": "",
        "-animation-iteration-count": "",
        "-animation-direction": "",
        "-animation-fill-mode": "",
        "-animation-timing-function": "",
        transform: "",
      });
      that.kag.stat.current_camera_layer = "";
    }

    that.kag.ftag.nextOrder();

    return;
  }
  //【改造:追加ここまで】

tyrano.plugin.kag.tag.mask #

  var that = this;
  that.kag.layer.hideEventLayer();

  //【改造:追加】
  //★スキップ時とtime=0時にはCSS直接変えてリターン
  //★画像はブラウザだと事前にpreloadしてないと挙動が危なそう
  if (this.kag.stat.is_skip == true || pm.time == "0") {
    var j_div = $(
      "<div class='layer layer_mask' style='z-index:100000000;position:absolute;'>"
    );
    var sc_width = parseInt(that.kag.config.scWidth);
    var sc_height = parseInt(that.kag.config.scHeight);

    j_div.css({ width: sc_width, height: sc_height });

    if (pm.color == "none") {
      j_div.css("background-color", "");
    } else {
      j_div.css("background-color", $.convertColor(pm.color));
    }

    if (pm.graphic != "") {
      var folder = "";
      if (pm.folder != "") {
        folder = pm.folder;
      } else {
        folder = "image";
      }

      var storage_url = "";

      if (pm.graphic != "") {
        storage_url = "./data/" + folder + "/" + pm.graphic;
        j_div.css("background-image", "url(" + storage_url + ")");
      }
    }

    $(".tyrano_base").append(j_div);
    that.kag.ftag.nextOrder();

    return;
  }
  //【改造:追加ここまで】

tyrano.plugin.kag.tag.mask_off #

  var that = this;
  var j_div = $(".layer_mask");

  //【改造:追加】
  //★スキップ時とtime=0時にはCSS直接変えてリターン
  if (this.kag.stat.is_skip == true || pm.time == "0") {
    if (j_div.get(0)) {
      j_div.remove();
      that.kag.layer.showEventLayer();
      that.kag.ftag.nextOrder();
    } else {
      that.kag.layer.showEventLayer();
      that.kag.ftag.nextOrder();
    }

    return;
  }
  //【改造:追加ここまで】

tyrano.plugin.kag.tag.bg #

  this.kag.preload(storage_url, function () {
    var j_old_bg = that.kag.layer.getLayer("base", "fore");

    //【改造:追加】
    //★スキップ時とtime=0時にはCSS直接変えてリターン
    if (that.kag.stat.is_skip == true || pm.time == "0") {
      j_old_bg.css("background-image", "url(" + storage_url + ")");
      if (pm.wait == "true") {
        that.kag.ftag.nextOrder();
      }
      return false;
    }
    //【改造:追加ここまで】