fc2ブログ

変数呼び出し値から主人公を動かす

15/01/05改稿

TIPSの方では、ローグライク作成に不可欠とまでは言えないものの、あると便利な技術やシステムの作り方を載せていきたいと思います。
ということで第一弾、変数呼び出し値から主人公を動かす。
ウディタの話なので、ウディタ利用者以外は読んでも意味がないかと思うけども。

さて、ウディタでは主人公を動かす方法がいくつかあります。
一番ポピュラーなのが普通の方向キー入力による移動。ただのRPGだったらこれだけで十分です。
また、イベント中などでは「動作指定」から主人公を動作させることも考えられます。自動キー入力などでも代用可能ですね。
そして最後に、あまり知られていない裏技があって、今回はそれの使い方や特徴を紹介します。

すなわち、「変数呼び出し値」から主人公を動かす。

変数呼び出し値というのは1600000+Xでコモンセルフ呼び出しとかいう例のアレのことです。CDBやUDBの指定タイプ・指定データ・指定項目の数値を引っ張ってきたりすることもでき、とても便利なので、この使い方はマスターしておくといいと思います。

さて、実はこの変数呼び出し値には、主人公や指定イベントの現在座標を呼び出す数値が存在します。
主人公のX座標(標準)呼び出しが9180000、Y座標(標準)呼び出しが9180001です。どんどん+1していくと、精密座標呼び出しや高さ呼び出しなんかもできることが分かります。
また、マップイベントについては9100000+(イベント番号)×10で呼び出すことができます。
この変数呼び出し値を以下のように使うと、主人公を移動させることができます。

1.データを呼ばないにチェックを入れた状態で変数に変数呼び出し値を入力。
2.さっき入力した変数(9180000などが保管されている状態)に、X番の変数呼び出しにチェックを入れた状態で主人公を移動させたいXY座標を代入。

こうすることで、主人公が勝手に指定XY座標まで移動してくれます。もちろんマップイベントにも応用可能です。
が、どうしてこんな面倒な手順を踏んで主人公を移動させる必要があるのか。

言うまでもなく、ターン処理を行うタイミングを監視するためですね。
主人公の移動をコモンイベントで制御しておいて、一歩移動させるごとにターン処理を行うので、これはローグライクでは必須の技術なんではないかと思います。

注意点。
変数呼び出し値から主人公を動かした場合は、移動速度は反映されますが、向いている方向は変わらず、主人公はすり抜け状態になります。なので、上に動くときは上を向くなど方向を反映させる必要があるほか、移動方向に壁があるときは移動できないようにするなどの注意が必要です。
また、キー入力受付は異常に感度が高く、ちょっと方向キーを入力しただけでも滑るようにどこまでも移動してしまいます。なので、入力を実行するまでのキー押し時間や、入力受付間のウェイトなどを使って、移動を常識的な感度に設定する必要があります。

14/7/29
補足。書き忘れてましたが、ウディタキー入力で矢印キーの入力を受け付ける際、斜め方向の入力判定がやたらシビアです。特に右下方向は入力してもほとんど右か下かにしか入力判定がいかず、ここは自分もコモンを作るときに苦労しました。ぱっと見た感じでも、他のウディタ製ローグライクでも斜め移動がやりづらい作品はけっこう多いみたいです。
なので、コモンの組み方としては、斜め方向を単体で受け付けるのではなく、右が押されてから下が押されていたら右下と判断するとか(下の後に右も同じ)、そういう工夫が必要になると思われます。
ここらへんは他のゲームではまず手を加えないような部分なので、誰しも苦労するでしょう。しかし、ローグライク(特にターン制の不思議のダンジョン)である以上、移動の操作性は何をおいても重視すべきなので、ここはシビアに作っていければと思いますね。

15/01/05
さらに補足。↑でこんなこと書いてますが、自分のキーボードがイカれているだけかも。ゲームパッドだったら全然問題なかった。
スポンサーサイト



Twitter
カテゴリ
最新コメント
月別アーカイブ
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR