BBS

61970
名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

必ず相手の背中側の画面端から出てくる飛び道具 - ASK. URL

2018/05/08 (Tue) 16:12:15

こんにちは。スクリプトのテクニックでは大変お世話になっております。

今、相手の背側画面端から自分側に向かってくる飛び道具を作ろうとして、詰まっています。
壁にぶつかったらや、x座標を使ってみましたが、うまくいきませんでした。
おヒマな時で良いのでご教授よろしくお願いいたします。

Re: 必ず相手の背中側の画面端から出てくる飛び道具 - 茫然

2018/05/11 (Fri) 02:01:06

質問ありがとうございます!
モデルDEファイトの方ですね。(時々動画など拝見してます)
このサイトが役立っているようで何よりです。

質問は「相手の背後から自分側に向かってくる」について。

------------------------------------------------
A.大まかに作る場合
精度の低い簡単な仕組み × 場合分けの細かさ
という組み合わせで表現します。
以下、幾つかヒントを載せておきます。

1.飛び道具のグラフィックと判定位置を1画面分ほど前方にずらしておく
2.自キャラに対して(+600, -100)程度の座標位置に飛び道具を出す
3.前方に飛び道具を飛ばし、ステージ端(データ:X座標1200程)で折り返す

手法によってはカバーできない座標帯が有るため
キャラやOBJのX座標に合わせて場合分けし、
手法を使い分けます。

また、上記の場合分けのみだと
実際に飛び道具発生のタイミングがばらつくので
同じ手法内でもOBJの発生座標など
数値を微妙に変えたものを用意しておきます。

---
精度の確認方法
以下の手法で「見た目だけ飛び道具」を別に用意、
先述したものと一緒に使うことで
飛び道具発生のタイミングをチェックします。

座標移動Xがマイナス値の飛び道具を
画面座標X640あたりでOBJ発生させます。

ステージ左端から右端まで、どの位置で技を出しても
同じタイミングで飛び道具が出るよう、手調整してください。

ちなみに、「見た目だけ~」とある通り
この手法では逆向き飛び道具は作れそうで作れないです。

------------------------------------------------
B.正確に作る場合
複雑な仕組み
1本で表現します。

実際のところ、
仕組み自体はシンプルなのですが
機能不足を面倒な処理でカバーする、といった形になります。

---
前提知識
前提条件としてまずは以下を念頭においてください。

1.
「ゲームの画面」は640×480、
「ステージの(最大)サイズ」は座標0~1280で丁度2画面分

変数分岐命令に「データ:MAPX座標」というものが有りますが
これは「画面」が「ステージ」内のどこにいるか、を表していて
画面がステージの左端を映している時に0、
画面がステージの右端を映している時に640、となります。
(後者については確認していないので予測です)

2.
エディタではキャラ = 右向きをベースとして調整します。

---
考え方
A案でも少し触れた通り、
自キャラは、一旦 画面右端に向けて透明飛び道具を発射。
画面端=折り返し地点に到達してから
逆方向に向かう飛び道具を発生させます。

A案では現在のX座標に合わせて場合分けすることで
大よその折り返し地点を用意していましたが、
この方法では計算で折り返し地点を出します。

---
折り返し地点の計算

現在画面の左端座標=「データ:MAPX座標」
画面の幅=640 なので、
現在画面の右端座標(折り返し地点)=「データ:MAPX座標」+640となります。

ただし、飛び道具自身にも幅は有るので
「データ:MAPX座標」+630 ぐらいで折り返しておけば大丈夫です。
(早めに折り返した方が後述する判定漏れも防ぎやすいです)

---
用意するスクリプト

1.飛び道具_発射モーション(自キャラ)
2.飛び道具_画面端チェック(判定用飛び道具OBJ)
3.飛び道具_メイン(実際に発生する飛び道具OBJ)
4.変数値比較処理(計算処理だけのスクリプト)

1について特筆することは有りません。
4についても詳細な説明は省略します。
作成されているゲームにて同じような処理を使っていれば
そちらに合わせてください。

 変数の大小チェック
 http://bozen.web.fc2.com/tc_011.html
 比較する数値の大きさが知れているため、
 100の位は~、10の位は~、といった処理軽減は
 無くても良いかもしれません。

1.飛び道具_発射モーション
「オブジェクト発生」命令にて(X+0, Y-100)あたりに
「飛び道具_画面端チェック」を無条件で発生させます。

4.変数値比較処理
タスク変数A~Cの3つを用意、
BとCに値をセットしてからこの処理を呼び出すと、
両者の比較結果をAに出力する
というスクリプトを組みます。

3.飛び道具_メイン
実際に発生する飛び道具。
自キャラ側に向かって飛ぶので
座標移動のX値はマイナスにしておきます。

2.飛び道具_画面端チェック
今回の肝となる処理です。
スクリプトの並びは以下の通り。

M・V1・V2・V3・V4・SC・V5・I・SG

M
まずは画面右方向に向けて飛ばすので
座標移動命令のX座標はプラス値にしておきます。
重要な注意点として、
テスト中はある程度遅いスピードにしておいてください。

V1
タスク変数A = 0を代入します。
必須ではないかもしれませんが
タスク変数Aを使っていること、その値をリセットしていること
をここで明示しておきます。

V2~V3
2命令で先述した折り返し地点の座標をセットします。
V1にてタスク変数B = 「データ:MAPX座標」代入
V2にてタスク変数B に +639 加算

V4
タスク変数C = 「データ:X座標」を代入します。
これによって
現在画面右端に向けて移動中の判定用飛び道具、
そのX座標を取得しておきます。

SC
V1~V4の変数分岐命令によって
タスク変数A~Cに値がセットされているので
この状態で「変数値比較処理」を呼びます。

タスクB = 折り返し地点のX座標
タスクC = 判定用飛び道具のX座標

この呼出処理の結果、
BとCを比較した結果がタスクAに代入されます。

V5
タスク変数Aの値を対象に
数値計算無し・条件分岐を行います。

手前のSCの結果、
B(折り返し地点のX座標) < C(判定用飛び道具のX座標)
となる出力値がタスク変数Aに入っていた場合、
ループを抜けて「飛び道具_メイン」を実行します。


判定用飛び道具のグラフィックです。
最終的には透明グラフィックなどで良いと思いますが、
テスト時は何らかの見える画像をセットしておいた方が
動きを確認しやすいと思います。

また、WAIT値は1~2といった小さい値にしておきます。
小刻みに画面端チェックをしておくことで
後述する判定抜けを防ぎます。

SG
スクリプト移動命令によって
この行の2ブロック目、つまり「V1」の命令へ移動します。

こうすることで
画面端への到達を小刻みにチェックしながら
右方向へ移動するという処理になります。

 タスク変数CだけでなくA~Bの再設定もループ内に入れているので
 飛び道具発射中に画面座標(カメラ)が大きく動いても大丈夫です。

---
確認と調整要素
まずは適当な位置で画面端反転に成功するか確認してください。
それが出来たら、
自キャラがステージ左端時~相手キャラを挟んで右端時
どの位置でも動作するかを確認します。

