ピクチャの表示。差分への変更について

eitarou2828
記事: 7
登録日時: 2017年9月20日(水) 23:05

ピクチャの表示。差分への変更について

投稿記事by eitarou2828 » 2017年9月20日(水) 23:39

現在MV購入したてで作成中です。
基本的なシステムとして、着せ替え系のRPGを考えています。
できたこと
・装備によってキャラの衣装が変わる。(こちらはトリアコンタン様作成のバストアップ表示プラグインで仮にはできましたが、メニュー画面内のみ)

本当にやりたいこと
上記の発展として
表情差分、衣装差分、ベースボディを素材としては各種用意し
1:装備を選ぶことによって衣装が変わる。イベント”ピクチャの表示”でも現在装備を参照し対応したピクチャを表示させたい。
2:イベントの際、変数Aを参照し、一定値以下であれば表情Aを、一定値以上であれば表情Bを……といったように表示を分岐させたい。
3:戦闘時に敵の他に立ち絵ピクチャを表示させ、現在装備、表情と合わせたい、ダメージによって服装にも変化が……

といったことを構想としては考えてはいるのですが、単純に条件分岐などでやろうとすると、膨大な数になってしまいます。
どうにかスクリプトやプラグインでこの工程を簡略化することはできないでしょうか

1に関しては、「条件分岐→《アクターが○○を装備》→している場合→○○のピクチャ表示
                              →していない場合→条件分岐→《アクターが○○を装備》
の分岐の繰り返しになってしまうような気がします。
衣装の数分だけ分岐を繰り返し、終点でラベルジャンプまでをコモンイベントとして
その後から本来やりたい会話イベントなどにするしかないでしょうか?


よくある同人RPGなどではどういった処理がされてるのかが気になります。

よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: ピクチャの表示。差分への変更について

投稿記事by よしだとものり » 2017年9月21日(木) 12:35

よくある同人は知らないです。

既存にあるならそれを利用します。

なければ作りますが、作るときはプログラムが簡単になるように
仕様を考えます。
差分を使うと処理が複雑になりプログラムも長くなると思います。
この方法は私ならやりません。
面倒なんで。

私ならすべてのパターンの画像を用意します。
膨大になるけど仕方ないと作ります。
メリットとしてプログラムは簡略化されるので処理は軽くなります。
あと作るのも簡単です。

ただし画像が膨大になるのでメモリが少ないと処理が遅くなる可能性もあります。
ツクールがどのような仕様なのか分からないので試さないと定かではないですが。

以下のような感じでテーブルを作ります。
例えばwepon[0]はヒノキの棒、wepon[1]は銅の剣みたいな感じです。
amar、hyouzyouも同じような感じです。
patrnには破れ具合とかを入れます。
patrn[0]は少し破れた、patrn[1]はすごく破れたなどです。
それで状態を0と1で記録します。
ヒノキの棒にした場合は
wepon[0]=1;
みたいな感じです。
装備変更した場合は
全てを初期化して
for(i=0:i<maxwepon;i++){
wepon[i]=0;
}
wepon[1]=1;
銅の剣をセットするみたいな感じです。
前の装備を直接0にしないのは面倒だからです。

ちなみにスイッチとか変数でもできると思いますが
多分重くなります。
なので私ならプラグインを作ります。

あとは以下のサンプルの説明でも見て下さい。



var wepon=[];
var amar=[];
var hyouzyou=[];
var patrn=[];

//初期化は省略

var iwepon;
var iamar;
var ihyouzyou;
var ipatrn;

//全ての武器のテーブルを探索し
//1の場所をiweponに保存する
for(var i=0;i<maxwepon;i++){
if(wepon[i]==1){
iwepon=i;
break
}
}
//同じ処理
for(var i=0;j<maxamar;i++){
if(amar[i]==1){
iamar=i;
break
}
}
for(var i=0;i<hyouzyou;i++){
if(hyouzyou[i]==1){
ihyouzyou=i;
break
}
}

