はじめまして。
下記のようなことが行えないか悩んでいます。
◎やりたいこと
プレイヤーが通常操作で移動する際、移動先へ瞬間移動させたい
(→移動先のマスにキャラが滑らかに移動するのではなく、瞬間的にパッと移動先のマスへ移動する。
Ultima1など、昔のPCのRPGみたいな動作)
※プレイヤーの動きのみが変わればOKです(NPCの移動については考慮しない)
◎考えたこと
プレイヤー(アクター)の移動速度を最大にした上で、
プレイヤーを移動させるスクリプト上の処理のところにウェイトを挟めば
擬似的に再現できるのかなと考えました。
しかし対象の「プレイヤーを移動させるスクリプト上の処理」を見つけられずにいます。
・上記「プレイヤーを移動させるスクリプト上の処理」
・もしくは、このやりたいことを実現するためのより効率的な手段
・または実現できるプラグイン
をご存知でしたら教えていただけないでしょうか?
よろしくお願いいたします。
【解決済】プレイヤーを通常操作で移動させる際、移動先のマスへ瞬時に移動させる方法
【解決済】プレイヤーを通常操作で移動させる際、移動先のマスへ瞬時に移動させる方法
最後に編集したユーザー しーま [ 2021年8月28日(土) 20:53 ], 累計 1 回
Re: プレイヤーを通常操作で移動させる際、移動先のマスへ瞬時に移動させる方法
どうもこんにちは。
ツクールのキャラクタでは論理座標と実座標という二つの座標情報を使い分けています。
ゲームシステムには論理座標を基準に、論理座標の移動補完を実座標に任せている感じですね。
本来スクリーン座標を割り出す為に実座標を渡す箇所を論理座標に差し替えれば希望の動作になる気がしますね。
ツクールのキャラクタでは論理座標と実座標という二つの座標情報を使い分けています。
ゲームシステムには論理座標を基準に、論理座標の移動補完を実座標に任せている感じですね。
本来スクリーン座標を割り出す為に実座標を渡す箇所を論理座標に差し替えれば希望の動作になる気がしますね。
コード: 全て選択
/*:ja
* @target MZ
*/
(() => {
"use strict"
Game_Player.prototype.scrolledX = function() {
return $gameMap.adjustX(this._x);
};
Game_Player.prototype.scrolledY = function() {
return $gameMap.adjustY(this._y);
};
})();
-
- 記事: 35
- 登録日時: 2020年2月17日(月) 20:21
Re: プレイヤーを通常操作で移動させる際、移動先のマスへ瞬時に移動させる方法
同じマップ内でしたら、下記のようなスクリプトで可能です。しーま さんが書きました:はじめまして。
下記のようなことが行えないか悩んでいます。
◎やりたいこと
プレイヤーが通常操作で移動する際、移動先へ瞬間移動させたい
(→移動先のマスにキャラが滑らかに移動するのではなく、瞬間的にパッと移動先のマスへ移動する。
Ultima1など、昔のPCのRPGみたいな動作)
※プレイヤーの動きのみが変わればOKです(NPCの移動については考慮しない)
◎考えたこと
プレイヤー(アクター)の移動速度を最大にした上で、
プレイヤーを移動させるスクリプト上の処理のところにウェイトを挟めば
擬似的に再現できるのかなと考えました。
しかし対象の「プレイヤーを移動させるスクリプト上の処理」を見つけられずにいます。
・上記「プレイヤーを移動させるスクリプト上の処理」
・もしくは、このやりたいことを実現するためのより効率的な手段
・または実現できるプラグイン
をご存知でしたら教えていただけないでしょうか?
よろしくお願いいたします。
キャラクターIDを-1にすると、プレイヤーキャラになります。
http://rpgmaker-script-wiki.xyz/eventposition_mv.php
character = this.character(キャラクターID)
character.locate(X座標, Y座標)
character.setDirection(方向)
Re: プレイヤーを通常操作で移動させる際、移動先のマスへ瞬時に移動させる方法
名無し蛙さん
ご回答ありがとうございます。
上記に記載いただいたコードをプラグイン化して自プロジェクトへ取り込んだところ、
期待していた動作が実現できました。
論理座標と実座標という2種類の要素があるんですね。。
こういったシンプルな解決策があるとは思いませんでした。
勉強になりました。ありがとうございました!
biv36htspH7k5cCさん
ご回答ありがとうございます。
こちらに記載いただいたやり方でも、キャラクターの瞬間移動自体は行えることを確認しました。
今回はプレイヤーの上下左右キーでの通常移動(イベントでのキャラ移動ではなく)にて
瞬間移動を行えるようにしたかったため、
こちらのやり方はイベントで瞬間移動を行わせたいときに活用させていただきます!
お二方ともありがとうございました!
ご回答ありがとうございます。
上記に記載いただいたコードをプラグイン化して自プロジェクトへ取り込んだところ、
期待していた動作が実現できました。
論理座標と実座標という2種類の要素があるんですね。。
こういったシンプルな解決策があるとは思いませんでした。
勉強になりました。ありがとうございました!
biv36htspH7k5cCさん
ご回答ありがとうございます。
こちらに記載いただいたやり方でも、キャラクターの瞬間移動自体は行えることを確認しました。
今回はプレイヤーの上下左右キーでの通常移動(イベントでのキャラ移動ではなく)にて
瞬間移動を行えるようにしたかったため、
こちらのやり方はイベントで瞬間移動を行わせたいときに活用させていただきます!
お二方ともありがとうございました!