ここまで特に問題が無ければ
今度は「飛び道具_画面端チェック」の移動速度を徐々に上げていきます。

値が大きくなればなるほど
判定オブジェクトが画面端に到達するまでの時間は短くなりますが、
勢いあまって画面端を大きく飛び越えてしまうと
反転に失敗することが有ります。
特にステージ右端時に使用した場合
画面外=ステージ外なので
はみ出した時点でオブジェクトが消滅してしまいます。

 画面端を越えてからの引き返し、というよりは
 画面端寸前ギリギリでの引き返し、をイメージしてください。
 
------------------------------------------------
以上、説明が長くなりましたが参考になれば幸いです。
処理の内容についてわからない点が有ればまたお尋ねください。

肝となるのは以下の9ブロックなので
じっくりと試してもらえればと思います。
M V V V V SC V I SG

Re: 必ず相手の背中側の画面端から出てくる飛び道具 - ASK. URL

2018/05/11 (Fri) 14:52:31

茫然様、返信ありがとうございました!
モデルDEファイトを知っていていただき、光栄です!
画面X座標の定義がわかっておらず使いこなせていませんでした。
早速組み込んだところ、見事に成功できましたので、動画とともに報告させていただきます。
https://twitter.com/ask1207asuka/status/994814036649938946

ただ、自分の環境によるものかも知れませんが、「SCのスクリプト呼び出し後、もとのスクリプトの行に、アニメビューでは戻ってくるが、実際のゲームでは戻ってこない」現象が起こっていましたので、SCで呼び出した「変数の大小チェック」スクリプトのあと、元の折返し判定用飛び道具にスクリプトが戻るように飛ばして、成功しました。
他に使う方が入れば参考になると幸いです。

ありがとうございました!

Re: 必ず相手の背中側の画面端から出てくる飛び道具 - 茫然

2018/05/13 (Sun) 15:29:07

報告ありがとうございます!
動画を見た感じしっかり動いているようですし
ヒントが役立ったようで何よりです。
(技を使うのがまさかあの人だったとは)

また、補足についてもありがとうございます。
呼出先の命令でラストに「終了」命令を置いたかどうか
で動きが違ってくる というのがあった気がします。

変数比較をそれほど多用しない場合は
元スクリプトへの移動命令の方が処理として確実ですね。
弱点のカバーお見事です。

今後の進展が楽しみです。

超必フィニッシュについて - 格ゲー製作もう2年かな

2018/01/29 (Mon) 15:25:54

お久し振りです。またまた困ってしまったので教えてくださいませ。

超必でとどめをさしても初撃だと背景が変化しないのです。

超必やられの最初にVでシステム変数+100代入
して負けの頭にVで変数100と同じか以上で背景変化演出つきの負けに飛ぶようにしてるのですが
どうやら体力が0になった瞬間負けに飛んでるので
超必やられに1度行ってないみたいなのです。

どうしたら初撃で演出つきの負けに行けるか教えて下さいませ。
2撃目だと1度超必やられに飛んでるので演出は、出るのです。

Re: 超必フィニッシュについて - 茫然

2018/02/01 (Thu) 19:12:44

お久しぶりです!
超必殺技フィニッシュについての質問ありがとうございます!

2つの方法を考えてみました。
ちなみに、おすすめはBです。

A.妥協せず手間をかけるパターン
B.妥協して手間をかけないパターン

---------------------------------------
A.妥協せず手間をかけるパターン

超必殺技を行う側の
「超必殺技」スクリプトにて以下の処理を追加します。

キャラの攻撃判定をキャラ本体ではなく
オブジェクトに持たせるようにします。
(イメージとしては、キャラの手元に飛び道具を発生させるような感じです)

その攻撃判定用オブジェクトには以下の処理を用意します。
「攻撃が当たったら」→「システム変数に+100を代入」

攻撃側で超必殺技が当たったかどうかを見るので
受ける側の挙動に影響を受けることが有りません。

補足1:気になる場合は追加してください
超必殺技の中で攻撃判定が複数回発生する場合は
それら全てを攻撃判定用オブジェクトに置き換えておきます。

自キャラの第1攻撃→空振り
自キャラの第2攻撃→ヒットしてKO
という風に第2攻撃以降が相手に対する初撃になる可能性もあるため。

補足2:
超必殺技で倒しきれなかった場合も考えて
超必殺技の動作終了時にはシステム変数の値を元にもどしておきます。
その他、相手の攻撃で中断させられる場合を考えて、
各種「通常やられ動作」の先頭でも
システム変数の値をリセットしておきます。

---------------------------------------
B.妥協して手間をかけないパターン

Aのパターンについて多少省略しながら説明しましたが
攻防両方の挙動を見て行くとどうしても処理が大きくなります。
超必殺技の演出1つのためにそこま手間をかけたくない
という場合の妥協案を提示してみます。

ルール:
対戦中、どちらかのキャラが超必殺技を使った場合
その技が終了するまでの間「超必殺KO」モードになります。
このモード中にKOすると特殊な背景演出を行います。

なお、「超必殺技中」に反撃を受けて返り討ちKOになった場合
これも「超必殺KO」として扱います。

攻撃が当たったかどうかを見るのではなく
完全に時間制で処理するのでシンプルです。

必要な処理:
キャラの「超必殺技スクリプト」先頭にてオブジェクトを発生させます。
(キャラ本体だと中断する可能性が有るため、オブジェクト内で処理します)

発生させたオブジェクトのスクリプトでは
開始時に「システム変数」に+100を加算、
一定時間(長さは超必殺技の持続時間による)経過後に-100を加算します。
テスト時は何か画像を置いておくと超必殺技の持続時間と調整しやすいかも

背景のKO演出について、変数分岐条件を
「システム変数が99より大きかったら」に設定します。
両キャラが同時に超必殺技を使う場合を考えて
変数値が0~200の範囲で変化するようにしています。

---------------------------------------
Bはかなり大雑把なルールですが、
これで大まかな判断はできるかなと思います。
この処理で足りない部分が有った時だけ判定条件を追加する、
と考えると調整もしやすいです。
└前述した返り討ちKOについても
 上手く処理を追加すればカバーできるかもしれません。

以上、参考になれば幸いです。
処理についてわからない点が有ればまた質問してください。

Re: Re: 超必フィニッシュについて - 格ゲー製作もう2年かな

2018/02/01 (Thu) 23:26:27

丁寧な助言いつもありがとうございます。
早速Aパターンでやってみた所、技動作後超必演出ありの
勝ちポーズになりました。
しかし全ての超必殺技が終わらないと
勝ちポーズにならないため攻撃が当たった瞬間光る演出が出ないのです。

超必殺技が当り、相手体力が0になった瞬間
背景が光るバックになるにはどうしたらよいでしょう?

攻撃オブジェクトが当り+100代入後
勝ちポーズにならず、現状だと乱舞が全て終わったら
勝ちポーズになり背景が光るバックになります。

あと1歩なんですが乱舞中でも相手体力が0になって
背景が即光るようにするにはどうしたらいいんでしょう?

Re: 超必フィニッシュについて - 茫然

