投稿記事

2022年 03月の記事 (2)

りりー☆くり~む 2022/03/26 10:43

[制作者向け] プラグイン作ったりする話|˙꒳​˙)ノ[ツクールMV]

ツクーラーさんの役に立てばいいなみたいな記事

前回記事のエフェクトの下にふきだしが隠れてしまう問題。
これを解決するお話。

スクリプトだけで何とかならないかな
        →ならんかった('Д';)

そんなこんなで、ツクールMV自体の仕様の確認をする感じになりました。

ツクールMVのゲーム上の動作はJavascriptで書かれている。
そうなると、Javascript勉強したらプラグイン作れる?となるけれど、
ツクールの仕様もあるので、Javascriptだけじゃ足りない。

どっちかというと、ツクールの仕様を知る方が大変('ω')

そんな感じで、『ふきだし埋もれる問題』を解決した手順を書いていくのです。
現在過去未来問わず、同じ問題で困ってる人、の参考になれば良いな✨

・ツクールMVの仕様を追う
まず、アニメーション表示のスクリプトを調べる。
検索するとすぐに出てくる。

this.character(イベントID).requestAnimation(アニメーションID)

これを追っていくのが多分一番楽なのである|˙꒳˙)

キャラクター(イベント)を対象にしているので、それっぽい所を漁る。

このthisが、どこの事を指して、どの命令を使っているのかを調べる必要がある。
『rpg_objects.js』のGame_CharacterBaseに同じ命令『requestAnimation』を見つける。

Game_CharacterBase.prototype.requestAnimation = function(animationId) {
	this._animationId = animationId;
};

アニメーションのIDを渡しているだけという仕様('ω')ナンダト?
ので、ここから関連する所を探すのに、全てのjsファイルを開き、
探していくと、ここにたどり着いた。

Sprite_Character.prototype.setupAnimation = function() {
      if (this._character.animationId() > 0) {
          var animation = $dataAnimations[this._character.animationId()];
          this.startAnimation(animation, false, 0);
          this._character.startAnimation();
      }
};

どうやら、常にアニメーションIDを監視して、
0より大きかったら実行するってしてるらしい?
マジデ('ω')?

その後、最後の行の this._character.startAnimation(); を探すと、

Sprite_Base.prototype.startAnimation = function(animation, mirror, delay) {
      var sprite = new Sprite_Animation();
      sprite.setup(this._effectTarget, animation, mirror, delay);
      this.parent.addChild(sprite);
      this._animationSprites.push(sprite);
};

にたどり着く。
ここの中の1行目
var sprite = new Sprite_Animation();
ここでようやく、アニメーションのオブジェクトの作成をしている所までたどりついたのである。


このオブジェクトに、z というプロパティがあり、
ツクールMVでは、z は主に階層を管理するのに使われている。

0:地面   1:キャラ下  3:キャラ   4:タイル☆
5:キャラ上 6飛行船影  7:ふきだし  8:アニメーション

こんな仕様らしい。
2は何だろう?影用かな('ω')?

後は、zの初期値を書き換えるか、sprite.setupの中でzを書き換えるかである。
初期値を直接変えてしまうと、他のイベントにも影響が出る。
今まで作ったイベントに影響を与えず、好きな時に階層を書き換えらえるようにしたい。

そこで、スクリプトでrequestAnimationを呼び出すときに、階層指定もできるようにする事にした。

スクリプトでrequestAnimationを呼び出した時に指定した階層を、
Sprite_Animationのsetup まで渡し続けていくのである('ω')

■手順
1.Game_CharacterBaseに繋ぐための階層関係のプロパティを作る
 Game_CharacterBase.prototype.initMembersの中に

 this._animationZ = 8;

を追記する。

 元のソースがIDを渡す時に_animationIdにしてるから、
 Z軸の階層なので、_animationZ という名前にしてみた。
 ⁼8は、無くても問題ないけど初期化しておきたい欲。

2.スプライトから呼び出す時用に、引数にanimationZ追加
 変数名は、元の変数に合わせて似た感じでつけただけである|˙꒳˙)

↓こんな感じ

Game_CharacterBase.prototype.requestAnimation = function(animationId, animationZ) {
    this._animationId = animationId;
    this._animationZ = animationZ;
};

