ウディタARPG(コモンイベント)講座3:あたり判定

ARPG講座も3回目になった。

続いてはあたり判定に入る。

 

あたり判定のやり方

あたり判定

初めに主人公の武器設定から入る。

Cs2に武器の種類(武器ID)を入力しておくと、
IDに応じた武器の攻撃力で敵にダメージを与えられる。

ユーザーDBから武器の情報を呼び込み、
主人公の可変DBに攻撃力を足していくのを確認してから、

非常に重要なID設定を行う。

私の場合、0番は敵のデータを入力させないようにしている。
仮に0番から入力する場合はCs10=-1+0に設定してから、
回数付きる^プを使って数を足していくといい。

Cs10は何のためにあるか?
ップイベントに応じたマップIDの数だけ足していくのだ。

他に可変DBにある敵一覧のデータ情報を参照するためにも使う。

マップID 敵ID2

あまり使わないなら回数ループは30程度で十分だが、
私の場合はある一か所のイベントに50も使ったので、
回数ループを50回に定めている。

また敵の可変情報は主人公ステータス0番をコピーし、
開いているタイプ(私の場合は23番)に貼り付けた

サンプルゲームからすぐデータを入力するなら20番で十分だと思っている。

以下、敵のHPやマップIDを入力していくのだが、
途中にあるV2-2「敵HP」変数は私の間違いだから無視してOK。

様々なIDの部分に

Cs10のマップID、Cs10の影グラフィック番号と入力していく。

 

マップIDによる敵の入力方法

マップイベント

ここでマップイベントに代入する敵の処理について書く。

初めに敵を倒した後の処理として、ページ(名前の下にある番号)を二つ使用する。
後に述べる「イベントの一時消去」でも敵を消せるのだが、
一時消去だとマップを変えたら何度も復活する。

一度倒したら復活させないためにページを二つ用意する。

ちなみに敵を倒すとは敵HPが0以下になる状態を示す。

続いて移動ルートはプレーヤー接近であり、
コモンイベントで並列常時実行にした状態で敵の移動を調節できるが、
コモンイベントだとすべての敵が同じ行動をとってしまう。

全てという言葉は誤解があるね。

例えばスライムという敵に対し、あるスライムだけはランダムに動かし、
他のスライムはプレーヤーを見て襲ってほしい

スライムでも動きを別にするならコモンイベントより、
マップIDごとに直接入力したほうがいい
と私は判断した。

次に影グラフィック番号はシステムデータベース(赤アイコン)9番にある、
影グラフィック番号から、それぞれ敵を選ぶ。

影グラフィック番号の役割は後で核として、1ページ目の記述として、

  • 変数操作+:セルフ変数8にマップID代入
  • 可変DB書込で真ん中を上記のセルフ変数9=マップIDにし、敵HPの数値を入力
  • 最後に敵ID番号を代入していく

マップイベントIDは変数0以外なら何でもいい
0を使っていけない理由は後で述べる。

続いて敵HPを読込でなく「書き込み」にして入力すべし。
書き込んで敵のHPを「あたり判定」に定義した敵HPへ加算するわけだ。

DB可変書き込みがないと、可変DBに入れたHPがそのまま入ってしまう。

例えば上記画像だと40という数値を書き込んだ。
しかし可変DBには10という文字が入っている。

書き込みがなければHPは10として処理される。

また敵HPは必ず数字で一つずつ書くべし。

ユーザーDBなどからも引用できるのだけど、
一匹倒れたらほかの敵もみんな消えてしまうため、個別にHPを入れねばならぬ。

k編DBから

最後のID番号は可変DBの「タイプの内容設定」をおして、
何も書いていないところ「無効」となっている部分を選び、
変数を推して「IDと定義をし、閉じる。

上記の通りにやると3ページの59番に「ID」が入力されているはず。

入力した後は一度の処理を終えるたびにデータを更新させるため、
一度攻撃された後、続いて攻撃を受けた後にきちんとHPが減るよう、ループ処理を創るわけだ。

必ずウェイト1フレームを置かないと、重くなりすぎてエラーを起こす。
絶対にウェイト1フレームを入力しておこう。

最後に起動条件は「並列」にしておけば終わり、次に2ページ目へ入る。

ボス線

2ページ目は基本、何も入れない。
起動条件も「決定キーで実行」にすればいいのだけど、
セルフ変数0が1と同じ状態にチェックを入れねばならぬ

敵を消す処理としてセルフ変数0を使うから、
先ほどのマップイベントIDは0以外を使ってほしい
のだ。

上記画像を見ると、色々入れているね。
上記はボス専用であり、ボスを倒したらイベントを発動させる。

私の場合はボスを倒したら次のマップに移るよう設定をしているが、
その場にとどまるなら敵2ページ目にイベントを入れた後、
そのままセルフ変数0=2にし、3ページ目を作ればいい
と思う。

もちろん3ページ目は何も入れない。

セルフ変数0の処理についてはあたり判定に戻るよ。

 

敵のHPなどで条件分岐を促す

あたり判定

もう一度あたり判定画像を載せる。

敵HPは二つに分岐させている。

1以上と1未満(=0以下)だ。

敵HPが1以上の時「敵がいるぞ」という知らせであり、
「このマップイベントIDは敵だ」という判断でもある。

先に1未満の処理から見ていこう。
1未満は敵を消すだけであり、そのまま一時消去……を行うと、
アイテムも「敵」とみなされて消される恐れがある。

そこで影グラフィック番号で条件分岐を促す。
影グラフィック番号でも「敵影」かどうかを判定する。