2018/02/03 (Sat) 01:00:26

返信ありがとうございます!

システム変数の値変更自体は成功していると思うので、
後は特殊背景を発生させる場所を変更すれば
良いと思います。

説明を読んだ感じ、
攻撃する側の「勝ち」スクリプトで背景演出を出していると思うのですが
これを
攻撃される側の「負け」スクリプト冒頭で判定するように変更してください。
判定に使っているのがシステム変数なので
すんなりと変更できるのではと思います。

Re: Re: 超必フィニッシュについて - 格ゲー製作もう2年かな

2018/02/06 (Tue) 19:43:53

ありがとうございました。結局お薦めのBバージョンにしました。
負けに実行でうまくいきました。いつも適格なアドバイス
ありがとうございます‼

Re: 超必フィニッシュについて - 茫然

2018/02/08 (Thu) 01:46:25

上手く動いたようでよかったです。

補足になりますが
「返り討ちKOが超必KO扱い」という欠点について

システム変数に加算する際、
「1P側の時/2P側の時」で数値を分けておくと
「1P側が超必殺技を使っている」
「2P側が超必殺技を使っている」を区別することができます。
(1P なら +32、 2Pなら +64 のように別々の値をセット)

これを上手く使えば
「返り討ちKOが超必KO扱い」の弱点もカバーできると思うので
余裕が有れば試してみると良いかもしれません。

無題 - xxx

2017/09/26 (Tue) 12:14:45

はじめまして。分からないことがあるのでご教授願います。

CPU同士で戦わせたりして遊んでいるのですが、相手がダウン中にCPUが攻撃を行いません。
ダウン中でも追撃したりしてほしいのですが、これはツクールの仕様なのでしょうか?

Re: 無題 - 茫然

2017/09/30 (Sat) 19:31:48

はじめまして、xxxさん
質問ありがとうございます!

相手がダウン中にCPUが攻撃を行わない、について
恐らく格闘ツクールでは
ダウン動作を特別な動作として扱っていないと思います。

ダウン動作自体、ユーザーが自由に作るものなので
CPUの側も「今相手が行っているのがダウン動作であるか?」
という判断はできないし、
それを基準にした行動の分岐も行いません。

------------------------------------
もしダウン中に攻撃がストップするようであれば
CPUの行動パターン設定に抜けが無いか見直した方が良いです。

極端な例ですが、
行動パターンの欄で以下のように設定すると
CPUは相手がどの間合いにいても常に弱パンチを出し続けます。
この場合、相手がダウンしているかどうかも影響しません。

確率 100
間合い 0から 9999ドット内
技 弱パンチ

実際に抜けが無いかチェックする際は
行動パターン一覧の間合いバーに注目してください。
上から下に眺めて行ってカバーしていないエリアが残っていると
その間合いになった時にCPUは何も行動をしなくなります。

追撃=至近距離での攻撃なら
間合い0~100のようにバーが左寄りの行を見直して、
そこに具体的な攻撃系の技がセットされているか確認します。

------------------------------------
また、追撃を成立させるには
ダウン動作にもやられ判定を用意しておく必要が有ります。
もしダウン中の相手に攻撃を出してもすり抜けるようであれば、
この点をチェックしてみてください。

この方法でチェックしてみても上手くいかない場合は
また質問してください。

 詳しい状況を説明してもらえると
 こちらも問題点を把握しやすいです。

CPU戦について - A

2017/06/03 (Sat) 15:52:00

いつも教えて下さってありがとうございます(*^^*)
とても初歩的な質問かもしれませんが、教えてください。

CPUに無防備な時間を作りたいです。CPUの攻撃の最中以外に攻撃をすると必ず防御されてしまいます。
防御をしない場合も作りたいのですが、どうすれば良いのでしょうか?
よろしくお願いします!

Re: CPU戦について - 茫然

2017/06/03 (Sat) 22:57:08

Aさん、質問ありがとうございます!

CPUの挙動についてですね。
全部ガードされてしまうということは
CPUに隙の設定が足りないのかもしれません。

 もしくは、キャラの基本設定で
 ニュートラルガードがONになっているのかも

---------------------------
CPUの設定を見直す
CPUの行動設定で「技」のところに「設定無し」の
パターンを所々挟んでみるとか、
行動のパターン数自体を増やしてみると良いです。

 基本的に、CPUのパターン数が少ないと、
 隙の無いワンパターン攻撃を繰り返す感じになるので
 互いの距離や地上/空中など場面をイメージして
 色々な行動パターンを揃えてみてください。

また、
ストーリーモードならCPUレベルの設定があるので
ここの数値を小さくすると、
もう少し隙を見せてくれるかもしません。

---------------------------
隙専用の技を用意してみる
それでも上手くいかない場合は
「CPUの隙」専用の技を用意すると良いです。

内容としては
「通常立ち」スクリプトをコピーしたもの。
(必要が有ればモーションの時間を調整してください)

これを技としてコマンド登録します。

 コマンド内容は、手動入力できないような
 難しいもの・入力時間最小にしておきます

コマンド登録が出来たら、その技を
CPUの行動設定に追加してください。

CPUとしては
「棒立ちするだけ」の技を使っている状態なので、
このタイミングでプレイヤーが攻撃すれば
相手に防御されることは無いと思います。

---------------------------
以上、説明が長くなりましたが
参考になれば幸いです。
また何かわからないことが有れば
気軽に質問してください。

投げについて - 格ゲー製作半年

2016/05/28 (Sat) 07:33:06

すいません。またつまってしまいました。

キャラ変数を使い違う姿のキャラに変身したキャラを
相手が投げると変身前の投げられキャラになってしまいます。

投げられリアクションに変数を使う項目がないので
どうしたらよいかわかりません。

時間のある時でよいのでご指導よろしくお願いいたします。
うぇーん泣

Re: 投げについて - 茫然

2016/05/28 (Sat) 09:45:51

質問ありがとうございます!
変身したキャラに投げ技をかけると変身前の姿になる。
ちょっと手間なのですが対策は有ります。

攻撃側キャラの「投げ技」スクリプトに分岐処理を追加、
相手が変身していたら別バージョンの投げ技が発動するようにします。

この処理に必要なのは、
投げリアクションの一覧に
通常のポーズに加えて変身版のポーズを用意すること。
例:投げやられポーズA と 投げやられポーズA(変身版)
この処理が必要なのは変身するキャラのみ。
他のキャラについては設定不要です。

 気になる場合は変身版にも通常版と同じグラフィックを
 セットしておくとよいです。

自キャラが1Pであるか2Pであるかを判定すること。
これによって
1Pの使用キャラは○○、2Pの使用キャラは○○という情報を
システム変数「キャラ値」に記録します。
1Pと2Pなのでシステム変数が2つ必要になります。

「変身」を行った時、
使用キャラ=○○を表すシステム変数「キャラ値」の値を変更すること。
本来のキャラ値に+200した値など、判別しやすいものにしておきます。

「投げ技」のスクリプトをコピーして、
同じ内容のものを2行用意すること。
両者の違いは「投げやられリアクション」の番号のみ。
もともとのスクリプトでは通常の「投げやられリアクション」
コピー先の行では変身版の「投げやられリアクション」をセットします。