3.animationIdを渡しているのと同じ感じで、_animationZを渡すやつも作る

Game_CharacterBase.prototype.animationZ = function() {
    return this._animationZ;
};

4.setupAnimation内でstartAnimation呼び出す時に_animationZ渡して

this.startAnimation(animation, false, 0, this._character.animationZ());

5.startAnimationにも引数を追加して受け取れるようにして、
 それをsetupの所に放り込んで… (aniZという名前にした)

Sprite_Base.prototype.startAnimation = function(animation, mirror, delay, aniZ = 8){
    var sprite = new Sprite_Animation();
    sprite.setup(this._effectTarget, animation, mirror, delay , aniZ);
    (略)
}

6.放り込んだのを受け取るようにsetupにも引数追加して

Sprite_Animation.prototype.setup = function(target, animation, mirror, delay, aniZ) {略}

7.setupの中に this.z を変更するのを追記する

this.z = aniZ;

こんな感じで、ようやく渡し終わって関連付け完了。
これで、スクリプトで呼び出す時に階層指定できるようになった
完成 (*´꒳`*ノノ゙パチパチ

ヽ('ω') 最近お世話になった人の作品情報 ('ω')ノ

DLsiteスプリングセール中|˙꒳˙)ノシ

MANKI YAGYO
永門企画

百鬼魔胎
ハム猫タピオカ

温室育ちのお嬢様にエロゲの知識しかない俺がHな授業をする事になった件!
ハイパーうさぎ工房

背徳の女神ファリア
妄想パスタ

オルタナティブ・サーヴァント
びすます

ヤンデレ後輩ちゃんの射精管理
ぢゅぱり屋本舗別館

ソウルボマー
猫缶

バーサーカーレディ
いちごぱふぇそふと

Le dernier saint chevalier
B.H.C

いんもらる都市 -ロティのえっちな発明物語-
ちぇすとぼっくす

戦巫女ミズキ
東京妖異研究所

女の子が着衣のまま精液とおしっこをかけられるCG集
ちゃせたの庭

絶頂スレイヤーズ Season3
世界樹のめばえ。

淫天使ラヴエルのらぶらぶちゅ~ピット
MAPLE CLOVER

天使はお金にきたない
古都管理室

りりー☆くり~む 2022/03/04 22:01

エフェクト作りはじめた|˙꒳​˙)ノ

メインストーリーの部分が一通りつながり、一通り走れるように(*´꒳`*)
というわけで、2月は、おかしい所修整や、演出を色々追加したりしてました。

エフェクト大量生産やーฅ(•ω•ฅ)♪

地面に激突した時、爆発だとギャグっぽくなってしまうので、
普通の土煙が欲しかった|˙꒳˙)

実際に配置すると、

なかなか良いではないかฅ(•ω•ฅ)✨



次は、クリームが逃げる時に、触手を大量に召喚して、
それでりりーが驚いて、吹き飛ばす技。

フィールド用の小さいのと、戦闘用の大きいのを2つ作る。

かなり良い感じฅ(•ω•ฅ)ハッハー♪

そして、大量に召喚される触手に驚くりりー(~'ω')~

噴きだし埋まるんかいっ('Д')!


ヽ('ω') 最近お世話になった人の作品情報 ('ω')ノ

MANKI YAGYO
永門企画

百鬼魔胎
ハム猫タピオカ

温室育ちのお嬢様にエロゲの知識しかない俺がHな授業をする事になった件!
ハイパーうさぎ工房

背徳の女神ファリア
妄想パスタ

オルタナティブ・サーヴァント
びすます

ヤンデレ後輩ちゃんの射精管理
ぢゅぱり屋本舗別館

ソウルボマー
猫缶

バーサーカーレディ
いちごぱふぇそふと

いんもらる都市 -ロティのえっちな発明物語-
ちぇすとぼっくす

戦巫女ミズキ
東京妖異研究所

股責め失禁
ちゃせたの庭

淫天使ラヴエルのらぶらぶちゅ~ピット
MAPLE CLOVER

Le dernier saint chevalier
B.H.C

天使はお金にきたない
古都管理室

月別アーカイブ

限定特典から探す

記事を検索