戦闘中、ステート変化など(文字列)をポップアップする機能(解決済み)

アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

戦闘中、ステート変化など(文字列)をポップアップする機能(解決済み)

投稿記事by terunon » 2016年5月07日(土) 22:41

お世話になっております。

現在制作中のゲーム(フロントビュー環境です)は状態異常のログが目まぐるしく表示され煩雑なため、
戦闘中、ダメージポップアップと同じ感覚でステート変化やクリティカルヒット、弱点属性などを
ポップアップできる機能があったら……と考えています。

理想的な形式としては、自由な文字列がダメージポップアップと同じように跳ねてくれるものだと嬉しいです。


ステート変化などをポップアップさせる機能自体は、
VE_DamagePopupさん(https://drive.google.com/file/d/0B0cSp2lASM9wWllDVF9OQ1pBdXM/view?pref=2&pli=1)が既に存在していることは確認しているのですが、
独自要素・改変箇所がかなり多く、収拾をつけられないレベルの競合を起こしてしまうため使用できないのが現状です……。

Sprite_Battler.prototype.setupDamagePopup をいじる等を試みてはみたものの、どうしてもうまくいかず……。
どうかお力を貸していただけないでしょうか?
最後に編集したユーザー terunon on 2016年5月12日(木) 17:27 [ 編集 2 回目 ]

terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: 戦闘中、ステート変化など(文字列)をポップアップする機能

投稿記事by 名無し蛙 » 2016年5月08日(日) 08:50

お疲れ様です。

少ない改変量を重視するならSprite_Damageを改造してChildを追加する方法でしょうかね。
ダメージ(アクション結果)を修飾する形になります。
弱点属性判定を追加する為にGame_ActionResultも少し弄る必要がありますが
基本的にSprite_Damageの改変だけで全て事足りるはずです。

問題は表示位置や表示タイミングの調整の方なんですが、制約はつくものの多少の自由は利くはず…
とりあえず雛形作ってみましょうか。「ステート変化」「クリティカル」「弱点属性」の3点だけ実装してみます。
フォントや文字サイズを変えたり表示種類を増やしても良いですけど何か要望や質問とかありますか?
長期的なサポートとかは考えてないですが簡単な改変なので自力での保守管理も容易だと思います。
添付ファイル
modPopup.js
(4.06 KiB) ダウンロード数: 193 回
アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

Re: 戦闘中、ステート変化など(文字列)をポップアップする機能

投稿記事by terunon » 2016年5月08日(日) 18:48

名無し蛙様

素敵な雛形をありがとうございます!
いただいた雛形を基に、おかげさまで自分の作品にあった理想的なポップアップが作れました。

新規キャンバス.jpg


この度作ってくださった雛形について、利用規約等ございましたらお知らせください。

また、もし差し支えなければ本件の感謝を込めまして
拙作エイリアスエイク(http://plicy.net/GamePlay/19919 全年齢向け、フリーゲームです)のスペシャルサンクス項に
名無し蛙様のお名前を入れてもよろしいでしょうか?

よろしくお願い申し上げます。
terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: 戦闘中、ステート変化など(文字列)をポップアップする機能

投稿記事by 名無し蛙 » 2016年5月08日(日) 21:50

terunon様

お役に立ったようで何よりで。
大して独自性があるコードでもないのでMITライセンス、というよりも著作権は放棄します。
自由に改造して使用してください。
それとは別にクレジットの末席にでも記名してもらえると嬉しいですね。
名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: 戦闘中、ステート変化など(文字列)をポップアップする機能

投稿記事by 名無し蛙 » 2016年5月09日(月) 03:44

すいません。追記で。
見返していたらステート付与に関する処理を豪快に勘違いしていた事に気付きました。
バフ/デバフをステートと混同していましたがこちらに入っているのはstateIdではなくparamIdですね。
また、removedBuffsはバフ解除だけでなくデバフ解除のparamIdも一緒に入ってるようです。
恥ずかしいので直しておいてください。


コード: 全て選択

Sprite_Damage.prototype.createStatusAffected = function(result) {
    var addStates = result.addedStates.concat(result.addedBuffs, result.addedDebuffs);
    var remStates = result.removedStates.concat(result.removedBuffs);
   
    // 戦闘不能の排除
    addStates = addStates.filter(function(stateId){
        return stateId !== Game_BattlerBase.prototype.deathStateId();
    });
   
    addStates.forEach(function(stateId) {
        var state = $dataStates[stateId];
        this.createModSprite(state.name + "付与");       
    }, this);
   
    remStates.forEach(function(stateId) {
        var state = $dataStates[stateId];
        this.createModSprite(state.name + "解除");       
    }, this);       
};


コード: 全て選択

Sprite_Damage.prototype.createStatusAffected = function(result) {
    // 戦闘不能の排除
    var addStates = result.addedStates.filter(function(stateId){
        return stateId !== Game_BattlerBase.prototype.deathStateId();
    });   
    // ステート付与
    addStates.forEach(function(stateId) {
        var state = $dataStates[stateId];
        this.createModSprite(state.name + "付与");
    }, this);
    // バフ付与
    result.addedBuffs.forEach(function(paramId) {
        var paramName = TextManager.param(paramId);
        this.createModSprite(paramName + "強化");       
    }, this);
    // デバフ付与
    result.addedDebuffs.forEach(function(paramId) {
        var paramName = TextManager.param(paramId);
        this.createModSprite(paramName + "弱化");
    }, this);
    // ステート解除
    result.removedStates.forEach(function(stateId) {
        var state = $dataStates[stateId];
        this.createModSprite(state.name + "解除");       
    }, this);
    // バフ/デバフ解除
    result.removedBuffs.forEach(function(paramId) {
        var paramName = TextManager.param(paramId);
        this.createModSprite(paramName + "変化解除");
    }, this);
};
アバター
terunon
記事: 76
登録日時: 2016年2月12日(金) 12:14
お住まい: 熊本県
連絡を取る:

Re: 戦闘中、ステート変化など(文字列)をポップアップする機能

投稿記事by terunon » 2016年5月10日(火) 09:20

名無し蛙様

ありがとうございます。
規約について、かしこまりました。
拙作のスペシャルサンクスに名無し蛙様を記載させていただきました。
http://plicy.net/GamePlay/19919

追記についてもありがとうございます。

自力ではまず解決に至れなかったであろう課題だったので、大変助かりました。
心より感謝申し上げます。
terunon
絵描いたり、ボカロPしたり、ツクったりしてます。

ツクールMV製ローグライクアクションアドベンチャーRPG/ニコニコ自作ゲームフェス2016敢闘賞作品
『AliasAche:エイリアスエイク』 もりもり公開中です。
紹介ページ→ http://tri-nitroterunon37.wix.com/terunon#!aliasache/fyncb
すぐにブラウザプレイするならこちら→ http://html5.plicy.net/GamePlay/19919
クララJ
記事: 1
登録日時: 2018年9月06日(木) 07:06

Re: 戦闘中、ステート変化など(文字列)をポップアップする機能(解決済み)

投稿記事by クララJ » 2018年9月06日(木) 07:10

あのーすみません自分も使いたいのですがサイドビューでもこれは使えますか?

“MV:プラグイン素材のリクエスト” へ戻る