「投げ技」のスクリプト先頭に「変身」判定の処理を追加すること。
(コピー先ではなく、コピー元の行の方です)
相手が変身しているかどうかを知りたいので、
まずは自分が1Pなのか2Pなのかをチェック。
1Pであるなら2Pの、2Pであるなら1P側の「キャラ値」を調べ
その値が200以上であるならそのキャラは変身している
ということで(コピーの)「投げ技」スクリプトへ処理を移動します。

「投げ技」の処理内に「相手のスクリプトを変更」命令がある場合、
ここについて攻撃側のスクリプトに処理を追加する必要は有りません。
投げられる側のスクリプト(「吹っ飛び」など)の行頭に変数分岐を追加、
自身が変身している場合は変身版のスクリプトに飛ばしてください。

上の文で変身を行ったときはシステム変数を変更する
と書きましたが、これは相手のスクリプトで変身を判定するためのもの。
変身するキャラのスクリプト内では、
キャラ変数で変身を判定した方がシンプルなので
上手く使い分けるようにしてください。

「キャラ値」の処理は用意するのが大変ですが、
他の仕組みを組む際にも応用できるので
この方式を使う場合は色々考えてみると面白いかもしれません。


以上、長々と説明しましたが
処理のアイデアとして参考になれば幸いです。
1P/2Pの判別など細々とした内容はサイトのテクニックページを
参照してもらえればと思いますが
より詳しい説明が聞きたい場合はまた質問してください。

Re: Re: 投げについて - 格ゲー製作半年

2016/05/28 (Sat) 21:19:02

すばやい返信ありがとうございます。
変数がホント苦手でしてちょっと頑張ってみます。
いつもありがとうございます。
本当に助かってます。

Re: Re: Re: 投げについて - 格ゲー製作もうすぐ2年

2017/06/01 (Thu) 18:07:13

投げについて相棒キャラでも試してみました。
無事行えました。これで変身キャラは大丈夫です。
遅くなりましたが
ありがとうございました!

ついてくるオブジェクト - 格ゲー製作もうすぐ2年

2017/05/28 (Sun) 21:25:24

お久しぶりです。またわからないので質問させて頂きます。

なんかどこかで見たような気がしたのですが
過去ログも見させて頂きましたが見つからなかったのでスミマセン汗

ヴァンパイアハンターのドノヴァンのアニタのように
開始から自分についてくるオブジェクトをつくりたいのですが
なかなかうまくいきません。

自分が後ろに移動すると後ろに、前へ移動すると前に行き
自分近くに来ると止まるオブジェクトです。
開始からオブジェクトで発生させているのですが
移動するとオブジェクトが移動したままいなくなったり
点滅したり、何人も重なったりしてしまいます。

変数で前移動バージョン、後ろ移動バージョン、停止バージョンと分けて管理した方がいいのでしょうか?

これがうまくいったら次はタッチボタンで近くにいるオブジェクトと自キャラとチェンジして交代みたいにさせたいと思うのですが。

現時点では誰もいない所に自キャラが飛び、消えて
交代して(変数で)違うキャラになっています。

自分の左右移動についてきて止まると近くで止まってくれる
オブジェクト仲間は、どのように組めば良いのか
お時間がある時でいいのでバカな私に教えて下さいませ泣

Re: ついてくるオブジェクト - 茫然

2017/05/31 (Wed) 23:32:39

格ゲー製作もうすぐ2年 さん

お久しぶりです!
質問ありがとうございます。

質問は、
自キャラについてくる相棒キャラについてですね。
単純に「自キャラにずっと貼りついている相棒」
というだけなら、OBJ発生命令のオプションで
「親と同期」をONにすれば良いのですが
説明を読んだ感じ、もう少し複雑な処理が必要ですね。

以下、相棒キャラの処理について
考え方を説明したいと思います。
--------------------------------------------------
作成する処理の方針
出来るだけ複雑にならないよう、動作を単純化します

相棒キャラは、常に自キャラの近くへ移動しようとする

自キャラがジャンプしても、
相棒キャラは追わず地上移動する

相棒キャラが行うのは基本的に移動のみ、
攻撃などは行わない

相棒キャラは敵キャラに対して構えず、
ひたすら自キャラとの位置合わせだけを行う

--------------------------------------------------
大まかな処理の内容
自キャラから相棒キャラをOBJとして発生させる。
相棒キャラはループ処理で自キャラとの
位置関係をチェック、判定結果に合わせて
待機/左移動/右移動のいずれかを実行、
という処理をずっと繰り返す。

--------------------------------------------------
スクリプトの内容
相棒キャラのスクリプトが4行、
変数計算用のスクリプトが1行、
使用する変数はタスク変数のみ
(キャラ変数、システム変数は不要です)

相棒キャラ・メイン
相棒キャラ・待機
相棒キャラ・左移動
相棒キャラ・右移動
座標比較処理

------------------------------
「相棒キャラ・メイン」
この行では画像を使用しません。

 上手く動かない場合は画像を追加するか、
 変数値によるスクリプト移動を
 「スクリプト呼び出し」に、
 相棒キャラの動作3行の終端を
 「スクリプト移動」ではなく「終了」に変更します。

1.V:
タスク変数Aに「X座標」を代入(=相棒キャラのX座標)

2.V:
タスク変数Bに「親X座標」を代入(=自キャラのX座標)

3.V:
タスク変数Cに0を代入(座標比較の結果取得用)

4.SC:
「座標比較処理」へ

5.V:
タスク変数Cが50より大きいなら
「相棒キャラ・左移動」へ
相棒が自キャラよりも大きく右にいるので、左移動する

6.V: 
タスク変数Cが-50より小さいなら
「相棒キャラ・右移動」へ
相棒が自キャラよりも大きく左にいるので、左移動する

7.SG: 
「相棒キャラ・待機」へ

相棒キャラが自キャラから左右に
50ドット以上離れている場合に移動を行います。
この許容範囲を小さくすると、
相棒キャラは自キャラとの位置合わせを
せわしなく行うようになります。

------------------------------
「相棒キャラ・待機」
相棒キャラの待機モーションを並べます。
このスクリプトの長さが長いと、
相棒キャラが移動を開始するのが遅くなります。

 例:
 アニメーションが20フレームなら、
 20フレーム経過後に座標比較が行われるので
 その分だけ自キャラを追うのが遅れます。
 付きっきりで移動するのか
 ある程度のんびりしているのか
 上手く調節してください。

行の終端に以下の命令を置きます。
SG: 「相棒キャラ・メイン」へ

------------------------------
「相棒キャラ・左移動」
相棒キャラの移動アニメーションを並べます。

アニメのフレーム数×移動速度=相棒キャラの移動距離
この移動距離が大きすぎると、
自キャラを通り過ぎてしまうので注意してください。

 あくまでループ処理を繰り返すことで
 目的の位置へ移動します。
 例えば、100ドット左へ行く場合
 10ドット左へ、を10回繰り返す感じになります。

行の終端に以下の命令を置きます。
SG: 「相棒キャラ・メイン」へ

