2038年12月31日金曜日

SRPG Studio用のスクリプト素材

SRPG Studio用のスクリプト素材を公開しています。
下記のURLからダウンロードが行えます。 
※2025/06/29 22:00更新
 
名前未定(仮)氏の統合Calと併用する場合は必ず素材に入っている「競合対策について(読み込み順の調整).txt」をご確認ください。(統合Calを併用する時に統合Calを最初の方に読み込む事を前提に作成しております。また、その他の競合対策についても記述しています)

問い合わせや不具合修正連絡を行いたい人はこちらをご確認ください。
 

oblivion用ModのMod配布は右のカテゴリの「Mod配布」かこちらを確認してください(といっても現在はAddItemMenuモドキだけ) 


◆お知らせ:2025/06/29

6/20に来た幾つかの要望と特定プラグインとの組み合わせ時の競合対策について対応完了。
また、6/29にアイテム使用時にEP/FPが消費されなかったり二重に消費するバグがあったと通知があったのでそれも修正済み。
 
・MP(EP)&必殺ゲージ追加
- ユニットコマンド「攻撃」を行った際に、FP&EPを特定値減らすといったことは可能か
-一部のアイテムやアイテム破損時にアイテム使用時のEP&FP消費が機能しなかったり、二重に消費するバグがあった
 
・範囲攻撃アイテム
-ダメージ表示を簡易戦闘時の表記のような、画像ベースのダメージ表示にするといったことは可能か
-キュウブ氏の敵が再移動を行うプラグインを使用した際にエラーが発生してしまう  
 
・スキル発動条件追加
-↑のユニットコマンド「攻撃」を行った際に~のカスパラ設定時用に一部の処理を修正
 
■5/8
・スキル発動条件追加
ロード時にエラーが起こるというエラー報告があったためエラー発生箇所を修正。
(こちらの環境では確認できなかったが、エラー発生箇所とエラー内容ははっきりしているので該当箇所にエラー防止処理を追加)


◆更新詳細(最終更新日:2025/06/29)

こちらをクリックすると開きます

・範囲攻撃アイテム[2025/06/29]

更新内容はこちら 

「競合対策」フォルダにキュウブ氏の「敵再移動 ver 1.2」用の競合対策プラグインを作成。また、該当プラグイン導入時は再移動持ちは再移動を考慮して範囲攻撃を行うようになります。

・スキル発動条件追加(スキル関連処理拡張)[2025/06/29]

更新内容はこちら
さんごぱん氏の『ウェイトターンシステム』に互換性を持たせるための処理や負荷軽減、設定を追加してたり、他作者様のプラグイン競合の対応もしております。

・MP(EP)&必殺ゲージ追加[2025/06/29]

「攻撃」コマンド実行時の瞬間のみEP/FPが消費するカスパラAttackCommandUseを追加。
(ユニット、クラス、アイテム(武器除く)、ステートに設定可能です)
スキル発動条件追加の「コマンドスキル」による攻撃時にもEP/FPが消費されます。
また、敵は攻撃を行ったタイミングで消費されます。
ユニットコマンドやユニットメニューに「攻撃」コマンド使用時の消費EP/FPを表示できるように修正。

使用時EP/FP消費があるアイテムについて一部のアイテムや使用後に破損した場合に二重に消費したり、機能しなかったりした問題を修正。

◆配布素材内容

■スキル発動条件追加(スキル関連処理拡張)

※2024/09/29にさんごぱん氏の『ウェイトターンシステム』と互換性があるように修正しました。
導入する事によりカスタムパラメータ―を渡す事で発動率の詳細設定、発動条件が設定できるようになったり、ユニットコマンドからスキルを選んで戦闘する事でスキルを発動させるという事が可能になります。
また、同一種類のスキルを複数所持していた場合の挙動を修正します。(主に複数所持してても一つだけしか判定せず発動に失敗した場合でも他スキルの発動チェックをしない挙動の修正)
 
発動率の詳細設定については発動型スキル(発動率を設定でき、戦闘で確率発動チェックするスキル)にカスタムパラメータ―を渡す事で発動確率を50+(力×0.5)などのように設定する事ができます。

発動条件はHPが50%以下で発動、特定ターン以内で発動、1ターンでの発動可能回数等、
様々な条件で発動できる条件下を指定できます。
発動条件は常時発動型(確率発動チェックをしないタイプのスキル) にも設定が可能です。

同一スキルを複数所持していた場合の挙動を修正については
例えば連続攻撃A(2回攻撃)、連続攻撃B(3回攻撃)など設定が違うけど同じスキルを複数持っていた場合、公式の動作ではエディタ側の発動確率が高いもの(同一の場合、ちょっと複雑なので割合)のみ発動チェックされるという仕様をカスパラによる優先順で各スキル毎に発動チェックが行うようにし、発動チェックが最初に成功したもののスキルを使用するように挙動が修正されます。
 
設定ファイルから特定のスキルを全ユニットに所持させる事が可能です。(クラススキル扱いとなります。反撃可能スキルに発動条件を設定してそれを持たせる等、ゲーム設定的な感じで使う)
クラスタイプや種族ごとに特定のスキルを所持が可能です(クラススキル扱いとなります。特定の兵種や種族で特殊なスキルを持たせる設定をしたい時)

●上記の発動条件のスクリプトで設定できる項目

・同じカテゴリのスキルを持っていた場合(例えば攻撃回数が異なる連続攻撃を二つ持ってた時)の発動優先度を設定(未設定時は効力が高いものが優先度が高くなるように自動設定)
・発動率にプラスされる絶対値
・発動率の倍率に小数点指定
・発動率の下限と上限
・所有中、特定スキルの発動確率を増加
・相手の見切りを無視して発動できるスキルか
・発動者のステータス(現EP、LVなど現HP以外のパラメータも指定可能になりました)
・発動者の武器が物理か魔法か
・相手のステータス(現EP、LVなど現HP以外のパラメータも指定可能になりました)
・相手の武器が物理か魔法か・ターン数がN以上で発動可
・ターン数がN以下で発動可
・ターン数が特定の倍数で発動可
・こちらから攻撃を仕掛けたか否か
・直接攻撃か間接攻撃か
・相手よりステータスが上回っているか(複数指定可)
・相手よりステータスが下回っているか(複数指定可)
・1戦闘での発動可能回数・1ターン内での発動可能回数
・1マップ内での発動可能回数
・自分の攻撃回数
・相手の攻撃回数
・相手との距離
・発動に必要な消費EPと消費FPを設定可能
・フュージョン状態
・相手のフュージョン状態
・ステート付与状態
・相手のステート付与状態
・装備している武器タイプ
・相手の装備している武器タイプ
・ユニットコマンドから選択したか(コマンドスキル)
・コマンドスキル選択後からの持続ターン数
・コマンドスキル実行後から再選択するまでに必要なターン数
・ユニットの周囲に仲間、あるいは敵が何人にいるか
・ユニットの周囲に特定のキャラが存在するか
・敵を味方で囲んでいるか
・特定のスキルと同時発動しないようにする
・スキルの事前発動チェックを行うか(同時発動禁止設定の併用を前提)

■スキル追加

導入する事により下記のスキルを使用できるようになります。

・クリティカル倍率が変更されるスキル
・発動するとクリティカルになるスキル(上記と組み合わせればFEの怒りを再現可能)
・発動時に防御力を無視するスキル
・発動時に2~5回ランダム攻撃スキル
・ダメージを吸収して回復するスキル
・発動時に戦闘続行するスキル
・攻撃命中時に相手の攻撃ラウンド回数を減らすスキル
・スキル所有者の攻撃力と攻撃対象の防御力を特定ステータスに依存させるスキル
・クリティカルダメージ倍率を変更するスキル
・ダメージ倍率を変更するスキル
・ダメージガード(全体版)
・発動時に相手に先制攻撃を譲るスキル
・最大命中率、最小命中率を変更するスキル
・FEの破天っぽいスキル(相手のステータスを攻撃力に加算)
・FEの復讐っぽいスキル(HP残量が低いほど威力が上がるスキル)