//やぶれたなど
for(var l=0;l<patrn;l++){
if(patrn[i]==1){
ipatrn=i;
break
}
}
//最後にファイル名を成形する。
var finename="pict" + iwepon + "_" + iamar + "_" + ihyouzyou + "_" + ipatrn
$gameScreen.showPicture(98,finename, origin, x, y, scaleX, scaleY, opacity, blendMode);
eitarou2828
記事: 7
登録日時: 2017年9月20日(水) 23:05

Re: ピクチャの表示。差分への変更について

投稿記事by eitarou2828 » 2017年9月21日(木) 14:02

ご返答ありがとうございます
これはプラグイン用のサンプルということでしょうか?
仮に防具”0”~”5”の6種用意したとした場合

var wepon=[];
var amar=[0];
var amar=[1];
var amar=[2];
var amar=[3];
var amar=[4];
var amar=[5];
var hyouzyou=[];
var patrn=[];

//初期化は省略

var iwepon;
var iamar;
var ihyouzyou;
var ipatrn;

//全ての武器のテーブルを探索し
//1の場所をiweponに保存する
for(var i=0;i<maxwepon;i++){
if(wepon[i]==1){
iwepon=i;
break
}
}
//同じ処理
for(var i=0;j<maxamar;i++){
if(amar[i]==1){
iamar=i;
break
}
}
for(var i=0;i<hyouzyou;i++){
if(hyouzyou[i]==1){
ihyouzyou=i;
break
}
}

//やぶれたなど
for(var l=0;l<patrn;l++){
if(patrn[i]==1){
ipatrn=i;
break
}
}
//最後にファイル名を成形する。
var finename="pict" + iwepon + "_" + iamar + "0"iamar + "1"iamar + "2"iamar + "3"iamar + "4"iamar + "5" + ihyouzyou + "_" + ipatrn
$gameScreen.showPicture(98,finename, origin, x, y, scaleX, scaleY, opacity, blendMode);

といった感じで、増やした分だけ記述増やしていく……ということでいいのでしょうか
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: ピクチャの表示。差分への変更について

投稿記事by よしだとものり » 2017年9月21日(木) 14:36

↓は配列の宣言で最初に書かないといけない決まり事です。
var wepon=[];

配列に値を入れるときは
wepon[0]=1;とかします。

そして、最初に全て0で初期化します。
一番最後に説明してあるfor文でできると思います。
0は未装備、1は装備状態です。
装備は1つなので全て0にします。
表情や破れぐあいも同様です。
状態は1つになりますので


まあ、サンプル的なものですが、ほぼ考え方です。
なので装備したという処理がどこで行われているかを探して
そこに追加でプログラムを書かないといけないです。
プログラム的には簡単なんですが、装備変更がスクリプトのどこで行われているかが
分からないと無理です。
私もそれを探すのが苦手なんで苦労します。
でも誰か知ってると思います;;

そこを探せればその箇所にwepon[0]=1みたいな感じで追加します。
ただし0をそのまま書いてもダメです。
装備が変更される箇所に何を装備したかという情報があるはずなので
それを使います。

武器、防具も同じです。


どのようなゲームか分からないですが、表情はダメージを受けたら
変化するならダメージを受けた場合に動くスクリプトの箇所が分からないとダメです。
同じようにダメージを受けたらテーブルを変更します。
破れとか表情などはHPの状態で変動させれば簡単そうです。

あと、ざっと説明するとforが繰り返しです。
↓の場合は0から始まってMaxwepon未満でぐるぐる回ります。

var i=0;
for(i=0;i<Maxwepon;i++){
wepon[i]=0;
}
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: ピクチャの表示。差分への変更について

投稿記事by よしだとものり » 2017年9月21日(木) 14:48