------------------------------
「相棒キャラ・右移動」
移動方向、キャラの向きが異なる以外は
基本的に「相棒キャラ・左移動」と同じです。

------------------------------
「座標比較処理」
3つの変数を使って、判定処理を行います。
タスク変数A = 相棒キャラのX座標
タスク変数B = 自キャラのX座標
タスク変数C = 判定の結果(初期値0)

詳しい処理について説明すると長いので
以下のページを参考にしてください。
http://bozen.web.fc2.com/tc_011.html

細かい部分で処理が違っているのですが
変数AとBで我慢比べするように数値を減らしていき、
Aが0になった時点でループ終了、
結果として残ったBの値をCに代入します。

--------------------------------------------------
自キャラとの交代動作が可能かどうかを判定する際も
上記処理におけるタスク変数Cの値が使えます。

 タスク変数→キャラ変数
 ループ開始時に0リセットを行わない
 などの調整をするとよいです

以上、長くなりましたが参考になれば幸いです。
わかりにくい点など有れば
また質問してください。

Re: Re: ついてくるオブジェクト - 格ゲー製作もうすぐ2年

2017/06/01 (Thu) 18:04:17

親切丁寧にいつもありがとうございます!
ちょっとやってみますね!

タイトル画面のランダム化について - A

2017/04/26 (Wed) 14:14:15

お久しぶりです。未だに更新されているこのサイト様に大変助けられて制作がはかどっております。

タイトル画面の一枚絵をランダムにして起動の度に飽きさせないようにしようと思ったのですが、スクリプトにランダム変数を組み込んでも上手く作動しないようです。
やり方があれば、教えていただけませんでしょうか?

Re: タイトル画面のランダム化について - 茫然

2017/04/29 (Sat) 14:27:27

質問ありがとうございます。

私の方でも色々と実験してみたのですが、
残念ながら上手くいきませんでした。

正確に言うと
初回起動時はランダムが成立せず。
起動後のリセットなどによって
タイトル画面に移動した場合のみ
(つまり2回目以降の表示)
ランダム分岐が成立するようです。

 ソフトが起動してからの経過時間に沿って乱数生成
 といった仕組みで動いているのかと思ったのですが
 タイトル画面の前にオープニングデモを挟んでも
 結果変わらず。

 同様に、タイトル画面のカーソルの方に
 ランダム分岐を入れてもランダムは成立せず。

お力になれず申し訳ないです。

Re: Re: タイトル画面のランダム化について - A

2017/04/30 (Sun) 22:41:56

ありがとうございました!

Re: タイトル画面のランダム化について - 茫然

2017/05/16 (Tue) 00:34:57

先述した通り、格闘ツクールに用意された
「ランダム分岐」は使えないのですが
自前で上手く処理を組めば
ランダム風の分岐も実現できるかもしれません。

以下、大まかな方法を載せておきます。
---------------------------------------------
この処理ではシステム変数を1つ使うのですが、
ゲーム開始前に1度使用するだけなので
別の用途を設定した変数を使いまわすと良いです。

まず、ゲームのシステムで2つのデモを用意します。
<1.オープニング>
特に複雑な内容にする必要は有りません。
ループ処理でシステム変数の値を一定の範囲で変化させ続けます。

 例:
 0~9の数を繰り返す
 0,1,2,3,4,5....8,9,0,1,2,3......
 オープニング画面でボタンを押した結果、
 システム変数の値は0~9いずれかの数字になります。
 ループ処理の間隔を短くすれば、
 最速のタイミングでボタンを押しても
 0以外の数字になるのではと思います。

<2.タイトル>
1で得たシステム変数の結果を基に
分岐処理を組みます。
システム変数=0なら画像1
システム変数=1なら画像2
といった分岐になります。
---------------------------------------------
以上、参考になりましたら幸いです。

Re: タイトル画面のランダム化について - A

2017/05/16 (Tue) 19:19:53

出来ました!ありがとうございました!!

UI質問です - 匿名

2017/03/01 (Wed) 19:29:09

こんにちはお久しぶりです

あけましておめでとうございます

今回に質問文を掲載するようになった理由はこの前と関連があります

この前に'ヴァンガードプリンセス'に出たキャラクターのように残弾の数を

UIに見せたいと言いましたよ

実はあの時、ゲーム内で問題が多く発生して疲れていました

それで本当に質問したいのを忘れて大きさ調節が難しいと

何も書いてしまいました本当に申し訳ありません

十分な休息をしましたもう一度作ってみようとその時忘れてしまった質問をしたいと思います

オブジェクト呼び出しを利用してUIを追加的に表示できるのではないか思いました

答弁も同様に受けました

番組内で一skillで複数のイメージを同時に呼び出すことができないと思いました

おそらく複数のオブジェクトを呼び出しばいいけどよくわからなくなるようです

それで残った銃弾の絵を一つずつ見せてくれるのではないと

いずれもつなげておいた一つの絵で

例えば、5つが残れば5個が描かれた絵一つ

4つが残ったらと4個が描かれた絵こんなふうに表現することにしました

そして1p 2p表示する方法を応用してみることにしました

まだ2d格闘作ることにイベントを際立たせるのが慣れなくて勝手に設計することはできません

まず、次のように組み立てしました

Vの変数による条件(キャラクター変数AがNと同じ時)→SG N犬が描かれているイメージ呼び出しの車両にスクリプト移動
→I N犬が描かれているイメージに呼び出しのwait値は0→SG最初の変数の条件として再び移動

そうしたらイメージが更新するように見えない問題が発生しました
多分繰り返しがならないと判断しました
この前に答弁でもオブジェクト内でループを実施すれば良いと答えてくださったのを記憶しました
したがって下記の通り組立てました

Vの変数による条件(キャラクター変数AがNと同じ時)→SG N犬が描かれているイメージ呼び出しの車両にスクリプト移動
→I N犬が描かれているイメージに呼び出しのwait値は0→Oこのオブジェクトを再び呼び出し

ところが、表向きは上と何の変化がありません
どこで間違っているんでしょう
そしてこんなに連続的に更新して見せなければならないUI演出は
どのようにイベントを組み立てなければならないか、暗記型がありますか

Re: UI質問です - 匿名

2017/03/01 (Wed) 20:20:31

そして、追加的な質問があります
http://bozen.web.fc2.com/k_019.htmlでの質問点です
'優先順位'部分で簡単な命令は上に複雑な命令は下記のようにと言いました
最後のボタンが重なるためといいました
ところでむしろおっしゃるとおり配置し、優先順位が高い簡単な技術が先に出て
同様に最後のボタンが重なる複雑な技術は優先順位のために取り消しされてしまいます
間違って書いてくれたんですか?

Re: UI質問です - 匿名

2017/03/05 (Sun) 12:15:07

弾丸イメージwait値を1で2に変えたら、
まともに作動し始めました
依然として理由はわかりません
イメージ呼び出し命令が最後になくてSGスクリプトが
無視されるのかと思ったらないでした
依然として疑問だらけではあるが、がんばります
じゃあね

Re: UI質問です - 茫然