■出撃禁止設定

マップ設定でカスタムパラメータを渡す事により出撃禁止するユニットを設定できるようになります。
また、イベントの「スクリプト実行」からユニット毎に出撃禁止設定を行えます。

■バトルトーク

導入して設定を行うことで戦闘中にミニセリフが表示され、セリフ発生時に
キャラの表情を変更する事ができるようになります。
※ダウンロードURLの参考動画参照

■範囲攻撃アイテム

導入する事により範囲攻撃を行えるアイテムが使用できます。

注:

一部のゲームでスキルから範囲攻撃を発動するという挙動をするものがありますが
これは制作者様が 「範囲攻撃アイテム」と別プラグイン作者様の公開プラグインを組み合わせたり独自に改変したりするなどして所有していない範囲攻撃アイテムを使用する挙動を作っているものだと思われます。(自分で確認できた限りでは、名前未定(仮)氏の疑似アイテムスキルが該当します。google検索してみてください。)
範囲攻撃アイテム」プラグインだけでこの挙動を行う事はできません。当方の方で所有していない範囲攻撃アイテムを何かしらのユニットコマンドで使用できるようにする挙動を制作するかは未定です
 
2024/07/07更新分からアイテムのフィルター機能を反映するようにしました。
(新しく追加したカスパラIER_UseEditorFilterをfalseにする事で旧バージョンの独自フィルターを使用)
2024/04/29以前のバージョンから更新した人でアイテムのフィルター設定をしてない場合は
範囲攻撃アイテムのフィルター設定をするか、
EffectRangeItemDefault.jsのUseEditorFilterをfalseに設定するか等で対処してください。

・アイテムの威力にユニット能力や武器威力を反映させる事ができます。
(攻撃力に加算されるユニット能力を速さや技依存にする等が可能になる設定や最終的な攻撃力に補正値を掛ける設定も可能)
・アイテム使用時にエフェクトの再生が行えます。
 またHIT時のエフェクト、回避時のエフェクト、使用時のダメージ時のエフェクトを指定可能です。
・使用時に反動ダメージやステートの付与、消滅させたりできます・命中率が設定できユニットの能力を命中率に反映させることができます、固定にする事も可
・当たったユニットに対してステートの付与、消滅させたりできます。
 付与・消滅ステートは複数指定可能で付与確率も設定できます
・効果範囲の形を十字型にしたり、ブレス型にすることができます
・特定の地形効果を持つマップチップの地形を変更する事が可能です。 
・与えたダメージの何%分、HPが回復が設定可能。

・ウィンドウの表示について、有効射程と有効範囲などはgame.iniの[keyboard]のSYSTEMで指定したキー(デフォルト:左shift)を押すことで表示されます。


・効果範囲内のキャラへのダメージや命中率が表示されます。game.iniの[keyboard]のSYSTEMで指定したキー(デフォルト:左shift)で表示切替可能。

・現状確認できてる問題
範囲攻撃で発射向きで効果範囲が変わるタイプを敵が使用する場合に明後日の方向に使用する事があります。2023/07/03にて修正しましたが使用する際の発動位置について若干精度が低くなる事があります。  

■MP(EP)&必殺ゲージ追加

導入することにより、ユニットのパラメータにEP(MP)とFP(必殺ゲージ)が追加されます。
また、武器とアイテムの使用判定にEPとFPの残量が条件に加わえる設定が可能になります。
EPは通常のゲームにあるMPと同様な感じの使用を想定、
FPは毎ターンのチャージを前提とした使用を想定しております。(EPもFP同様にチャージ設定可能)
EP、FPが特定域になった際にターン開始時にステート付与されるように設定が可能です。
移動量に応じてEPとFPを消費できるよう設定できます。
攻撃命中、攻撃ミス、被弾、回避持にEP・FPの回復できる設定ができます。
イベントコマンドの「スクリプトの実行」でEP・FPの最大値と現在値、毎ターン回復量の変更、EP・FPの最大値と現在値が取得可能です。
(デフォルトの名前はEPですが、当時MPが公式で実装されるかもしれないと想定した上での名称です。現状、公式側でMPが実装される気配は無さそうなのでMPという名称に変更しても問題有りません)

■敵行動時にスコア上位の行動をランダムピックアップ

敵の行動について、通常はシミュレートによって出たスコアの中から一番高いものから選択されますが、
シミュレートで出たスコアが高い行動を複数ピックアップして、その中からランダムで選択するようにします。

SRPG Studioの敵のアルゴリズムは攻撃対象が二人以上いる場合は与ダメが大きい(それか撃破可能な)相手だけを狙い、攻撃される対象が狙われない場所に移動しない限りは他に攻撃可能な対象が幾ら居てもそちらに攻撃する事は絶対ありません。
また、状態異常付与武器は封印系のような余程強力なものでないと基本的には攻撃時の与ダメが大きい武器の使用を優先してしまいます。
例えば威力が4の武器と威力が1で毒を与える武器の両方を敵が持ってた場合、毒の効果が余程強力でない限りは毒持ちの武器を使う事はありません。仮に毒持ちの武器を使うように調整しても今度はもう片方の武器を使わなくなります。

このプラグインを導入すると攻撃対象が二人以上いる場合は与ダメが大きい相手を必ず狙う事が無くなり、威力の高い武器を使いつつ時折状態異常付与の武器で攻撃する事が可能になります。

このプラグインは1つのユニットに二種類以上の攻撃方法(低威力だけど厄介な異常付与持ち武器、異常付与は無いけど高威力武器)を持たせたい場合、ゲーム後半で敵に予測外の動きをさせる事で緊張感を持たせたい場合に有効です。

※AIを修正するプラグインとの競合にご注意ください

■ダメージ補正・誤差設定

導入する事によりダメージにレベル差補正や誤差が生じるようになります。
HPが100以上とかが当たり前なゲームを作る時にどうぞ。

2025年1月19日日曜日

範囲攻撃アイテムの更新分

・2025/06/29

 全体的に処理をある程度整理。
