fc2ブログ

移動ルート設定の処理改善

イベントの実行内容と移動ルートの設定とでは、処理の仕方が若干違ったりします。

イベント処理では1フレーム内に実行できるものは、全て1フレーム内で行います。
スイッチや変数の操作、アイテムやお金の増減など、ウェイトが必要ないものは全て一瞬で処理します。
ウェイトや文章表示などが実行されると、処理が一旦中断されます。

移動ルートの設定はというと、1フレームで1行処理します。
向きの変更や各種フラグのON/OFFなど、同時に出来るような処理でも1フレームに1つずつです。

つまり、移動ルートの設定は1行毎にウェイト1が入っているような状態です。


とはいっても、1フレーム処理が遅れて困るなんてことはそうはないでしょう。

ある処理を除いては・・・

その処理とは、グラフィックの変更です。
正確には、グラフィックの変更を使ったキャラクターのアニメーションです。

「アクイ ト アイ」ではキャラクターがちょこちょこ動作を見せます。
こういうふうにキャラクターに動きを付ける場合、グラフィックの変更と向きの変更を使って行います。
場合によってはスクリプトでパターンも変化させます。

しかし、先にもあげたように、移動ルートの処理は1フレーム1つです。
グラフィックの変更と向きの変更を同時に行なってはくれません。

そうなるとどうなるかというと、一瞬だけおかしなグラフィックが表示されてしまいます。

グラフィックの変更→向きの変更とやると、一瞬グラフィックの変更後のキャラクターが写り、
向きの変更→グラフィックの変更とやると、一瞬向きを変えたキャラが表示されてしまいます。

たかだか1フレーム。
しかし見えてしまう以上、プレイしてる人に違和感を与えてしまいます。
せっかくゲームにのめり込んでいる時に、あれ?っと別のことに意識が行ってしまうのは、あってほしくないことです。

なので、1フレーム内で処理できるものは処理してしまうスクリプトを作りました。


class Game_Character
  #--------------------------------------------------------------------------
  # ◯ ルートに沿った移動の更新
  #--------------------------------------------------------------------------
  alias _wooden_ex_update_routine_move update_routine_move
  def update_routine_move
    if @wait_count > 0
      @wait_count -= 1
    else
      _wooden_ex_update_routine_move
      if @move_route_forcing && @move_succeed && stopping? &&
        @wait_count == 0 && @move_route_index >= 0
        update_routine_move
      end
    end
  end
end



alias使ってますが、再定義でもいいような内容です。

ループ使っても良かったんですが、再帰呼び出しというのを使ってみたかったのでこんな感じです。
再帰呼び出しというのは知っていましたが、使ったのはこれが初めてだったりします。
またひとつかしこくなった!



話は変わって

「ぼくらの大革命!」の不具合修正とともにちょっと機能追加中です。
「アクイ ト アイ」を作った時に、リトライ機能をつけるのに作ったクイックセーブスクリプトが使えるんじゃないかと思って、付け足してます。
ワールドマップから町やダンジョンに入った時に自動で保存され、いつでもその状態までやり直しが出来るようにしたいなあと思ってます。

あと、1歩後退機能が付けたい所。
ただ、あの隊列スクリプトがちょっと特殊なので、1歩下げるというのがなかなか難しかったりします。
これは諦めるかもしれません。

あとはキャラクターの挙動を調整したいところなのですが、何百個もあるイベントを一つ一つ修正というのは非常につらいものがある・・・

まあ、あまり力を入れても仕方ないので、適当にきりがついたら更新しようと思います。
スポンサーサイト



2013-04-05 : スクリプト小ネタ : コメント : 2 : トラックバック : 0 :
コメントの投稿
非公開コメント

移動ルート設定の処理改善について
木星ペンギン様が配布して下さっているスクリプト「移動ルートの条件分岐」をダウンロードさせて頂きました。どうも有難うございます。

ところでこのスクリプトの「移動ルートの中の処理改善」について質問があります。

テストプレイで「グラフィック変更」→「@original_pattern = 2」をイベントの移動ルートに設定したのですが、動作させるとグラ変更した直後の画像(pattern=1の画像)が一瞬表示されてしまいます。これは仕様上の限界と考えるべきでしょうか。お暇な時で構いませんので御返事を頂けますと有難いです。よろしくお願いします。
2023-09-10 08:28 : ひろ URL : 編集
No title
連投で申し訳ありません。

上述の挙動について@original_pattern = 2の前に@pattern = 2を置いたところ綺麗に動作してくれるようになりました。ですので質問は取り下げさせて頂きます。

お騒がせして致しました。
2023-09-10 09:04 : ひろ URL : 編集
« next  ホーム  prev »

プロフィール

木星ペンギン

Author:木星ペンギン
ほぼツクールのことばかり書いてます。
名前は↑から取りました。
木製ですが木星です。
トカゲは関係ありません。

ゲーム

  • 箱庭の勇者たち(体験版)
  • ぼくらの大革命!
  • 走ってぶつかるゲーム
  • ビート☆サムライ

メールフォーム

wood_penguin@yahoo.co.jp

名前:
メール:
件名:
本文:

月別アーカイブ

広告

寄付(Donate)