2017/03/08 (Wed) 23:51:53

確認が遅くなってすいません。
そして
質問についておこたえできず申し訳ないです。

一方、問題点について
自己解決できたようでよかったです。
処理内容によってはwait=1の画像命令が
無視されることも有るようです。


また、解説ページでの表記ミスについて
すいません、
おっしゃる通り間違いを書いていました。
優先度の並べ方が上下逆になってしまっています。

 サイトの編集自体難しい状態なのですが
 何か方法が見つかり次第修正したいと思います。

Re: UI質問です - 匿名

2017/03/09 (Thu) 22:35:05

ご回答ありがとうございます。
もし何が起きたんじゃないかと
サイトに問題が起きたんじゃないかと心配していました

これからはイメージwait値の最小値を
1ではなく、2、3にしなければなりませんね

オブジェクト呼び出しを利用して直接UIを
漬けてみたら、少し自信ができました

次には魔法を使用するキャラクターを
作って見ようと思います

コマンドを入力する時ごとに、下に
入力したコマンドのイメージを示すようにしようと思います

まだ具体的なスクリプト設計に着手しなかったが、
今回の経験を通じて、以前とは違うように自信ができました。

それではお気をつけて

やや変則的なボタン溜め押し技 - TMK

2014/02/20 (Thu) 23:27:22

今なお情報更新がされ続けているこちらのサイトにはお世話になっております。
一通りサイト内と掲示板の過去ログを見た限りでは発見出来なかったので、質問させてください。

『コマンド成立後に待機モーションに移行し、コマンド成立時に押したボタンを押しっぱなしにすることで待機モーションを維持し、ボタンを離すと技が発動する』というスクリプトはどのように組めば正しく動作してくれるでしょうか?
既存のゲームを例に挙げると、キングオブファイターズの大蛇薙のような技です。

Re: やや変則的なボタン溜め押し技 茫然 URL

2014/02/21 (Fri) 22:50:10

こんばんは、TMKさん。
サイトの情報が役に立っていると聞いて嬉しい限りです!
質問は、コマンド入力からのボタン溜め押し技についてですね。
(以下、非常に非常に話が長いので注意してください)

単純なボタン溜め押し技については以前解説したことがあるのですが
「方向入力のコマンド+ボタン溜め」となるとさらに難しくなります。
技スクリプトの中ではボタン溜め押しの判定が出来ないので、
少し工夫する必要があります。
(面倒ですが、内容の割りにスクリプトを編集する範囲が広いです)

ここでは以下のようなルールで技を作成してみます。
・コマンドは↓・← + 弱パンチボタン
・弱パンチボタン溜め押し中は他のボタンを押しても反応しない
・溜め時間の長さに応じて異なる技動作を行う
・溜め時間が一定を越えた場合は自動的に技が発動する
・攻撃を受けた場合は溜め状態が解除される(当然溜め値もリセット)

-----------------------------------------------
処理の仕組み

まず、モードチェンジの能力を持ったキャラをイメージしてください。
今回の処理では、キャラが2種類のモードを使い分けます。

 A.通常モード
  普通に移動したり技を出したり出来る

 B.溜めモード
  移動や技の使用が出来ず、溜めポーズを続ける
  唯一、「ボタン溜め離し」の技のみ使用可能

また、溜め技のスクリプトは以下3ステップに分けます。
1.「溜め技開始動作」
2.「溜め中ポーズ」
3.「溜め技発動」

-----------------------------------------------
1.「溜め技開始動作」
「溜め技開始動作」のスクリプト内では
キャラ変数「溜めポイント」に1を代入、
その後何もすることなく動作を終了します。
※この時、キャラは「溜めモード」に入ります。

 技が終わったのでキャラは「通常立ち」に戻るのですが
 「通常立ち」スクリプトの先頭で変数「溜めポイント」をチェック、
 値が0より大きいので「溜め中ポーズ」に移動します。

-----------------------------------------------
2.「溜め中ポーズ」
「溜め中ポーズ」では、変数「溜めポイント」を+1して終了します。
※ただし、変数値が一定を越えた場合は
 自動的に「溜め技発動」へ移動します。

この動作の表示時間は短めなので
「通常立ち」と「溜め中ポーズ」の間を高速で行き来することになります。

同様に、各種移動動作や通常攻撃、必殺技なども
強制的に「溜め中ポーズ」ポーズへ飛ばされます。

 これを実現するためには対象となる
 全ての行に分岐処理を追加する必要があります。

ほとんどの技が変更されるのですが、
例外として幾つかの動作は許可されます。

①弱パンチ関連の動作
②弱パンチの溜め押しコマンド(後述します)
③弱パンチボタンを使うコマンド必殺技

-----------------------------------------------
3.「溜め技発動」
①②を発動するとキャラは「溜め技発動」に移動します。
「溜め技発動」では技動作自体は行わず、
「溜めポイント」の大きさに応じた分岐処理だけ行います。

 ポイントが200以上なら「LV3溜め技」
 ポイントが100以上なら「LV2溜め技」
 それ以外の場合「LV1溜め技」といった具合に。

「LV3溜め技」「LV2溜め技」「LV1溜め技」では
技の発動時、キャラ変数「溜めポイント」に0を代入します。
これによりキャラは「溜めモード」を終了、「通常モード」に戻ります。

 また、③弱パンチボタンを使うコマンド必殺技を使った場合は
 通常通りそのコマンド技のスクリプトに行きます。
 その行頭で変数「溜めポイント」をチェック、
 変数値が0より大きかった場合は「溜め技発動」に移動します。

もうひとつ…溜め動作中のキャラが相手から攻撃を受けた場合。
この場合、キャラの溜め状態は解除されます。
なので各種やられ動作の行頭で
変数「溜めポイント」に0を代入しておきます。
(投げ技関連のやられ動作も忘れないように)

-----------------------------------------------
実際のスクリプト作成手順

以下の順で処理を組むと良いです。
1.条件分岐の判定基準となるキャラ変数を決める(キャラ変数Aなど)
2.弱パンチボタン溜め押しのコマンド、およびその飛び先を作成する
<<一旦動作テスト>>
3.通常立ちなど一部の動作先頭に分岐処理を追加、
 またその飛び先を用意する
4.溜め技開始のコマンドを、およびその飛び先を作成する
<<一旦動作テスト>>
5.残っていたその他スクリプト行の先頭にも分岐処理を追加する
6.弱パンチ、弱パンチボタンを使うコマンド技の先頭にも分岐処理を追加する

以下、詳細です。

1.条件分岐の判定基準となるキャラ変数を決める(キャラ変数Aなど)
キャラ内の処理なのでキャラ変数を使用します。
タスク変数では無理なので注意してください。

 他の処理と重ならないよう変数の使い道は
 しっかり記録しておくことをオススメします。


2.弱パンチボタン溜め押しのコマンド、およびその飛び先を作成する
1ボタンのみの溜め押しコマンドです。
具体的な作り方については以下のページを参考にしてください。
http://bozen.web.fc2.com/tc_039.html

