
RPGツクールフェスの回転移動を再現 - FesSpin.js
シェア用テキスト:
▼RPGツクールフェスの回転移動を再現(あわやまたな様作) - FesSpin.js
https://plugin.fungamemake.com/archives/31768
RPGツクールフェスの回転移動を再現します。
ふりがな:RPGつくーるふぇすのかいてんいどうをさいげん
機能概要: RPGツクールフェスの回転移動を再現します。
利用規約(ライセンス): MITライセンス
作者:あわやまたな
作者サイト:https://awaya3ji.seesaa.net/
解説ページ:https://awaya3ji.seesaa.net/article/482163453.html
ファイル名:FesSpin.js
プラグインのヘルプ:
/*:ja * @target MV MZ * @orderBefore ReplaceTargetCharacter * @plugindesc RPGツクールフェスの回転移動を再現します。 * @author あわやまたな (Awaya_Matana) * @url https://awaya3ji.seesaa.net/article/482163453.html * @help 回転移動を制御するためには移動コマンドの[スクリプト]、 * もしくはイベントコマンドの[スクリプト]、[プラグインコマンド]を利用します。 * 【スクリプト(移動コマンド)】 * 回転移動 * this.spin(真偽値); * 移動するたびに回転します。 * * 常に回転 * this.alwaysSpin(真偽値); * 移動に関係なく回転し続けます。 * * 逆回転 * this.reverseSpin(真偽値); * 左回転させます。 * * 回転ウェイト * this.setSpinWait(フレーム数); * 指定したウェイトで90度回転します。 * * 真偽値:trueまたはfalseを入力します。 * 未入力でトグル。 * * フレーム数:経過する度に90度回転します。 * 0で自動算出。 * * 【スクリプト(イベントコマンド)】 * プレイヤーの回転を制御する時 * $gamePlayer.spin(真偽値); * $gamePlayer.alwaysSpin(真偽値); * $gamePlayer.reverseSpin(真偽値); * $gamePlayer.setSpinWait(フレーム数); * イベントの回転を制御する時 * this.character(キャラクターID).spin(真偽値); * this.character(キャラクターID).alwaysSpin(真偽値); * this.character(キャラクターID).reverseSpin(真偽値); * this.character(キャラクターID).setSpinWait(フレーム数); * * キャラクターID:キャラクターIDを入力します。 * 0にするとこのイベント、-1にするとプレイヤーに効果があります。 * * 【プラグインコマンド(MV)】※MZはイベントコマンド[プラグインコマンド]から説明を読んでください。 * 回転移動 * fesSpin キャラクターID 真偽値 * * 常に回転 * fesSpin always キャラクターID 真偽値 * * 逆回転 * fesSpin reverse キャラクターID 真偽値 * * 回転ウェイト * fesSpin wait キャラクターID フレーム数 * * キャラクターID:キャラクターIDを入力します。 * 0にするとこのイベント、-1にするとプレイヤーに効果があります。 * * 真偽値:trueで有効化。falseで無効化。 * 未入力でトグル。 * * フレーム数:経過する度に90度回転します。 * 0、未入力、またはautoで自動算出。 * * [オプション] * イベントの一行目に注釈を置き入力します。 * <fesSpin> * ページ切り替え時に最初から回転移動がセットされます。 * <alwaysSpin> * ページ切り替え時に最初から常に回転します。 * <reverseSpin> * ページ切り替え時に最初から逆回転します。 * <spinWait:フレーム数> * ページ切り替え時に回転のウェイトを設定します。 * * [仕様] * 通常、1マス移動につき一回転。 * 移動コマンドで、連続で1歩しか動かさなかった場合は半回転。 * (手動で設定した場合を除く) * PluginCommonBaseがあっても無くても動作します。 * MV/MZ共に使用可能。 * * [更新履歴] * 2020/10/31:α版リリース * 2020/11/01:β版。歩行、足踏みのアニメーションに割り込ませていた処理を独立させ、不具合を全て解消。 * コマンドで一歩しか動かさなかった時に半回転になる仕様を追加。 * 2020/11/01:RPGツクールMVでも動くように改良。 * 2020/11/01:不具合を修正。また、競合を減らすため、既存の関数は上書きせずフックする処理に変更した。 * このまま正式にリリースしてもいいかも。 * 2020/11/01:PluginCommonBaseがあっても無くても動くように。無かったらMZのデフォルトの機能を使用します。 * 2020/11/02:主に[動作を繰り返す]絡みの半回転時の挙動を修正。また、自律移動でも半回転の仕様を実現。 * 通常の回転速度は移動速度7、半回転は速度8まで移動速度と連動可能(多分)。 * コードの可読性アップ。キリが良くなったのでひとまず公開。 * 2020/11/02:セルフスイッチ「ハロルド」を廃止して、独自の変数で状態を管理。処理数も少なくなった。 * 2020/11/03:Ver.1.0.0 多分まともなプラグインになったのでVer.1.0.0とします。プラグインパラメータを追加。 * 2020/11/04:Ver.1.0.1 リファクタリング。プラグインコマンドの処理とフォロワーの更新処理を最適化。 * 2020/11/06:Ver.1.1.0 プラグインコマンドの処理を変更。英語版ヘルプを追加。(DeepL翻訳を使用) * 2020/11/10:Ver.1.2.0 バグの修正。プラグインパラメータの削除。 * 2020/11/11:Ver.1.2.1 バグの修正。 * 2020/11/12:Ver.1.3.0 バグの修正。オプションの追加。 * 2020/11/23:Ver.1.3.1 リファクタリング。 * 2020/11/23:Ver.1.3.2 リファクタリング。 * 2020/12/02:Ver.1.3.3 リファクタリング。 * 2020/12/09:Ver.1.3.4 リファクタリング。 * 2021/06/26:Ver.1.3.5 バグの修正。 * 2021/07/21:Ver.1.4.0 バグの修正。競合対策。処理の効率化。 * 2021/08/07:Ver.1.4.1 バグの修正。 * 2022/01/05:Ver.1.5.0 バグ修正。処理の効率化。distancePerFrame書き換えにも対応。 * 2022/11/23:Ver.2.0.0 ページ別設定を注釈に変更。 * 2023/02/23:Ver.3.0.0 「常に回転」を追加。移動に関わらず自由に回転を制御可能に。 * 2023/02/25:Ver.4.0.0 リニューアル。プラグインコマンドの互換性はありません。 * 2023/03/16:Ver.4.0.1 致命的な不具合を修正。 * 2023/03/19:Ver.4.0.2 イベント起動時の挙動を一貫性のあるものに修正。 * 2023/10/14:Ver.5.0.0 回転速度を自動にした時の不具合を修正。逆回転を追加。 * 2023/12/29:Ver.5.1.0 隊列メンバーの挙動修正。自動算出の条件を修正。競合対策。 * 2024/01/05:Ver.5.1.1 隊列メンバーの挙動修正。 * 2024/01/20:Ver.5.1.2 隊列メンバーの挙動修正。 * * @command spin * @text 回転移動 * @desc 回転しながら移動します。 * * @arg id * @text キャラクターID * @desc キャラクターのIDを指定します。 * このイベント:0 プレイヤー:-1 * @default -1 * * @arg ope * @text 操作 * @desc 操作を指定します。 * 未入力でトグル。 * @default true * @type boolean * * @command alwaysSpin * @text 常に回転 * @desc 移動の有無に関わらず常に回転します。 * * @arg id * @text キャラクターID * @desc キャラクターのIDを指定します。 * このイベント:0 プレイヤー:-1 * @default -1 * * @arg ope * @text 操作 * @desc 操作を指定します。 * 未入力でトグル。 * @default true * @type boolean * * @command reverseSpin * @text 逆回転 * @desc 左回転にします。 * * @arg id * @text キャラクターID * @desc キャラクターのIDを指定します。 * このイベント:0 プレイヤー:-1 * @default -1 * * @arg ope * @text 操作 * @desc 操作を指定します。 * 未入力でトグル。 * @default true * @type boolean * * @command setSpinWait * @text 回転ウェイト * @desc 90度回転するまでのウェイトを設定します。 * * @arg id * @text キャラクターID * @desc キャラクターのIDを指定します。 * このイベント:0 プレイヤー:-1 * @default -1 * * @arg frames * @text フレーム数 * @desc 指定したフレーム数経過すると90度回転します。 * 未入力、0、autoで自動。 * @default auto * * @param tryHalfSpin * @text 半回転を試みる * @desc 移動コマンドで、連続で1歩しか動かさなかった場合は半回転します。(手動で設定した場合を除く) * @type boolean * @default true */
