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に効果範囲内に対象が複数いた場合等の記載が無かったため追記。

2020年1月7日火曜日

不具合修正完了 2020/01/07

下記の不具合及び要望の対応が完了しました。

■スキル発動条件追加
イベントコマンド「強制戦闘」においてスキル発動が許可されない。

2020年1月1日水曜日

更新のお知らせ 2020/01/01

スクリプトの更新を行いました。

■スキル発動条件
一部の公式スクリプトの同種スキルを複数持っていた場合に発動率が一番高いものだけを発動チェックする処理を
カスパラで優先度指定したものを優先して優先度順に発動チェックするように修正

◆同種スキルを複数持っていた場合に優先度順に発動チェックが有効になるスキル
先制攻撃、連続攻撃、ダメージ吸収、攻撃が必ず当たる、反撃時にクリティカル、ダメージガード(元はID順で発動チェック)、不死身
カスタムスキルでSkillControl.checkAndPushCustomSkillで発動チェックを行っているもの

コマンドスキルで発動する連続攻撃を二種類(2回攻撃、3回攻撃)を持っていたとすると
片方のスキルがコマンドスキルで選択しても絶対発動しないという状態が発生するのでそれを防ぐため。
発動率に指定したパラメータを発動率に加えるカスパラを追加。

■追加スキル
スキル所有者の攻撃力と攻撃対象の防御力をカスタムパラメータで指定した
ステータスに依存したものになるスキルを追加。

今回の更新で仕様上、他者製作者様のカスタムスクリプトと併用する場合に競合の可能性が大きくなったものがありますので他者製作者様のカスタムスクリプトと併用する場合はフォルダ名の変更による読込順の調整やスクリプト記述のマージ等で調整お願いします。