ども、しゃしゃ。
前回の講座は装備装着だった。
今回は装備装着からの打撃/銃撃エフェクトについて書いていく。
ちなみに銃撃はピクチャを飛ばすやり方ではないため、
前方ほど命中しないデメリットを持っている。
前方に命中するにはピクチャ移動による処理をすればいいのだが、
アニメーションが働かなくなるので、私は採用していない。
何より近距離なら近距離用の打撃攻撃をすればいいしね。
打撃エフェクトのやり方
打撃エフェクトへ入る前に前回の復習から。
装備選択で武器を選んだ場合、
イベントの挿入にて武器の種類(ID番号)と飛距離(武器の打撃範囲)を記す。
打撃攻撃エフェクトの要点として、
- 主人公の画面X,Y座標を定義する(ただの座標ではないところに注意)
- 向きと角度を与える
- 主人公の画面X,Y座標へ加算する
- 割り出した画面XYにアニメーションの位置を代入、番号はUDBから割り出す
- 最後にあたり判定へのイベント挿入をおく
初めに座標の違いをきちんと学んでおこう。
画面XとYはピクセル単位で人物キャラと一緒にいる状態だ。
座標XとYは左上を原点に右と下に向かうにつれて加算されていくよ。
数学で座標をやっていると、第四証言を思い浮かべながらやってほしい。
ただしY座標はマイナスでなくプラスだ。
また上と左がマイナスで、下と右がプラスも抑えてほしい。
装備分岐コモンからCs0に飛距離、Cs1に武器の種類を入れる。
Y座標を調節する理由も上記参照サイトを読んでほしい。
本当、ここには助けてもらった。ありがとう。【第6回】ウディタ実況講座「アクションRPG編(1/4)」 https://t.co/yFzcUtILoM #sm18691770 #ニコニコ動画
— せんけん (@megabi0) December 5, 2019
あるいは上記動画を必ず見てほしい。
特にイベントの挿入「角度決め」は上記動画をそのままやった。
大半の設定も上記動画を参考にしたよ。
ただアニメーションはすでに公式で作っている「技能エフェクト描画」を借りた。
上記動画は技能エフェクトを使わないで攻撃を繰り出す方法だからね。
詳しくは上記動画の通りにやってほしい。
画像では省略しているが、設定のところでCs0に向きを入れたのち、
下にある「結果を返す」にCs10を代入してほしい。
角度(数値)を入れた後にcos、sinで斜めの座標を割り出せる。
Cos、Sinは三角関数でCosは横X軸、Sinは縦Y軸だね。
ちなみにsin/cos=tanはグラフの傾きを示している。
CosとSinを二けたの数字で割ってエフェクト座標を整える。
数値が小さいと遠くなり(銃撃で使う)、
60から80だと主人公の目の前にエフェクトが出る。
エフェクトを挿入したらすぐ下にあたり判定へとつなげる。
あたり判定に必要なコモンセルフ引継ぎとして、
- エフェクトが出る座標XとY
- 武器の種類(武器ID)
武器の種類は武器が一種類ならいらないと思う。
参照:結果を返すの説明
銃撃エフェクトと乱数について
銃撃エフェクトは二つの座標を使う。
武器と同じ状態で主人公の前にアニメーションを出すエフェクト。
銃弾の場所を示すエフェクトだ。
やる内容は打撃エフェクトをほぼコピーする形でいいのだけど、
飛距離によって銃撃範囲を分けていく。
乱数を使う理由として、飛距離の微調整を行うためだ。
同じ個所に打つと、同じ個所でしか敵は反応しない。
乱数は800000Xだ。Xの範囲だけ乱数になる。
しかし0から始めなければならないので中途半端な値から始めるなら、
変数操作で「~」を選ぶといい。
乱数を設けて距離を遠く/近く設定し、近い敵でもあたるよう工夫をしている。
近すぎると全く当たらないので、私は打撃武器を加えているよ。
乱数については次の命中率や会心の一撃にも役に立つよ。
また確率によって変わるアイテムなどにも使えるし、敵の攻撃にも応用がきくよ。
おまけ:命中率の設定
おまけに命中率の設定を行った。
小刀以外を装備しているときに乱数が生じる。
0から9の超適当な値が入り、7以下=8と9のときのみ、
エフェクトは表示されてもあたり判定が出ないように設定している。
実際にやったら何度か攻撃をはずすように設定できたよ。
同じやり方である値以上/以下の時だけ会心の一撃を出せるよう、プログラムを組めた。
一撃(クリティカル)については次回の「あたり判定」で語っていく。
あたり判定はこちらで語っているよ。