#EffectRangeItemDefault.jsのOT_EffectRangeItemDefaultの各プロパティの名称を
範囲攻撃アイテムに設定できるカスパラの名称と一致するように修正。
(#EffectRangeItemDefault.jsの末尾で旧名称のプロパティに新名称の値をコピーする処理をしてますので互換性には問題ありません)

敵が範囲攻撃アイテムを使用する際の移動先のアルゴリズム修正。
特にキュウブ氏の「敵再移動.js」が導入されてる時に再移動持ちはそれを考慮する動きになります。
それに伴い#EffectRangeItemDefault.jsに以下の設定を追加。
(全てデフォルトでtrue設定、旧Verの挙動に近い動きにしたい場合は全てfalseに設定してください)
- OT_EffectRangeItemAIMinMove
    平地等でよく発生する余計な移動を行わないようにする。
    
- OT_EffectRangeItemAILeaveMove
    敵対勢力から離れた位置で使用するようになる。
    
- OT_EffectRangeItemAIRepeatMovePriority
    キュウブ氏の敵再移動.js導入時に
    再移動持ちの敵が移動力の消費が控えめになる位置で範囲攻撃アイテムを使うようになる。
    
- OT_EffectRangeItemAIQBRepeatMovePluginFindCheck
    キュウブ氏の敵再移動.js以外で敵が再移動できるようになるプラグインがあった時用の設定。

ダメージや回復演出について、ダメージ値や回復値一人づつポップアップする演出にできるように
カスパラIER_DamagePopupを追加。
これに伴いデフォルトでのダメージ値や回復値の表示は一人づつポップアップする演出になります。
旧Verにあった対象全員のダメージ値を一括で表示する演出をデフォルトにしたい場合は
#EffectRangeItemDefault.jsのIER_DamagePopupの設定値を
{Simple:true, Delay:50, DelayMiss:0}に修正してください。    

以下のカスパラの未設定時のデフォルト値を#EffectRangeItemDefault.jsで調整できるように修正。
また、設定方法についてエディターの「リソース」→「リソース使用箇所」→「アニメ」の
アニメーションを指定できる方法を追加。
・OT_UseDamageAnime 
・OT_UseDelGoodAnime
・OT_UseDelBadAnime 
・IER_HitAnime      
・IER_MissAnime     
・IER_RecoveryAnime 
・IER_DelGoodAnime  
・IER_DelBadAnime   

命中や回避時のアニメと同時に再生する効果音が設定可能になるように以下のカスパラ追加。
・IER_HitSound      
・IER_MissSound     
・IER_UseDamageSound
・IER_RecoverySound 
・IER_DeathSound    

#EffectRangeItemDefault.jsにダメージ値や回復値の色を指定する設定を追加。
IER_DamagePopupTextColor
IER_RecoveryPopupTextColor
IER_SimpleDamagePopupTextColor  
IER_SimpleRecoveryPopupTextColor
IER_SimpleMissPopupTextColor    

多数のユニットが一斉にIER_DelayFire.ForceFireが設定されている
遅延発動型の範囲攻撃アイテムを使用した際、
発動が次ターンに持ち越されるユニットが出てくる事があったので修正。

IER_FixedValue設定時の回復について回復値の表示は正常に表示されていたが
実際の回復値が反映されていなかったので修正。

アイテムの使用位置選択時に効果範囲内に入ったユニットの予測ダメージ値を
使用位置を決定するかキャンセルするまでキャッシュするように修正。
これにより敵が密集している所にカーソルを動かし続ける事によって発生するカクツキが軽減されました。

再移動スキル所持時、強制発動型でない遅延発動型の範囲攻撃の
発動及びキャンセル時に待機状態になる場合に再移動が行えるように修正。

「競合対策」フォルダにキュウブ氏の「敵再移動 ver 1.2」用の競合対策プラグインを作成。
(敵再移動.jsと同じ場所に置いてください)

・2025/04/06

範囲攻撃アイテムのアイテム情報ウィンドウに表示されるものを
「攻撃、命中、射程、範囲」だけの簡略表示にするカスパラIER_SimpleDescriptionを追加。
アイテム情報ウィンドウを簡略化した場合、カスパラの設定で攻撃や命中の項目に表示される
文字列の長さに応じてウィンドウの横幅は自動的に調整されます。
※全範囲攻撃アイテムの情報ウィンドウを簡略化したい場合は#EffectRangeItemDefault.jsの
 OT_EffectRangeItemDefault.SimpleDescriptionをtrueにしてください。
 
エディター側の「有効相手」を設定する事で「有効相手」に一致する対象のみに命中できるように修正。
例えば「クラスタイプ」で飛行系にチェックして不一致の設定を行えば飛行系には命中しない、
「地形グループ」で一致の設定を行えば特定の地形にいる敵にのみ命中という事ができるようになります。
上記の修正に伴い敵が使用する際のAI周りを修正。
 
#EffectRangeItemDefault.jsに以下の設定を追加
  • アイテム情報ウィンドウの横幅を調整する設定IER_WindowWidthAdjustPlusを追加(簡略化されていない場合のみ)

  • アイテム情報ウィンドウの文言を修正しやすくするためIER_DefineStringという文言設定を追加。

  • 威力と命中の値を最小限にする設定IER_WindowInfoSimplePowerAndHitを追加。

  • 範囲攻撃アイテムのアイテム情報ウィンドウの射程と効果範囲の表示で使用者を表すアイコンや使用位置を表すアイコンを変更できる設定(IER_WindowInfoRangeIcon、IER_WindowInfoEffectRangeDamageIcon、IER_WindowInfoEffectRangeRecoveryIcon)を追加。

 
範囲攻撃アイテムのアイテム情報ウィンドウのカスタマイズを行いやすくできるように
EffectRangeDamageItemInfo.jsを新規作成してEffectRangeDamage.jsにあったアイテム情報ウィンドウ周りの処理をそちらに移動。
同様にEffectRangeDamageUseSelectPos.jsを新規作成して
EffectRangeDamage.jsやDefineCustomItemFunction.jsの範囲攻撃アイテムのの発動位置選択時の処理をそちらに移動。

範囲攻撃アイテムの発動位置の選択時に効果範囲内の対象ユニット一覧の表示を調整。
  • 「対象[◯/◯] ◯, ◯キーで表示切替」の表示位置を修正。
  • ウィンドウの横幅を少し大きめに調整。画面解像度が640×480以上を超えた場合はさらに横幅は大きくなります。
  • ダメージ値や回復値が4桁を超える場合にはみ出ないように調整。
  • #EffectRangeItemDefault.jsのIER_EnemyWindowValueTextAdjustXで微調整可能。
  • 左側の「DMG:」や「命中:」を全角3文字を設定できるように修正。
  • 発動位置のカーソルが画面上部にある場合に対象ユニット一覧を画面下側に表示するように修正。
「スキル発動条件追加」との併用時に特定条件下で最大HP割合ダメージを受けると最大HPと同じダメージを受けてしまう問題を修正。

範囲攻撃アイテムのアイテム情報ウィンドウで威力が∞表示される場合に「威力」の文字が出ていない問題を修正。

IER_DelayFireが設定されていた場合に範囲攻撃アイテムのアイテム情報ウィンドウの2ページ目に表示される情報についてTargetDeadCancel、OutRangeFire、Redesignation、DeadNoCancel、AllowCounter、FireDoneWait、FireCancelWait、StateCancelが
設定されてた場合の情報が表示されるように修正。
(StateCancelはどの設定がされてても「特定ステートで発動中止」と表示されます)
 

・2025/03/01

遅延発動型アイテムのカスパラ設定について設定できるカスパラ追加。
    - IER_DelayFire.FireDoneWait           // 発動後に待機状態になるか
    - IER_DelayFire.FireCancelWait         // キャンセル時に待機状態になるか
    - IER_DelayFire.StateCancel.NoAction   // 行動不能のステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.Berserk    // 暴走のステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.Auto       // 自動AIのステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.NoPhysics  // 物理攻撃封印のステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.NoMagic    // 魔法封印のステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.NoItem     // アイテム封印のステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.NoWand     // 杖封印のステートに掛かると発動準備状態が強制キャンセル
    - IER_DelayFire.StateCancel.Keyword    // これの設定値がステートのカスパラIER_DelayFireCancelの値と同一ならば強制キャンセル
    
    - IER_DelayFire.WarningPanelSetting.PanelEnable // 発動までの間の効果範囲の表示
    - IER_DelayFire.WarningPanelSetting.TurnEnable  // 発動までの残りターン数表示
    - IER_DelayFire.WarningPanelSetting.LineEnable  // 発動者と発動位置の間の線を表示

    - IER_DelayFire.BeforeEffectData       // アイテム一覧から使った直後(発動準備状態になった時)に使用者を中心にアニメーションを再生。
    - IER_DelayFire.BeforeEffectPosTarget  // ↑のアニメーションの位置を発動位置を中心に再生するよう設定

これにより範囲攻撃アイテムごとに発動後に待機状態になるか、
キャンセル時に待機状態になるかの設定をする事が可能になった。

併用しているプラグインによっては
敵軍や同盟軍のターンが存在しない場合の時用の設定として
#EffectRangeItemDefaultにIER_DelayFireTrunCheckTypeを追加。

割合ダメージを行えるように以下のカスパラを追加
    - IER_FixedValue     // 固定ダメージ(or回復)値や割合ダメージ(or回復)の設定が可能

スキップ時の処理を修正。
範囲攻撃でステート付与を行った際、スキップ状態であっても
ステート付与アニメが再生されていたのをスキップするように修正。
演出スキップやターンスキップ中のダメージ表示やユニット消滅演出のスキップ可否を
#EffectRangeItemDefault.jsのOT_EffectRangeSkipModeDamageVisualSkipで調整可能に修正。

範囲攻撃アイテムのアイテム情報ウィンドウの横幅を大きめに調整。
それに伴いウィンドウ下部にあった切替方法案内をウィンドウ上部に移動。

範囲攻撃に巻き込めるユニットの情報ウィンドウのHPが
現在HPではなく最大HPが表示されていたので修正。

・2025/01/19

範囲攻撃の遅延発動設定が行える以下のカスパラを追加。
※さんごぱん氏の『ウェイトターンシステム』でも使用可能です。
    - IER_DelayFire ~ Turn             // ターン数
    - IER_DelayFire ~ SelfEffectData   // 発動準備中の使用者のエフェクト
    - IER_DelayFire ~ TargetEffectData // 発動準備中の使用位置のエフェクト
    - IER_DelayFire ~ Cancelable       // キャンセル許可
    - IER_DelayFire ~ ForceFire        // 強制発動
    - IER_DelayFire ~ TurnEndFire      // 強制発動設定時にターン終了後発動
    - IER_DelayFire ~ PosLinkUser      // 使用者と発動位置の位置連動
    - IER_DelayFire ~ TargetTracking   // カーソルをあわせたターゲットに追従
    - IER_DelayFire ~ TargetTrackingFilter // ターゲット追従のフィルター
    - IER_DelayFire ~ TargetDeadCancel // ターゲットに追従時にターゲット死亡で強制キャンセル
    - IER_DelayFire ~ OutRangeFire     // ターゲット追従時等で射程外になった時の発動を許可
    - IER_DelayFire ~ Redesignation    // 強制発動でない時の発動時に発動位置の再設定許可
    - IER_DelayFire ~ DeadNoCancel     // 使用者が死亡した際に発動が強制キャンセルされなくなる
    - IER_DelayFire ~ AllowCounter     // 発動準備中に戦闘を仕掛けられた際に反撃を許可

設定できるカスパラ追加。
    - IER_MinValue // 与えるダメージ・回復量の下限
    - IER_MaxValue // 与えるダメージ・回復量の上限
    - IER_MinHit   // 命中率の下限
    - IER_MaxHit   // 命中率の上限
    - IER_FakeInfiniteDisplay   // アイテム情報ウィンドウと攻撃予測ウィンドウの数値を∞でダミー表示
    - IER_CrosshairTarget       // 発動位置を敵or味方に合わせる必要があるかの有無
    - IER_CrosshairTargetFilter // 上記のフィルター
    
一部のカスパラの説明が抜けていたので追記
    - OT_TargetDamageDeath
    - IER_NoTargetUseNG

範囲攻撃の遅延発動型追加に伴いMaterial\OT_ExtraItemフォルダを追加。

範囲攻撃アイテム使用前の発動位置選択時の
カーソルの初期位置を発動者の位置に置くように修正。

範囲攻撃のアイテム情報ウィンドウ、攻撃予測ウィンドウのページ切り替えについて
どのキーで切り替えられるかが分かりやすくなるようにUI修正。
また、切り替え方法を変更。(旧Ver用の設定も残してます)

イベントコマンドの「アイテムの使用」で範囲攻撃を使用する前に
イベントコマンドの「スクリプトの実行」の「コード実行」にて
ユニットの位置にアイテムを使用する設定ができるように処理追加。

ファイルを細分化。EffectRangeItemDefault.jsの名前を#EffectRangeItemDefault.jsに変更。設定できるものも色々追加。
EffectRangeItemDefault.jsは上書き用のダミーとして残しています。
ただ、ちょっとスクリプト周りはもう少し整理するかも。
(特にカスパラの値を取得する関数は勢いで作ってたからオブジェクト化しておきたい)

#EffectRangeItemDefault.jsで効果範囲の赤色パネルについて
波打たないようにするかの設定できるように修正。

範囲攻撃のアイテム情報ウィンドウと攻撃予測ウィンドウの数値について
∞でダミー表示する手段を追加。(IER_FakeInfiniteDisplay)
また、固定ダメージで非常に大きいダメージ値になる場合も∞で表示するよう修正。
(#EffectRangeItemDefault.jsのOT_EffectRangeInfiniteValueで変更可能)

2024年9月29日日曜日

スキル発動条件追加(スキル関連処理拡張)の更新分

・2025/06/29

「MP(EP)&必殺ゲージ追加」の「攻撃」コマンド実行時にEP/FP消費の設定がある場合の処理を追加。
コマンドスキルについて待機型の場合は使用時に
再移動を持っていても再移動が発生しないように修正。

・2025/05/08

スキル発動条件用のユニークID生成時に特定の状況下でエラーが起こる可能性があったので修正。(こちらの環境では確認できなかったため、OSかエディターのバージョンが原因の可能性あり)

拠点時で初めてユニークIDが生成される場合は次のマップのIDをユニークIDに含めるように修正。 

・2025/05/04

コマンドスキルの武器選択リスト表示時、
もしくは特定の発動条件を設定したコマンドスキル所持の際の移動時に
装備している武器以外の武器の並び順が変わってしまう問題を修正。
    
一部の発動条件の設定時にスキル情報ウィンドウの縦幅が調整されなかったので修正。

・2025/03/26

支援スキルの処理について支援対象者の周囲にいる支援スキル保持者の確認時に
スキル保持者と支援対象者の距離が支援範囲外の場合でもスキルの発動条件チェックが行われていたため
支援スキルの効果範囲から外れてるのが分かってる場合は
スキル発動条件チェックが行われないように修正。

競合対策の「統合CalD-ECPatch.js」について
余計なスキル発動条件チェックを複数回行ってしまう可能性があったので処理を修正。

EC_SkillArrayPush関数で記述ミスがあったので修正。
更新した「統合CalD-ECPatch.js」使用時にスキル発動条件追加も更新しない場合
#DefineExtraConfigSkill.jsのEC_CommonClassSkillの設定が反映されないので注意。

AutoSetteing.jsで無駄な処理があったので修正。

ユニットメニュー下部のスキルアイコンについて
使用者の状態からスキル使用不可である場合にアイコンを薄暗くする機能をつけていたが、
このチェック処理を最低限のもの(ターン数と使用回数)だけにするか
あるいは薄暗くする機能をOFFにする事が可能に修正。
#DefineExtraConfigSkill.jsのEC_SkillListIconSelfConditionCheckLvで変更可能。

競合対策にCL_Growth-Skills.jsを追加。

敵AIの攻撃時のスコア算出時に「範囲内」か「全域」の支援スキルに
自身も対象となるカスパラを設定してた場合に二重でチェックを行ってしまってたため修正。

・2025/03/22

発動率から敵の特定ステータス分減算するカスパラEC_EnemyStatusSubPercentを追加。
ステータスやカスパラ等で加減算された発動率に指定値を乗算するカスパラEC_SecondCorrectionを追加。

スキル情報ウィンドウの横幅と発動率についての表示を調整。
EC_AddTriggerRateとEC_EnemyStatusSubPercentが設定された時に発動率の欄に表示が追記される用に修正。

EC_StateIDとEC_OpponentStateIDについて、
カスパラでAND条件かOR条件かの指定をデキるように修正。

EC_StateIDについて特定ステートに掛かっていないを条件にした場合に
ステートが一切掛かっていない状態だと条件未達扱いになってたので修正。
また、ANDかORの条件指定がなかった頃の動作が
'NON'を付けてないとOR条件、'NON'を付けてるとAND条件となるあべこべな動作を
デフォルトでOR条件にするように動作を統一。

戦闘後から再行動スキルが発動するまでの間まで
スキル発動条件のチェックで直近に戦闘を仕掛けた相手を参照できるよう処理を修正。
(ただし、戦闘後に再行動スキルが発動するまでの間に何かしらの要因で連続戦闘が起こった場合は最初に戦闘した相手か最後に戦闘した相手を参照)
これにより再移動スキルと再行動スキルに対して
EC_OverStatusやEC_Range等の戦闘相手との比較系のスキル発動条件を設定できるようになります。
WIP版のため問題があった場合は
#DefineExtraConfigSkill.jsのEC_CreateTmpCombatTargetActorDataをfalseにしてください。

上記の仕様追加に伴い、戦闘開始時点での相手との距離を判定するカスパラEC_CombatRangeを追加。
また、ユニットの行動時に戦闘を行っておりかつ敵のHPが0になっているかを判定するカスパラEC_CombatDefeatEnemyを追加。
主に再移動スキル、再行動スキルに設定するためのカスパラです。

OverStatus系のカスパラをパラメータボーナス系スキルに設定した場合に
処理の一部に問題がありエラーが発生する可能性があったので修正。

自軍が戦闘を仕掛けて返り討ちで死亡した場合に一部の後処理が実行されなかった問題を修正。

パッシブスキルの設定例.txtを更新。(再行動スキルでの例に追加)
設定例.txtも更新。(EC_EnemyStatusSubPercentの設定例)

・2025/02/21

古いVer(少なくとも1.287前)のSRPGStudioで
拠点で保存しようとすると起きるエラーと
拠点のデータをロードすると警告メッセージが出る問題を修正。

さんごぱん氏の「ウェイトターンシステム」を併用しない場合に
zWaitTurnSystemConflictAvoidance.jsを外す必要はないのだが
これを外した時にエラーが起こらないように修正。
 

・2025/02/14

2024/11/17に追加されたスキルの事前発動チェック機能用の一時的なデータが
ユニットメニューを開いた際に誤って生成されていた事が判明。
(本来、戦闘開始時に一瞬だけ生成されて戦闘終了後に破棄されるもの)

ユニットメニューを開いた後に戦闘をせずにセーブすると
ゴミデータがセーブデータに誤って保存されてしまい
そのセーブデータをロードして戦闘を行うとエラーが発生する問題があったので修正。
また、該当のゴミデータが出たセーブのロード時にゴミデータを削除するように修正。

敵がコマンドスキルを使用するかの判定で
本来使えない位置でコマンドスキルを使ってしまう可能性があったので修正。

readme.txtや一部のtxtファイルの中身を仮マニュアルに移動。
設定例.txt等もマニュアルに順次移す予定。
 

・2024/11/20

#DefineExtraConfigSkill.jsの自動優先度設定について、
スキル種類「再行動」についてのデフォルトの設定値を修正

マニュアル「既存処理の変更点.txt」を追加。
「他スキル発動禁止設定と発動型スキルの事前発動チェック設定について.txt」を修正。

EC_ExclusionSkillの発動禁止設定について特定グループを一括で禁止できるように修正。
それに伴い発動禁止リセットタイミング周りの仕様を調整。
発動禁止設定リセットのパフォーマンス改善。

事前発動チェックに成功したスキルが既存処理でちゃんと発動したかの確認時に
余分にチェックする可能性があったので修正。
 

・2024/11/17

スキルの事前発動チェック機能、またその機能を使う事を前提とした
スキル発動による別スキル発動禁止設定を追加。
(EC_InvalidCheckTiming、EC_ExclusionSkill)

EC_EnableAggregationsで指定できるカスパラに
AttackCount、TargetAttackCount、isSrcを追加。

EC_SupportSkillConfigで指定できるカスパラにCombatAggregationsを追加。それに伴い、戦闘中で攻撃を1回行うごとに支援効果対象チェックがされる処理を追加。これにより初撃のみダメージ増加や戦闘中にHP低下で支援対象外となる処理が行えるようになった。

#DefineExtraConfigSkill.jsのEC_ContinuousAttackMultipleInvokeのデフォルトをfalseに修正。

#DefineExtraConfigSkill.jsのEC_IfEPFPIsLowCounterAttackPriorityを
falseに設定していても反撃を優先してた問題を修正。

反撃スキルに消費FPを設定してもFPが消費されなかった問題を修正。

常時発動型スキルにEC_isSrcを設定した時に一部のスキルの挙動に反映されなかったのを修正。

readme.extのEC_SupportSkillConfigで設定できるカスパラ名に誤りがあったので修正。

「スキル発動条件でパラメータボーナスを考慮する」が未チェックで
HPを増加するパラメータボーナススキルとHPが最大HP以内である事を条件にしたスキル
(EC_NowStatus:{HP:'50-100%'}、またはEC_NowStatus:{HP:'10-M'}等)を所有していた時、パラメータボーナス込みによる現在HPがパラメータボーナス無しの最大HPを超えてしまうとスキル発動条件が未達成となっていたので、最大範囲を最大HPに指定していた場合は最大HPを超えても条件達成になるように修正。

ユニットメニューのスキル一覧の表示パフォーマンスを改善。

杖使用時のカスタムスキルについて対象を参照するカスパラ(EC_EnableAggregations.TargetNowStatus等)を設定した時に条件が反映されるように修正。

EC_SupportSkillConfigのOverStatus、UnderStatusにHPを指定した時にエラーが起こる可能性があった部分を修正。

#DefineExtraConfigSkill.jsの共通スキルに統合Cal用のスキルを設定した時や統合Cal用のスキルにスキル発動条件追加のカスパラを設定した時に内容が反映されるパッチを作成。

「他スキル発動禁止設定と発動型スキルの事前発動チェック設定について.txt」
「常時発動型のカスタムスキルへの設定例.txt」を追加。
「設定例.txt」、「パッシブスキルの設定例.txt」についても中身修正。

・2024/11/08

スキル発動条件追加とさんごぱん氏の「ウェイトターンシステム」を併用した時の
処理落ち対策で作ったWTのキャッシュについて、「ウェイトターンシステム」側の更新でユニットのWT取得の関数名が変更されたので修正。

追加スキルの後手攻撃のカスタムスキルが正常に動作していなかったので修正。
NormalAttackOrderBuilder._isDefaultPriorityの処理について統合Calを先に読み込ませる事を前提に修正。

このプラグインより前に読み込んだプラグインによるNormalAttackOrderBuilder._isDefaultPriorityの処理の結果、カスタムスキル等で攻撃側の先制攻撃より優先されるタイプの待ち伏せが発生していた場合、あるいは受け側の先制攻撃が発動されてたのに無効にされた形跡があればそちらの結果を優先するよう修正。(統合Cal対策)

zTemporaryDataVirtualAttackLoadAfter.jsにて事前準備で変数やカスパラに設定を行うものについてScriptCall_Reset内で動的宣言を行うように修正。

・2024/11/03

2024/09/29の更新時から発生していた以下の問題を修正。

EC_Priorityの自動設定について#DefineExtraConfigSkill.jsのEC_AutoPrioritySetting.ForceCommandSkillHighPriorityをtrueにすると以下の問題が発生する。
-非コマンドスキルでない場合でもEC_Priorityに値が加算されてしまう。
-リセットする度に全てのスキルのEC_Priorityの値が増えてしまう。

同種類の発動型のスキルを所有していた際に優先度が高い順から発動チェックする処理についてカスタムスキルの場合だと一番優先度が高いものだけしかチェックされていなかった。

・2024/10/25

カスタムパラメータEC_ConditionTextEnableを設定してもスキルウィンドウの発動条件の表示が非表示にならなかった問題を修正。
(内部で使うカスパラ名が誤ってEC_ConditionTextになっていたため修正)
 

・2024/10/14

スキル「盗む」、スキル「行動回復」を複数所持していた時のユニットメニューに表れるコマンドの挙動を改変。
発動可能なスキル「盗む」を複数所持している場合は「盗む[選択]」となり、
スキルを選択した後に盗むを実行します。スキルの使用回数制限の設定と併用する事で
「アイテムだけしか盗めないけど何度も実行可能」、「武器も盗めるけど使用回数に制限あり」、「武器も含めた複数のアイテムを盗めるけど1MAP1回のみ」
という風に盗むの使い分けができるようになりました。
発動可能なスキル「行動回復」も同様に複数所持している場合は「行動回復[選択]」となります。(#DefineExtraConfigSkill.jsで名称変更可能)

「行動回復」で対象を周囲に設定されてる場合について、
公式処理では選択時に即座に使用でしたが、使用直前に対象の確認と確認メッセージが出るように改変しました。

「競合対策」の「戦闘後盗む_ECPatch.js」について、
盗むスキルを複数所持していた時に盗めるアイテムの種類について別スキルを参照する可能性があった問題を修正。

コマンドスキルの選択一覧の使用回数について、使用回数制限がマップのみに設定したスキルの残り使用回数が正常に表示されない不具合を修正。

敵側の行動回復スキルの対象選択の判定処理や使用回数増減の処理に関するものを
誤って消しており機能していなかったので修正。

AroundSelfやAroundTarget等の周囲のユニットの存在を条件にするカスパラにて
Rangeが未設定だった時の挙動に誤りがあった(範囲が無限になってた)ので修正。

一部の関数(EC_GetSkillObjectExtraConfigCheck、EC_GetSkillObjectPassiveSkillArray)の引数の指定の仕方を修正。
関数名変更(EC_CommandPlusSkillAfterSetting→EC_PassiveSkillAfterSetting)
windowmanager-skillselectmenu.jsのオブジェクト宣言を修正およびCommandSkill.jsの使用するオブジェクト名の修正。
CommandSkill.jsにて意図せずにグローバル変数として扱ってた変数を修正。

・2024/10/06

キュウブ氏の敵対勢力支援プラグインの改変について、
古いファイルを元に改変していたので修正対応。元のファイルを改変したものを上書きする形式はやめて改変用プラグインを読み込ませる方式に変更。
(このため、キュウブ氏の敵対勢力支援プラグインは元のファイルが必要になります)

名前未定(仮)氏の「戦闘後盗む」について導入時に使用時に使用回数をカウントするように処理追加。キュウブ氏の一部のプラグインについて競合回避策を追加。
「競合対策」フォルダに競合対策用のファイルを置きました。
「(プラグイン名)_ECPatch.js」という名前のファイルは
該当するプラグインと同じ場所に設置してください。(元ファイルが必要になります)
現時点で競合対応しているもの
・キュウブ氏
    「ターン開始時に範囲回復、範囲ダメージができるようになるスクリプト ver 2.3」
    「敵対勢力に支援効果を与えるスクリプト Ver1.8」
    「倒れると発動する支援スキル Ver 1.0」
    「スキル発動条件攻撃回数(FEHカウント)」
・名前未定(仮)氏
    「戦闘後盗む」
・さんごぱん氏
    「ウェイトターンシステム」
 
ログの出力可否をスキルタイプ別に設定可能に修正。
#DefineExtraConfigSkill.jsで設定が行えます。
(負荷対策のためパラメータボーナスと支援のログはデフォルトで非表示に設定しています)
『戦闘相手の』スキル発動率が上昇するカスパラ(EC_OpponentAddPercent)を追加。
強力だけど所有すると相手のスキル発動率が上がる諸刃の刃的なスキルの作成ができます。


・2024/09/29

処理を大幅に修正。設定できるカスタムパラメータを大幅追加。
常時発動型のスキルでEP・FP消費を使用したい場合はMP(EP)&必殺ゲージ追加の更新をしてください。
(改変して使っている場合もUnitEP.jsとUnitFP.jsで修正した内容は反映してください。)

さんごぱん氏の『ウェイトターンシステム』に互換性を持たせるための設定を追加。
『ウェイトターンシステム』併用時にパラメータボーナススキルを持ってると処理落ちする問題に対応。
(「OT_ExtraConfigSkill」フォルダの#DefineExtraConfigSkill.js参照)
キュウブ氏の『スキル発動条件攻撃回数(FEHカウント)』を併用した時に競合しないように修正。

キュウブ氏の敵対勢力支援プラグインの取得経験値増幅を使用したい場合は処理部分をマージしたものを別途用意しております。「$キュウブ氏の敵対勢力支援マージフォルダ」のrival_support.jsで上書きしてください。
(SRPG Studioのwikiにあったものを改変したのですがどうやら古いVerのものでした…近日中に最新Verに合わせたものに修正予定)

所持すると他のスキルの発動確率を上昇させるカスパラ(EC_EtcSkillAddPercent)を追加。

スキル発動条件に周囲にいるユニットを条件に加えられるようになりました。
特定ユニットが隣接している、周囲に味方が何人かいる、
敵の周囲に味方がいる等の条件を追加できます。

一部の設定はコマンドスキル発動前の使用条件、
使用後からの持続ターン中の間で有効となる条件を分けれるようになりました。

攻撃型のコマンドスキルについて敵側も使用するようになりました。
(待機型のコマンドスキルは現状では敵側は使用しません。)

エディタの「有効相手」の設定があるスキルのID、またはオリジナルデータを指定する事で
自身と相手両方に対して「有効相手」の設定から条件判定ができるカスパラを追加しました。
これによりスキル所持者の判定について
「種族」、「どの地形にいるか」、「男性か女性か」等、
今までこのプラグインのカスパラで設定できていなかった条件を設定できるようになりました。

スキル使用回数の設定について戦闘毎、ターン毎、マップ毎の3種類から
戦闘毎、ターン毎、マップ毎、コマンドスキル毎の4種類別々設定ができるようになりました。
(従来ではコマンドスキルの使用回数はマップ毎の方に設定する形だった。)
この仕様変更によりEC_TriggerCountMap(マップ毎の使用回数)に設定されてる値が
旧Verの設定だった場合、ゲーム起動時に互換性のため新Ver用の設定に自動的に変換されます。

支援やパラメータボーナススキル以外の常時発動型スキル(確率での発動判定がなく常時有効なスキル)で
コマンドスキル化しなくても発動条件追加の設定が可能になりました。
また、従来では常時発動型スキルは戦闘毎、ターン毎、マップ毎の使用回数を設定できるのは
盗むや行動回復等のコマンド追加型のスキルだけでしたが、
常時発動型スキル全てに設定ができるようになりました。
(自然回復スキル等、戦闘毎、ターン毎の使用回数を設定しても意味がないものがあります)

スキル種類「支援」について射程を「指定範囲」、「全域」にすると自身は対象外となりましたが
カスパラ「EC_SelfSupport」を設定する事で自身も対象にできます。
また、支援効果を与える勢力についての指定も可能になりました。
(自分以外の周囲の敵味方に悪影響を及ぼすスキルみたいな事が可能)
また、支援対象者のステータス(例えばHPが)スキル所持者より高いか低い場合のみ支援効果を受けれる設定が可能になりました。
(EC_SupportOverStatus、EC_SupportUnderStatus)

所持するだけで常時発動する(戦闘時の発動率チェックがない)タイプのカスタムスキルについて
EC_CustomPassiveSkillやEC_CustomSkillConditionTypeを設定する事で
スキル発動条件追加の条件チェックを受けれるようになったり、
エディタの「有効相手」が設定されていた時に条件チェックを受けれるようになりました。
※全ての常時発動型のカスタムスキルで動作する保証はありません。
  カスタムスキル側の処理の仕方によっては
  これを設定しても動作しないものもあります。ご了承ください。

ランタイムスキルについて、EC_Priorityが未設定だとスキル効力に応じて自動的に設定されるようになりました。
これにより、ダメージガード等の一部のスキルを複数所持していた時に
最も効力が大きいものから順に発動チェックが行われるようになります。

「OT_ExtraConfigSkill」フォルダの#DefineExtraConfigSkill.jsで下記の設定が行えるようになりました。
・特定のスキルを全ユニットに所持させる(反撃可能スキルに発動条件を設定してそれを持たせる等、ゲーム設定的な感じで使う)
・クラスタイプや種族ごとに特定のスキルを所持させる(特定の兵種や種族で特殊なスキルを持たせるというのを一括で設定したい時)
・スキルのクールタイム等について『さんごぱん氏のウェイトターンシステム』を使う場合に互換性を持たせるための設定
・武器やアイテムについているパラメータボーナススキルを考慮するかの設定(公式では非推奨扱いのためデフォルトOFF)
・その他、デバッグログ関係

readme.txtと設定例.txtも修正。(特に設定例.txtは一部廃止されてたものが使われていた)

2024年5月18日土曜日

Oblivion用 Mod配布

Oblivion用 Mod配布ページ

個人用に作って使ってた物を配布します。

ダウンロードはこちらから

ダウンロードしたzipの中にreadme.txtと一緒にMod本体のzipが入っています。readme.txtは必ずご確認ください。  

---------------------------------------------------------

◆注意

xOBSEの導入は必須です。

作者のUI環境はDarkUId DarN を使用しています。それ以外のUI環境での動作はあまり確認しておりません。

Mod関連については素材配布と違い何がトラブルの引き金を引き起こすか分からないのもありトラブルが発生した場合はアップロードを削除する可能性がありますのでご了承ください。(Mod開発自体を公式が開発キットとか配布して公認しているため余程の事がなければ多分大丈夫だと思いますが)

後、自分用に作ったのを公開用に手直しした物なので問題がある可能性はありますがこれに関する問い合わせは不具合があった旨の報告があっても完全にはサポートできないのでご了承ください。
(特にTes4Edit周りはスクリプトエラー以外で質問が来ても対応できません。Tes4Editの使い方は各自で調べてください) 

再配布OKなものについてはクレジット表記は基本的には自由です。

・ AddItem Oblivion (2024/05/18)

2025/2/6 にReadme修正

SkyrimのAddItemMenuみたいなのをOblivionで使えるようにしたModです。
Mod導入後に取得するレッサーパワーを使ってアイテムを取得できます。
シジルストーンとかも取り放題。Nehrimでも使用可能。

Mod装備品もAddItem Oblivion用の定義ファイルを作成すれば一々装備品が置かれる場所を覚えたりそこに出向かなくても取れるようになります。
定義ファイルはTes4Editを使用して作成できます。(modのreadme参照)
バニラのアイテムはoblivionとDLC、Nehrim用の定義ファイルをModに同梱しているので事前準備無しで取得できます。

装備Modを配布したい人もこれを使えば、チェストを作ってそこにアイテム入れてマップに配置という手間を無くせますので是非どうぞ。(定義ファイルの配布はOK)

改変については自由です。再配布は改変有無関係なくやっても問題ありません。
ただし有償での配布は禁止。(やる人はいないとは思いますが念の為)
再配布時はクレジット明記は可能ならば明記して欲しいですが基本的には自由です。(AddItem Oblivion用の定義ファイルだけの配布はクレジット明記必要なし)

余談:

2~3年ぐらい前に自分用に作ってちょくちょくブラッシュアップさせながら使ってたけど
まさか、2024年になっても明らかに需要がありそうなOblivion用のAddItemMenuが作られなかったのは驚き。(さすがに2024年にもなれば、OblivionのModもかなり下火になってるけど)

FalloutとかでもAddItemMenuみたいなのがあるし、Oblivionの前作にもそれっぽいModあるからOblivionでも(それもこのModと違って定義ファイル作成不要な上等なものが)いずれ作られるだろと思っていたら一向に作られる気配が無く、OblivionだけAddItemMenu系のModが無いのも不便だと思ったので公開。

2023年10月25日水曜日

問い合わせについて

※2025/03/24更新
 

◆メールでの問い合わせについて

平日に問い合わせが来た場合は基本的に色々忙しい&疲れて眠ってる可能性高いので回答に時間がかかります(3、4日ほど)休日は内容にもよりますが1、2日ほどで返信するようにしますが、こちらの都合によっては3、4日ほど回答に時間がかかる事があります。
(不具合報告やリクエストに関しては基本的に返信せずブログ内で受信の旨を通知します。不具合通知の情報に不足があったり、リクエスト内容について確認したい事がある場合は返信をします) 
 
※連絡先メールアドレスは「詳細プロフィールを表示」のお問い合わせ→メール
 または素材の利用規約に記載しております。
※本スクリプトと一切関係無い質問はご遠慮お願いします。(この場合は確実に返信しません)
 
※2017年10月にコメントで来ていた要望を4ヵ月ぐらい見逃すという不注意を起こして
 いたためコメント欄は現在書き込めないようにしています。
 ご要望や不具合通知についてはメールでお願いします。
 万一コメントを書き込めても作者が目を通せる保証はありません。
 

◆不具合報告について

不具合連絡(もしくは改修)についての対応は連絡を受信した旨の通知、調査等の告知はブログ内で行われ、基本的に修正完了以外は返信はしませんのでご了承ください。(対応困難なものや調査した結果、別の原因である可能性がある場合は返信する可能性はあります)
また、修正対応につきましては1、2週間ほど掛かる場合がありますのでご了承ください。
 
不具合の報告につきましては詳細な情報を記載してください。
 
  • SRPG Studioのバージョン
  •  どのタイミングでエラーとなるのか(ユニットを動かそうとした時か、攻撃を行った瞬間か、戦闘終了後か、またはスキル情報の確認時等でエラーになるのか)
  •  (スキル発動条件追加の場合)どの種別のスキルを所持している状態でエラーが発生するのか
  • カスタムパラメーターの設定(特定のカスタムパラメーターの設定でエラーが発生するのか、またはカスタムパラメーターの設定がなくてもエラーが発生するのか)
  •  特定の行動時でのみエラーが発生するのか(プラグインで追加された動作に関係ない部分でエラーが発生するかしないか)
  •  【重要】他に使用しているプラグイン(特定プラグインとの併用時にエラーが発生する事を確認できるか)
  • エラーメッセージ(エラーメッセージだけの報告はNG。エラーメッセージの内容によってはそれだけだと原因の特定ができないため)

ただ漠然と入れたらエラーが起こった程度の情報(もしくはエラーメッセージだけの報告)だけだと原因の特定が非常に困難になり対応が不可能となる場合があります。
(必要な情報が不足してた場合は、返信で確認を行います。)
 

◆リクエストについて

当方では新規素材作成のリクエストや、
個人や団体に対しての専用の素材制作及び提供は承っておりません。

既存素材に関するリクエストにつきましては承っており、
リクエスト内容や当方の都合にもよりますが対応等については検討はさせていただきます。
対応は1~2週間ほど掛かりますが、こちらの都合によっては3~4週間ほど掛かる場合がございます。
 
リクエストの受信通知は不具合連絡同様、リクエストを受信した旨の通知はブログ内で行われ、基本的には返信はしませんのでご了承ください。
また、リクエスト内容が非常に難易度が高いものであったり
こちらの都合等で対応が困難な場合は対応不可と返信しますのでご了承ください。

2022年12月6日火曜日

Fallout4 備忘録

Fallout4のModを弄り回してた時に気づいた点やあまり他サイトで触れられてないような事に関するメモ。

SkyrimにあったGame.GetCurrentCrosshairRef関数について

Fallout4には標準機能として存在しない。(だがGetCurrentConsoleRefというConsole Utilを使わない限りデバッグにしかほぼ用途が無いものはしっかりと残してる)
後述するPapyrus Common Libraryというスクリプト拡張プラグインにてGetCurrentCrosshairRefが使用できる他、
LL FourPlay communityというスクリプト拡張プラグインにてほぼ同じ機能のLastCrossHairRef関数とLastCrossHairActor関数が使えるようになる。
 

特定対象のアクティベート時にRキーで追加コマンドを実行するタイプのModについて

これはダミーPerkにAdd Activate Choiceを設定してプレイヤーに持たせる事で実現させてるが
このAdd Activate Choiceが設定されてるPerkを複数取得した場合、
発動条件を満たした追加コマンドが2つ以上あるとコマンドが表示されなくなり、Rキーを押しても追加コマンドが実行できないという問題が発生する。
(A、B、Cのコマンド追加Perkをプレイヤーが所有し、AとCの条件に一致した対象にクロスヘアを合わせてもRキーコマンドが表示されなくなる)
おまけにこの追加コマンドを実行するキーの指定が不能なため競合した時の解決もかなり困難となる。(最悪どちらかの追加コマンドModを切る必要がある)

このPerkによる追加コマンドはSkyrimにあったGame.GetCurrentCrosshairRef関数が消えた事によってクロスヘア上のアクターを取得できる手段が無くなったため
その代打手段として使われていたが現在はPapyrus Common LibraryやLL FourPlay communityというスクリプト拡張プラグインでGame.GetCurrentCrosshairRef関数と同機能の関数が使えるようになったため
目の前の対象に特殊な事をやりたいModを作る場合は上記の問題回避のためにもPapyrus Common Library、もしくはLL FourPlay communityの関数とOnKeyDownの組み合わせでModを制作するのが安全。


スクリプト拡張プラグインについて

この記事を書いた時点でのFallout4のスクリプト拡張プラグインは自分が見つけた範囲では
SUP F4SE、Console Util、LL FourPlay communityぐらいしかなかったが
2023年後半ぐらいからスクリプト拡張プラグインが増え始めたおかげで昔に比べてスクリプト関係は非常に自由度が増した。
 
近年ではFallout4の突然のアップデートのせいで使用できなくなってるものも出てきてしまったが、幸いPapyrus Common Library、Lighthouse Papyrus Extender、Garden of Eden Papyrus Script Extenderの3つのスクリプト拡張プラグインで代用は可能。
プラグイン開発者ならば基本的に上記3つのスクリプト拡張プラグインを入れれば問題ないだろう。(どれがどの方面に優れているかはまだ把握しきれていない)
 
  • Papyrus Common Library
ファイル操作系やコンソール系、それ以外にも色々と欲しかった関数を扱えるようになるが
何よりも重要なのがLL FourPlay community以外でGetCurrentCrosshairRefが使えるようになるという点。
これかLL FourPlay communityが無いとクロスヘアを合わせた対象に特別な事をするMod開発は非常に制限が掛かるので是非とも導入をオススメする。
また、SUP F4SEが最新のFallout4に対応しなくなったため
SkyrimのPapyrusUtil SEを使ったModにあるようなMod設定の保存や読込、ゲームのロード時にMod設定の自動読込を作成したい時はこちらを使った方が良い。
 
  • Lighthouse Papyrus Extender
多くの関数を追加する拡張プラグイン。LL FourPlay community以外でHexToIntやIntToHex等の数値から文字列、あるいは文字列から数値への変換等の機能が扱える。ドキュメントは充実してる方なので分かりやすい。
 
  • Garden of Eden Papyrus Script Extender
多くの関数を追加する拡張プラグイン。こちらもConsole UtilやPapyrus Common Library以外でコンソール系の関数を追加する。上記2つに無いものはこちらに存在してる事が多くアクター取得系もGetCombatGroupMembersやGetCombatTargeters等、これが最も充実してるかもしれない。
ただ、On~等のイベント受信型に関してはPapyrus Common Libraryと被っていてかつあちらの方が種類が豊富なのでイベント受信型はPapyrus Common Libraryの方を使ったほうが良い。
 

  • SUP F4SE
※現在のアップデートされたFallout4には非対応
Jsonファイルの読み書きや一時保存用の変数の仕様が可能になる。
Papyrus Common Libraryが出る前は、唯一外部ファイルを使用できるようになるスクリプト拡張プラグインであった。
ちなみにこの拡張プラグインはSkyrimにもSUP SKSEという名前で存在する。
 
JSON関係はPapyrus Common Libraryで代用可能になった。
 
  • Console Util
※現在のアップデートされたFallout4には非対応
コンソールコマンドをスクリプトから実行する関数を追加する。
SkyrimのConsole Utilと同機能。
 
Papyrus Common LibraryかGarden of Eden Papyrus Script Extenderで代用可能。
 
  • LL FourPlay community
※最新版は現在のアップデートされたFallout4に対応しているが旧バージョンには非対応
 Skyrimで存在してFallout4で何故か消えた関数の一部がこの拡張プラグインで使えるようになる。
クロスヘア上のアクターに対して特定のキーを押す事で何かのアクションをするというスクリプトを作る場合は必須。
(ただ、ダウンロードサイトはnexusとは別サイトでそちらもダウンロードのためにアカウント登録する必要がある)
 
クロスヘア関係はPapyrus Common Library、
HexToIntやIntToHex等はLighthouse Papyrus Extenderで代用可能。
 

Game.GetPlayerFollowers関数の仕様

現在コンパニオンになっているアクターではなくプレイヤーに追従しているアクター達を配列で返す。だが、待機命令で待機してたり戦闘中だと配列に含まれないためOblivionやSkyrim(要powerofthree's papyrus extender)の類似関数と同じ感覚で使うと痛い目を見る。(OblivionのGetNumFollowersはちゃんと取得できてたのに…GetCurrentCrosshairRef関数の件もそうだがスクリプト関連は何で一部退化しとるんだ…)

SUP F4SEがあれば周囲のアクターを取得できる関数が存在するため下記のコードで取得できる。(スクリプトエンジンもSkyrimよりマシになった感じはするが負荷がありそうだから多様は禁物。)

Actor[] Function GetFollowers()
    Cell pCell = Game.GetPlayer().GetParentCell()
    Actor[] followers = new Actor[0]
    Actor[] acts = SUP_F4SE.GetActorsInCell(pCell)
    int i = 0
    while (i < acts.length)
        if acts[i].IsPlayerTeammate()
            followers.add(acts[i])
        endif
        i += 1
    endWhile
    return followers
EndFunction

※近年ならばGarden of Eden Papyrus Script Extenderのアクター取得系で何とかなるかもしれない。

2020年4月29日水曜日

更新のお知らせ 2020/04/28 5/4追加修正

要望内容の対応、及び不具合の修正、修正が完了しました。
今回の修正で範囲攻撃アイテムが大幅に修正されております。
特にカスタムパラメータ未設定時のデフォルト値が変更されているため、スクリプトを既に使用している方は注意してください。(EffectRangeItemDefault.jsで変更可能)

5/4追加修正:
敵が大勢いるマップで処理が重くなるという報告があり確認。
AI処理で確実に範囲外にいるキャラに対するスコアチェック処理をスキップして、処理を軽減するように修正。
また、無差別系で敵味方が周囲に入り乱れてると被害の出さない場所にアイテムを使用できる場合でも使用しない可能性があったため処理を修正。

■範囲攻撃アイテム

-----要望-----
●命中率100%の指定
IER_HitValueの数値に関わらず必中指定ができるようにして欲しい

→新しいカスタムパラメータ:IER_HitMarkを追加

●効果範囲『全域』の指定
効果範囲について全域指定できるようにして欲しい。

→カスタムパラメータ:IER_EffectRangeTypeに99を指定で可能
 
●効果音を重複させない
HP回復やステート回復など一度に対象全員のエフェクト(効果音)が発生する場合
人数分の音が重なって音がかなり大きくなってしまうので
『効果音は一人分しか鳴らさない』のような指定が可能にして欲しい。

新しいカスタムパラメータ:IER_SoundDuplicateを追加、重複するのはtrueに設定した時のみに修正。(未設定時のデフォルトはfalse)


-----以下、それ以外で修正した内容------
●敵が範囲攻撃アイテムを使う時のAI処理を大幅修正。処理速度が大幅に改善。  (まだ見直しの余地ありだが前よりも余程マシになってるためリリース)

最低限のカスタムパラメータ(威力[IER_Value])で汎用的に動作するようにデフォルト値を見直し。デフォルト値を定義したファイル、EffectRangeItemDefault.jsを作成。
 
●色々煮詰まってた説明ウィンドウを修正、game.iniの[keyboard]のSYSTEMで指定したキー(デフォルト:左shift)で表示切替可能にして、有効射程と有効範囲はマスを表示して範囲が分かりやすくなるようにした。


●効果範囲内のキャラへのダメージや命中率が表示されるように修正、
game.iniの[keyboard]のSYSTEMで指定したキー(デフォルト:左shift)で表示切替可能




●範囲効果のタイプに四角(ボックス)型を追加。
 
●効果範囲のタイプでブレス型の場合、カーソルを使用者の斜めに移動すると極端な処理落ちが発生する問題を修正。 

●効果範囲のタイプをブレス型にした場合、射程タイプを強制的に十字型になるように。
 ●カスタムパラメータ:IER_HitReflection(ユニットの技を命中率に加算、武器の命中値を命中率に加算)について、指定が非常にややこしいため、パラメータをIER_HitReflectionUnit、IER_HitReflectionWeaponに分割。(旧型式、新方式どちらの指定でも可能です)