ウディタ初期値は0番が人間、1番が影なしとなっている。
そこで0と1は「敵でない」と判定させる分岐を作る。

反対に言うと、2以降はすべて「敵」としてみなす。
影グラフィック番号が1超えとは敵とアイテムの判定に使う。

影グラフィック番号が2以降だと「敵を消す」よう働かせる。

動作指定

イベント制御からキャラ動作指定を選び、
先ほど定めたマップIDを選び、上記画像赤く囲んだ部分、

「変数の設定」でセルフ0に1を代入する。

代入は=であり、加算は+=だ。

後は透明化や悲鳴を上げるといったSEを代入するなど演出すればいい。

続いてHPが1以上の時、敵キャラの画面XY座標を定義し、
武器エフェクト(銃攻撃なら銃弾座標)XYをエフェクトから引っ張ってくる。

引っ張り方はこちらを参照。

敵の座標と武器エフェクトの座標を引いた場合、
マイナスの数値をプラスに変えるため絶対値を使う

絶対値は攻撃範囲を決める際に重要となり、
画像では差額XYとなっているね。

差額X及びYの最小値は4であり、増えていくにつれ遠くからでも攻撃が当たる。
ちょうど12から24くらいがいいと思う。

あたり判定の解説はほぼこちらを参考にしているよ。
ウディタの場合、座標マイナスは左上、プラスは右下と抑えておこう。

後は敵の攻撃が当たったら敵にヒットを示すエフェクトを出しつつ、
敵別によって反応を変える処理=影グラフィック番号による条件分岐を行い、
一度目の攻撃を終えさせる。

途中に書いてある小刀所持と乱数は「会心の一撃」を出す方法と抑えてほしい。
確率でクリティカルヒットを出すやり方である。

 

影グラフィック番号処理

影グラフィック番号

影グラフィック番号は敵によって攻撃を受けたときの対応を分けるのであり、
すべて一本化させるなら特に必要ない。

影グラフィック番号処理が少なければ、あたり判定に書いてもいい。

私の場合は敵が多いので、一つずつ処理を作った。

あたり判定から引っ張ってきた影グラフィック番号で分岐し、
同じく引っ張ったマップIDに敵が攻撃を受けたときの処理をすればいい。

一歩引く、SEを変える、透明化させるといった具合だ。

敵の処理は異常で終了だ。続いてNPCこと敵の行動について書きたい。

お願い

めがびちゃんからお知らせ♪

お知らせ

megabe-0へ訪問した"本当"の理由

まさか記事の書き形一つでこうなるとは…

お願い1

Writer軽い自己紹介

ティラノスクリプトや小説家になろう、ピクシブ他で物語を書きながら、 「私が気になった事件」の裏側を作家の視点で書いているおっさん。

プロフィール画像は自画像でなく、Megabe-0ブログのマスコット、めがびちゃん。

 

雷が苦手で、光を見ると頭が固まる(元から固い)。 月初めは墓参りと神社参拝を行い、賽銭箱へ1万円を入れた際、とても気持ちがすっきりした。

 

■ 簡単な自分史 ■

0歳:釧路のある病院で生まれる。暇さえあれば母乳を吸って、ご飯を4膳食べても体重が落ちるほど、母のダイエットにものすごく貢献したらしい

 

3歳:行方不明になり、全裸で海を泳ごうとしたところ、いとこのお姉さんに発見され、この世へ留まる

 

8歳:自分のお金でおもちゃのカードを初めて買い、経済を知る。なぜか父親に怒られ、家出するがすぐに見つかる。

 

12歳:学校で給食委員長になる。委員長として初めて全校生徒の前にて演説する際、原稿用紙を忘れてアドリブで笑いを誘いながらも何とかやり過ごし、多くの生徒に名前と顔を覚えてもらう。また、運動会の騎馬戦では変なアドリブを行い、多くの笑いを誘った。

 

18歳:初めて好きな人ができたけれど、告白が恥ずかしくてついにできず、別れたことを今でも根に持っている(妻となる人にははっきり言えてよかった)

 

21歳:大学在学中、アルバイトを始める。人手不足かつとても忙しい日々を過ごしながら「どうせなら自分から楽しいことをしていきたいなあ⇒起業って選択肢があるのか」働き方の選択肢を見つける

 

27歳:自分で作った会社がうまくいかず、一度たたんで都落ち。実家でとことん自分を責める日が続く。「何をやっても駄目だな、お前は」など。自分を責めても自殺ができず、体中から毒素があふれ出て苦しい日々を送る。寝るのも怖かった日々。

 

28歳:「このままじゃいけない」決心を決め、小学校からの勉強をやり直す。高校の勉強で躓きながらも、学び直すうちに「自分は何もわかっていなかったんだなあ」大切な教えに気づかされる。 加えて、小説やイラストなど「今までの自分が手を出さなかった分野」に手を伸ばしてみた。

 

29歳:「定義」と「自己肯定」こそが生き方を決めると気づかされ、不安な日々が起きても、心が強くなったと感じる。でも子供の誘惑にはめっぽう弱くなる。

 

35歳:人生初の交通事故(物損)に出会う。冬道の運転で車を上下に大回転(スピンではない)を体型氏、何とか命を取り留め、なぜ生きているのかわからない状態に陥る。

自分の生き方はすべて自分が握っている。わずかな瞬間にしか現れない「自分の真実」を表に引きずり出し、ピンチからチャンスを生み出す発想や視点をブログやメルマガ他で提供中。