面白そうなんで作ってもいいですが、
私もほかに作っている物があるので
出来れば装備が変更された場合に動くスクリプトの箇所と
ダメージを受けた際に動くスクリプトの箇所を調べて頂けると
多分ですが作れます。
責任は負えませんので;;

試してないのでわからないですが、しぐれんさんが作った反撃プラグインで
もし反撃のタイミングが分かれば、攻撃を受けたっていうのは出来るかもしれません。
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: ピクチャの表示。差分への変更について

投稿記事by まっつUP » 2017年9月21日(木) 19:26

eitarou2828様
お世話になります。

戦闘中の立ち絵表示に関して、質問があります。

・サイドビューか否かは考慮していますか。
・立ち絵をどこに表示しますか。
 ステータスウインドウに表示する場合とそうでない場合があります。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
eitarou2828
記事: 7
登録日時: 2017年9月20日(水) 23:05

Re: ピクチャの表示。差分への変更について

投稿記事by eitarou2828 » 2017年9月21日(木) 19:56

まっつUP様ありがとうございます。
サイドビューではありません。

立ち絵の表示位置に関しては、添付ファイルのような配置でステータスウィンドウ内でもないです。
戦闘時のイベントとして、アクター1のHPが100%以下時という発生条件で、イベント”ピクチャ”の表示 で今は
出力しています
添付ファイル
e3c04258d0774e596d4f23e4812a2ab8.png
e3c04258d0774e596d4f23e4812a2ab8.png (313.58 KiB) 閲覧数: 9957 回
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: ピクチャの表示。差分への変更について

投稿記事by まっつUP » 2017年9月21日(木) 21:46

eitarou2828様
お世話になります。

プラグインを作成いたしましたのでお試しください。
現在は、ファイル名の取得はアクターのノートタグから行っています。
また参照するアクターはいかなる場合でもパーティの先頭のアクターです。
装備関係のピクチャの仕様が決まり次第、改良を行う可能性があります。
追記:そのため装備関係の仕様をご提示ください。

まずは、戦闘中のピクチャの表示の挙動が想定されているものかご確認ください。
プラグインヘルプもかなり端折っていますが試作品ゆえご容赦ください。

このプラグインを利用する場合は
readmeなどに「まっつUP」の名を入れてください。
また、素材のみの販売はダメです。
上記以外の規約等はございません。
もちろんツクールMVで使用する前提です。
何か不具合ありましたら気軽にどうぞ。

免責事項:
このプラグインを利用したことによるいかなる損害も制作者は一切の責任を負いません。
添付ファイル
BattlebustPict.js
(3.69 KiB) ダウンロード数: 121 回
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
eitarou2828
記事: 7
登録日時: 2017年9月20日(水) 23:05

Re: ピクチャの表示。差分への変更について

投稿記事by eitarou2828 » 2017年9月21日(木) 23:37

まっつUP様ありがとうございます
現在頂いたプラグインを試してみました。

現段階で、戦闘中にピクチャを表示し、残HPの段階で表示を変化させられるというところは何も問題ないです。
HP50%以下で差分に変わったあとに、回復させたら服も戻るというところも確認できました。

素人の想像ではありますが
通常 通常差分
装備A 装備A差分
装備B 装備B差分
と素材用意した際に、現在の装備アイテムを参照して、HPの段階で~~なら

アクターのノートタグにはベースと表情差分を付けるようにし、装備ノートタグに
装備「服」
<BPnormal:001>
<BPdying:000>
<BPmiddying:002>
といった感じのを装備の数だけ作り、現在装備を読み込むようにすれば
装備によって立ち絵が変わり、残HPによって破損していく……といったことができそうに思えますがどうでしょう
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: ピクチャの表示。差分への変更について

投稿記事by よしだとものり » 2017年9月22日(金) 00:06

まっつさん、すごく早くて羨ましい。
あんなに短くかけるんですね。
中は見たけど分からなかった;;

“MV:質問” へ戻る