コマンドの優先度並び順は以下のようにします。
↑優先度高い↑
・弱パンチボタンを使ったコマンド技
・弱パンチボタンの溜め押しコマンド
・弱パンチ
↓優先度低い↓

溜め押しコマンドについては方向入力分も考えて5種類用意します。
詳しい理由については上記リンク先をご覧ください。

コマンド設定が出来たらその飛び先である「溜め技発動」を用意します。
この段階ではまだ溜めレベルによる分岐は考えません。
ただ、発動したとわかるポーズを用意しておきます。

ここまで出来たら一旦動作テストです。
溜め押しコマンドが成功してキャラが「溜め技発動」を実行すれば成功です。

 一度に全部作ろうとすると難しいので、
 1ステップずつ確実に進めてください。


3.通常立ちなど一部の動作先頭に分岐処理を追加、
 またその飛び先を用意する
上の方で説明したとおり、
キャラを「溜め中ポーズ」に飛ばす分岐を作成します。
まずは「通常立ち」のみを対象に実験すると良いでしょう。

行の先頭に1.で決めたキャラ変数を基準とした分岐を用意します。
変数値が0より大きい場合、分岐成立。

また、飛び先となる「溜め中ポーズ」も用意します。
「溜め中ポーズ」では変数の加算(+1でOK)を行います。
また、その表示WAIT値は2フレーム程度にしておきます。
(ここが長いと技発動が遅れるので注意してください)


4.溜め技開始のコマンドを、およびその飛び先を作成する
溜め技開始のコマンドを作成します。
内容は通常通り組めば問題無いと思います。
↓・←+弱パンチボタン
飛び先となるスクリプトではキャラ変数に1を代入します。

ここまで出来たら、またテストです。


5.残っていたその他スクリプト行の先頭にも分岐処理を追加する
問題なく動くことが確認できたら、
同様にして「通常立ち」以外のスクリプトにも分岐処理をセットしてください。

6.弱パンチ、弱パンチボタンを使うコマンド技の先頭にも分岐処理を追加する
これらの技が入力されるということは
当然、弱パンチボタンを離しているはずなので
キャラが溜めモードであった場合は「溜め技発動」に飛ばします。
条件は「対象のキャラ変数が0より大きかったら」です。

 一連の動きが出来たら、
 溜めレベル(変数値の大きさ)を基準とした分岐などを組んでいきます。
 変数はかなりのペースで加算されるので
 判定の基準値も大きい数になると思います。
 このあたり、テストプレーを繰り返して上手く調整してください。

-----------------------------------------------
以上、長々と説明しましたが
コマンド入力からのボタン溜め押し技についての説明を終えます。


上記説明の中でわかりにくい部分などあれば
また質問してください。

Re: やや変則的なボタン溜め押し技 - TMK

2014/02/22 (Sat) 21:16:46

こんなに早く対処法を提示していただけて感謝しきりです。


>まず、モードチェンジの能力を持ったキャラをイメージしてください。
>今回の処理では、キャラが2種類のモードを使い分けます。

見た瞬間、目から鱗とはこのことかと感動しました。
変数を用いたモードチェンジキャラは作成した経験がありましたが、こういった応用の仕方もあったとは、まったく思い至りませんでした。

まだ実際に試してみてはいませんが、取り急ぎお礼を言わせていただきます。ありがとうござました!

Re: Re: やや変則的なボタン溜め押し技 - 格ゲー制作もうすぐ一年

2016/11/04 (Fri) 23:28:33

こちらの助言を参考にしながら
開始動作、溜め中ポーズ、技発動
のスクリプトを組んで現在セービングアタックのモーションを制作しています。

コマンドは中パンチ中キック同時押しなのですがなかなかうまくいきません。

開始動作から溜め中ポーズになるのですが
ボタンを離しても溜め中ポーズのままで自動で技発動になりません。
溜め中ポーズ時に再度中パンチ中キック同時押しか
中パンチか中キックを押さないと技発動しません。

スクリプトも開始動作、溜め中ポーズ、技発動、
溜めレベル1、溜めレベル2、溜めレベル3と用意しています。

コマンドはフリー中パンチ中キックボタンで溜め3秒
・連続2回に設定し
→↓←↑のバージョンも4つ用意しています。

中パンチと中キックの各技前に変数が0以上で技発動に移動させています。

ボタン押しで溜め開始溜め中ポーズ
ボタン離しで技発動させ、溜め時間によって技が変化
させるにはどうしたらよいでしょう?

二度押ししないといけないのは仕様でしょうか?

押した時点で技発動させれば溜め1技はすぐに出るのですが
これを優先度下に設定しても優先上の溜め2、溜め3技が
出なくなるし
溜め技を隠す必要ないのにボタンを押しても発動せず
たまってからボタン離しで溜め中モーションになるし
もう一回ボタン押さないと技発動しないし
困っております。

どうしたらよいでしょう?説明がわかりずらくてすみません。
※攻撃を受けた後のセビスクリプトは割愛しております。

あと、開始動作から溜め中ポーズに移動しますが
溜め中ポーズをウェイト2でさらに違う画像を隣りにウェイト2で置いてもアニメーションしないのは何ででしょうか?

長文すみません。

Re: やや変則的なボタン溜め押し技 - 茫然 URL

2016/11/05 (Sat) 00:38:31

格ゲー制作もうすぐ一年 さん
質問ありがとうございます!

質問はボタン溜め押し技のコマンドについてですね。
もともとの難度が高いことも有りそちらの状況を掴みづらいのですが

まず、1ボタンでの溜め押しコマンドとしてのテストは
成功しているでしょうか?
2ボタンによる溜め押しは応用編なので
この基本形が出来ていないと失敗する可能性が高いです。

逆に言えば、ここをクリアできていることが確認できれば
問題が起きている原因箇所を多少なりとも絞れると思います。
(基本は出来ていて応用の部分で失敗しているパターン)

Re: Re: やや変則的なボタン溜め押し技 - 格ゲー制作もうすぐ一年

2016/11/06 (Sun) 08:55:40

先生アドバイスありがとうございます。

現在簡略化しコマンドを中パンチボタンの1ボタンにしました。溜めもなしです。

スクリプト

溜め開始動作
Vキャラ変数A+1代入条件分岐なし
Iウェイト2 E

溜め中動作
Vキャラ変数A+1足す条件分岐なし
Iウェイト2 E

溜め発動 
Vキャラ変数A数値計算なし条件分岐+200以上
溜めレベル3のスクリプト0へ
Vキャラ変数A数値計算なし条件分岐0以上
溜めレベル1のスクリプト0へ
E

通常立ち
Vキャラ変数A数値計算なし条件分岐0以上なら
溜め中動作0へ

で組んでいます。

そうすると溜め中から溜めレベル1の攻撃をすぐに
行い一向に溜め中せずレベル3攻撃ができません。

1ボタンでもうまく動いていない状態でした。

Re: やや変則的なボタン溜め押し技 - 茫然 URL

2016/11/06 (Sun) 12:21:00

状況の説明ありがとうございます。
コマンド設定欄の
「溜めコマンド」各種について
受付時間の値はどうなっているでしょうか?

