おはよう、しゃしゃ。
私は今、ARPGゲームを作っている。
ティラノスクリプトで作成したゲームにおいて、
どうしてもホラー要素はサウンドノベルより……
のび太のバイオハザード的な物語を作りたく、
半年くらいかけてプログラミングを作り、
だんだん何をしたらいいかわかるようになってきた。
今回、私はARPGで非常に苦労した部分及び、
どうすれば「限りなく」思った通りの展開ができるか?
書いていきたいと思う。
私はプログラミングスクールに通っておらず、
全て既存のネット情報を集めながら試行錯誤をこなした「独学」である。
また記事は「自分でプログラミングを行う人」にしぼっている。
コモン配布をできるのだけど、あえてしない。
時間をかけて自作できると応用もきくからだ。
ソフトはウディタを使っているが、
プログラミング「ソフト仕様」が違うだけで、
定義と役割を押さえておけば、すべてに応用できる。
基本:プログラミングを行う前にやるべき勉強
プログラミングを行う際、初めに定義を知らねばならぬ。
定義とは道具の使い方と役割だ。
例えばウディタだとイベントコマンドからループを設定できる。
スクラッチだったらループでなく「ずっと」という単語に置き換わる。
またDB読込と書込の違いといった道具の定義を知らないと、
自作でイベント(プログラミング)を作れない。
今使っているプログラミングソフトの基本的役割を抑える。
全てきっちり抑える必要はない。
用いる処理に追ってその都度押さえておけばいい。
ただし道具をただ知るだけでなく、紙に書くなどして体で覚えるのが大切だ。
以下のサイトを見て改めて基本を叩きこもう。
ルール参照:ウディタパーフェクトガイド
ルール参照:初めてのウディタ挫折して再び
ルール参照:やどっとウルフ
自分の攻撃処理とダメージ処理全体像
#プログラミング教育 #プログラミング初心者 #プログラミング学習
3か月以上格闘の末、やっと動画としてARPGの攻撃-敵攻撃の一部を出せた。
解説は執筆。少しでもプログラミングの面白さとキツさを味わっていただければ嬉しいことこのうえない。https://t.co/r82er7bErJ— せんけん (@megabi0) December 4, 2019
私の場合、武器を装備して敵に攻撃するタイプをとっている。
より詳しく分けていくと、
- 装備から武器を選ぶ
- Shiftキーを押すと武器を構えた状態になる。歩く速さも変更する
- Zキーを押して攻撃エフェクトを表示させる
- エフェクトと敵の座標が近ければヒット
- 敵HPが0未満になれば消滅
実際に動画を見てもらうと、すごく単純な仕組みになっているが、
単純をプログラミング化させるのが難しい。
お礼したい相手
本当、ここには助けてもらった。ありがとう。【第6回】ウディタ実況講座「アクションRPG編(1/4)」 https://t.co/yFzcUtILoM #sm18691770 #ニコニコ動画
— せんけん (@megabi0) December 5, 2019
今回イベントを作るうえで最もお世話になった動画が、
LaineusさんのARPG講座が一つ。
続いて土日でゲームサイトさんのARPG解説だ。
サイト:土日でゲームARPG編
二つのサイトにはこの場を借りてお礼を申し上げる。
以下、コモンイベントを載せていくのだけど……
長くなりそうなので複数回に分けて書いていきたい。
画像を載せるのみだったらこの記事のみでおわるのだけどね。
装備装着コモンイベント
初めに装備装着コモンを見ていく。
いつどこでも出せるよう、並列実行常時にしておく。
文字列操作から装備を装着したキャラチップ画像を用意しておく。
装着したキャラチップは元のキャラに武器画像を付け加えればいい。
続いてキー入力としえtコモンセルフ(以下Cs)10番に、
キー入力をサブキー(12)に設定しておく。
図式として「12(サブキー)を推すと、Cs10=12になる」と定義できたわけだ。
ウディタ以外のプログラムでも非常に大切だからね。
条件分岐としてCs10が12と同じ:サブキーを押したとき、
以下のプログラムが働くようにしておく。
私の場合まずは装備装着音を設定しておき、
次に主人公が装備をしていない場合は警告を出して、
変数Vを0に戻しつつキャラ画像を装備していない状態に切り替える。
可変DB[0 0 28]は可変ことメニューアイコンから黄色いアイコンを選び、
タイプ:0(主人公ステータス) データ:0(奈々子) 種類:28(装備中の武器)
-1は何も装備していない状態と定義される。
何も装備していないときはたとえ武器を装備していても解除するよう、
言葉を発してキャラを変えていくわけだ。
V-数字はマップ画面が切り替わっても機能できる変数であり、
コモンセルフは作ったコモンでしか機能できない変数だ。
V-番号は主にあるマップで宝箱をとった後に別のマップでイベントを発動させるときに使う。
装備装着ではV2-0=0の時に装備装着にキャラ画像を変え、
2-0=1の時に0へ切り替えて装備装着をはずす。
装備すると動作を少し落とすために動作指定で移動速度を一つ減らし、
キャラ画像が""と同じ=主人公のキャラチップと同じ時に、
パーティー画像の記憶を通して装備変更キャラ画面に切り替えられる準備を行う。
パーティー画像記憶がないと、装備装着キャラ画面に切り替えられない。
そのうえでまた何も装備をしていない場合は早歩きに戻す。
何を示しているかというと武器を装備中にメニュー画面を開き、
装備欄から武器をはずした際の処理を行っているだけだ。
きちんと装備をしているときにキャラチップを武器所持状態へと切り替える。
上記画像をクリックすれば拡大して村れるので、
ぜひ上記画面のやり方をそっくりマネする形で使ってもらいたい。
私はコモンイベント配布サイトにある「ガンゲームコモン」をもとに改造した。
装備装着から発射までの手続き
※ちょっと修正。
もう一つ。
打撃はこっち。
続いて攻撃ボタンを押した後武器別に分けるところまでを行う。
この時点では攻撃ボタンの定義はできてもアニメーションは出ないよ。
はじめに先ほどの常時並列実行でV2-0=1のとき、
装備装着画面に切り替えられたね。
別のコモンセルフでも働くV変数でないと起動できないため、
必ずV変数にしてV2-0=1の時のみ発動できるように設定だ。
初めにCs10に武器の定義を行う。
先ほど使った装備中の武器をコピーしてDBを読み込む。
DB操作で上は書き込み、ゲームプレイ中に可変DBを書きかえる機能で、
読込は単にあらかじめ登録しておいたデータを代入するだけだ。
ファイルを開くのが読込、上書き保存が書き込みだ。
武器はあらかじめ装備コマンドから武器を選んでおくと、
武器に応じた数字が入るようになる。
武器は20000台で防具は30000台だ。
もちろん武器はユーザーデータベースエディタ(青アイコン)で設定する。
赤く囲んだ部分は二つ、アニメーションと攻撃力。
最低でも二つはきちんと決めておこう。
またタイプ3:武器とタイプ1:アニメーションのデータIDは必ずそろえるべし。
揃えないと後で武器の定義をした際、ごっちゃになるからね。
下記画像のように私はそろえたよ。
DB操作から武器の定義を終えた後は攻撃ボタンの設定に入る。
先ほどのキー入力からキー種類を「キーボード全キー(100~)」を選び、
特定キーのみ入力にチェックボックスを入れ、144を入力する。
続いて攻撃連続防止機能だけと、
何も入れていないとボタンを押しっぱなしで攻撃できるから阻止する。
はじめはコモンセルフで攻撃と攻撃連続防止を入れたが、
うまくいかなかったので、上記画像をもとに入力を真似してほしい。
原理としては攻撃ボタンV2-5を押す=144と同じ
→攻撃をすると同時に攻撃連続防止に1くわわり、
押しっぱなしによる連続攻撃を防ぐ。
ボタンを話すとV2-5は144から0になるので、V2-6に0が代入される。
キー入力の場合、ボタンを押している間のみ数字(ここでは144)が入り、
ボタンを放すと0が代入される仕組みになっているみたい。
続いて装備の選択に入るのだけど、注目してほしい部分として、
Cs10が20004と同じ→Cs1で武器の種類として数値4を代入する。
2000△とCs1=△と同じ数値を合わせないと、
武器とアニメーションエフェクトがちぐはぐになりやすい。
銃弾はCs0に使用段数を、Cs2に飛距離を入れている。
拡散度は初め使う予定だったが使っていない。
ショットガンを装備した時、周りに銃弾を与える意味でやったのだけどね……
ポイントとして、銃弾や武器の種類は次の武器攻撃エフェクトほかに使うので、
必ずCs0から3の値を使うべし。
数値に1600000XとXに数値を代入したら、
顧問セルフの値を代入できるようになる。
詳しくはこちらの数値を参照してね。
参照:ウディタ数値代入一覧
次回の講座内容はこちら
今回は講座を分ける。一気に書くのもいいと思っているのだけど、
あまりにも長すぎるとスクロールが面倒だし、
何より訂正するとき情報を追加するため長くなる。
次回はこちらだ。
楽しみにしていてね。