BBS

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

この掲示板は - ゴンパ

2022/11/18 (Fri) 14:36:42

現在も活用できますか

CloneFighterダウンロードできますか? - kick

2021/10/25 (Mon) 06:36:05

ダウンロードのページが無効になっていました
使ってみたいのですが再アップロード出来ますか?

必ず相手の背中側の画面端から出てくる飛び道具 - 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を
漬けてみたら、少し自信ができました

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

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

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

それではお気をつけて


Copyright © 1999- FC2, inc All Rights Reserved.