ここの値が小さい場合は
一旦これを最大値にしてみてください。

 この設定だと短時間で溜め押しを解除した場合に
 技が2連続で発動する可能性が有ります。

--------------------------------------
この方法で長い溜め時間が使えたら、
今度は溜めコマンドを
溜めレベル(時間)ごとに分けて追加してください。
溜め時間が短いコマンドについては
コマンド受け付け時間も相応に短くします。

 変数値による技レベルの分岐ではなく
 コマンド受け付けの方で分岐判定させます。
 (溜めボタン入力のページで説明している方式です)

注意点:
ただし、これがもし上手くいったとしても
コマンド受け付け時間を越えて溜め入力をし続けると
「ボタン離し」が無視されてしまいます。
(つまり無限に溜め入力を行うことはできません)

変数カウントの方で一定時間を越えたら
技が自動発動するようにしてください。

Re: Re: やや変則的なボタン溜め押し技 - 格ゲー制作もうすぐ一年

2016/11/07 (Mon) 12:40:58

今回かなり難しいですね。四苦八苦しております汗

先生の教え通り行うと溜めレベル3種行えたのですが

まずボタン押した時点で開始動作ポーズになり
ボタンを離して溜め中ポーズになります。
そこで再度ボタンを押すことにより
溜め時間に応じた溜めレベルの技が発動するのですが

自分としてはボタンを押した時点で溜め中ポーズになり
ボタンを離した時に技発動させたいのですが
やはりこれは格闘ツクール2の仕様で無理なのでしょうかね?  
なかなか難解です。何度も質問すみません。

ボタン押しだけのコマンドにするとそのスクリプトに設定した溜めレベルの技だけになりますし
ボタン押し溜め→ニュートラル連続2のコマンドにすると
上記のようなボタン押し開始動作→ボタン離し溜め中ポーズ→再度ボタン押しで各レベル発動
になってしまいます汗

諦めるしかないですかねー?泣

Re: やや変則的なボタン溜め押し技 - 茫然 URL

2016/11/07 (Mon) 21:15:14

続報ありがとうございます。

説明いただいた状況から考えて、
「中パンチ+中キック」で発動する
「溜め開始ポーズ」が連続で実行されている可能性が有ります。

もしそうなら、
中パンチ+中キックのコマンド受付時間を
連続発生しない程度の長さに変更してください。

 「溜め開始」は非常に短い時間で完了するため、
 受付時間が長いと、1回の「中パンチ+中キック」入力で
 複数回「溜め開始」スクリプトが実行されてしまいます。

さらに、「溜め開始」スクリプト行の先頭に変数分岐を追加、
「溜め中ポーズ」スクリプトへ移動させてください。
分岐条件は「溜め」モードを開始しているかどうか。
「溜め開始」スクリプト内で「溜め」モード用の変数を操作していると思うので
その変数を判定に使ってください。

 こうすることで、
 「溜め開始」スクリプトが複数回実行される場合も
 2回目の時点で「溜め中ポーズ」へ飛ばされます。


予想で書いているので、もしかしたら
見当はずれなアドバイスになっているかもしれませんが
参考になれば幸いです。

飛び道具について - 格ゲー制作もうすぐ一年

2016/10/12 (Wed) 01:56:28

連投になりすみません。

過去ログも見たのですがなかなかうまくいかなかったので質問します。

飛び道具をだし、(出すモーション頭にキャラ変数B+100)
その飛び道具が消えた、もしくはガード時に
キャラ変数B-100に設定。

キャラ変数Bが0以上の時キャンセル不可の通常技に飛ぶのですが
飛び道具が画面外に消えた場合、封印されて
キャラ変数が-100にならずに通常技しか出なくなってしまいます泣

データ座標を使うのかと思うのですが変数が苦手で
うまくいかずうまい組み立て方法ありましたら
お時間がある時でよろしいので教えて下さい。

変数ができないとなかなか思い通りに作れないですね泣

Re: 飛び道具について - 茫然 URL

2016/10/12 (Wed) 23:04:28

質問ありがとうございます!

問題の状況説明読みました。
なるほど、オブジェクトの消滅が検知できないため
上手く処理が組めないとのこと。

ここで気になるのは、問題のオブジェクトが
A.こっそりと消滅しているから消滅が検知できないのか
それとも
B.画面外に行った後もそのまま消滅せず存在しているのか
です。

---------------------------------------
Aの場合
こっそりと消滅されてしまうのが問題なので
例えば、点呼制でオブジェクトの消滅を監視する
というのはどうでしょうか?

ご説明いただいた内容に沿って具体的に述べると、
発生させた飛び道具には、短い間隔のループ処理で
「キャラ変数B = 100」の代入を何度も行ってもらう。

この飛び道具が存在する限りは
キャラの技動作のスクリプトなど
外部で「キャラ変数B = 0」を代入しようが
数フレーム後には「キャラ変数B = 100」に上書きされます。

飛び道具が消滅してこのループ処理が止まった時、
「キャラ変数B = 0」が上書きされなくなるので
それを条件にキャラの動作を分岐させると良いかもしれません。

技動作開始時に「キャラ変数B = 0」を用意しておき、
数フレーム後にキャラ変数Bの値がどうなっているかをチェックする。
素早い技動作とはいえ数フレーム程度の余裕はあると思うので
その間に飛び道具側の変数処理も動くのではないかと思います。

---------------------------------------
Bの場合
このパターンだとAの処理でもカバーできないと思います。
飛び道具を出した後には長い隙がセットで付きそうですが
そうではない場合、
飛び道具発射後しばらくはタイマー制で
技動作のキャンセルが不可になるよう分岐させるというのは
どうでしょうか?

飛び道具の爆発消滅と違って
キャンセル可/不可のヒントが見た目にわかるわけではないので
若干不親切ではあるのですが

飛び道具発生時に変数へ一定の値を代入、
飛び道具のスクリプトでは
ここからループ処理で変数をマイナス加算していき、
値が0以下になったら「キャンセル不可」への分岐を解除とする

というルールで処理を組むとコントロールできそうです。
ここでタイマーとなる変数の大きさは
飛び道具が画面外に飛んで行って消滅するだろう時間を
予測して調節するようにしてください。

 弱点は飛び道具を発射する位置によっては
 消滅タイマーと実際に消滅するタイミングの間に
 若干のずれが生じるという点。
 ただ、飛び道具のスピードがそれなりに速い場合は
 あまり気にならないかもしれません。

---------------------------------------
なお、どちらの方法を使う場合も
ヒット・ガード・相殺など画面内で飛び道具が消滅した場合には
キャンセル条件の分岐を解除できるよう処理しておくことも
忘れないようにしてください。


以上、長々と説明しましたが
このような方法でどうでしょう?
実際に試してみてまた何かわかった点など有りましたら
気軽にご質問ください。

Re: Re: 飛び道具について - 格ゲー制作もうすぐ一年

2016/10/14 (Fri) 22:36:52

ありがとうございます。

上のやり方でうまく消えて、封印もなくなりました。
本当に助かります。

いつも的確なアドバイスありがとうございます&#8252;


Copyright © 1999- FC2, inc All Rights Reserved.