2024年9月29日日曜日

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

・2025/08/03

  • 名前未定(仮)氏の「武技っぽいの」で使用できる武技スキルに対して
    スキル発動条件のカスパラを設定すると該当する武技スキルの使用可能条件になるように処理を追加。
  • EC_TriggerCountMap(マップ内の使用回数制限)やEC_UseEP、EC_UseFP、EC_CommandCoolTimeが設定されてる場合は武技スキル選択後の戦闘開始時に選択した武技スキルの使用回数とEP/FPが消費、クールタイムが適応されるように処理を追加。
  • また、2025/08/02時点では武技プラグイン側で「有効相手」設定の判定が行われていないため、本プラグインのカスパラEC_CustomSkillConditionTypeを設定する事で武技スキル側に「有効相手」設定の判定を追加できます。
    •  ※武技スキルは武技コマンドから使用するスキルなのでEC_CustomPassiveSkillは設定しないでください
    •  ※「MP(EP)&必殺ゲージ追加」プラグイン側の更新も行ってください
    •  ※カスパラの設定例は「武技スキルへの設定例.txt」を参考にしてください
  • EC_CustomSkillConditionTypeに2(スキル発動判定時に攻撃相手に対して有効相手設定の判定を行う)を設定していたカスタムスキルに発生していた以下の問題を修正。
    • ユニットメニューのスキル表示時に使用可能な状態にも関わらず、アイコンが薄暗くなる
    • コマンドスキル待機型にしていた場合に該当スキルが使用できなくなってた
  • マニュアルのカスタムパラメータ一覧(簡易一覧)を「設定可能パラメータ早見表.txt」に移動。(メモ帳で開いた方が分かりやすいので)
        

・2025/07/19

  • 「支援、パラメータボーナス、常時発動型と認識されたカスタムスキル」についてコマンドスキル型にしている場合に発生していた以下の問題を修正。
    • EC_CommandCoolTimeによるクールタイム設定時にスキル未使用時でもクールタイムが毎ターン適応されてしまっていた。
    • ターン毎やマップ毎の使用回数が正常にカウントされていなかった。
  • マニュアルにて「支援、パラメータボーナス、常時発動型と認識されたカスタムスキル」にEC_TriggerCountBattleによる戦闘内の使用制限を設定しても無効となる旨を追記。
  • 「支援、パラメータボーナス、常時発動型と認識されたカスタムスキル」のターンごとのスキル使用回数を増加タイミングを戦闘時の画面に表示される与ダメージや命中率等の表示に使う数値の算出後に変更。
  • zTemporaryDataVirtualAttackLoadAfter.jsにあるAttackChecker.getAttackStatusInternalの前後処理の一部をUIBattleLayout._getAttackStatusのエイリアスに移動。(リアル戦闘の情報ウィンドウに表示される値に関する事前処理を移動)

・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/11/22更新

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

平日に問い合わせが来た場合は基本的に色々忙しい&疲れて眠ってる可能性高いので回答に時間がかかります(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に分割。(旧型式、新方式どちらの指定でも可能です)

2020年3月29日日曜日

更新のお知らせ 2020/03/29

要望の対応及び修正を行いました。

■スキル発動条件
コマンドスキルでなくてもクールタイムの設定を可能に修正。

クールタイムが設定されているスキル使用後のクールタイム中
ユニットのステータス画面のスキルアイコンが薄暗くなり、
スキルアイコン下部とスキルウィンドウ内に再使用までのターン数が表示されるように修正。

持続ターン数が設定されているコマンドスキル使用時に
ユニットのステータス画面のスキルアイコンが点滅し、アイコン上部に持続ターン数が表示されるように修正。

2020年2月23日日曜日

不具合修正完了 2020/02/23

下記の不具合の対応が完了しました。

■範囲攻撃アイテム
OT_Recoveryをtrueにしての範囲回復時に使用者が対象に含まれていた場合、
使用者に対する回復処理が二回行われていた問題を修正。
取得経験値についてreadmeに効果範囲内に対象が複数いた場合等の記載が無かったため追記。