MODをいじって遊ぼ第三弾。
注意:NSFWです。下に音が出る動画の埋め込みがあるんで音声気を付けてください。SLAP DA BUTT のリンクはこちら↓(自己責任でお願いします)
ttps://www.loverslab.com/files/file/21583-slap-da-butt-se/
- 修正内容
- 気づいたこと:Papyrusでインスタンスの生成はできない。CKが要る。
- まだ終わらない。
- こんな機能① 瞬間移動せずにちゃんと歩いてきてほしい
- こんな機能② 複数NPC同時起動
- こんな機能③カウンター機能
上記MODはプレイヤーに対してのみ動作するもので、プレイヤーがすれ違いのNPCに突然ケツをたたかれる被セクハラMOD。
おそらく多くの場合でドヴァ子を前提として作られた紳士向けMODでございますが、主にドヴァ男で遊んでいる身であれば、ドヴァ男が野郎にケツをたたかれて喘えぐよりも連れまわしている女フォロワーにどこぞの野郎が突然セクハラかましてきてアァンッ(はーと)って喘いでくれる方が断然見たい。そうでしょう?
そんなこんなで改造することにしました。
オーイエスグーッド
たたく側が瞬間移動してるのが気になりますが、概ねやりたいことの基本的なところはできました。
修正内容
割と単純で、まずCKで当MODをアクティブにして開き、ケツをたたかれるNPCにかけるMagicEffect、およびSpellのセットを新たに作成、SPIDを使って対象NPCに配布、MagicEffectスクリプトにてOnEffectStart時に対象NPCのActor情報をStorageUtil(PupyrusUtilの機能の一部)を使って保存、
SlapButtの本体のスパンキングスクリプトでプレイヤーが対象になっているところをStoregeutilで保存したアクターに差し替え、その他ゲームを一時操作不能にするなどの処理を削除することでできました。
Spellの設定は一回発動したら忘れてほしいのでFire And Forgotを指定、ほかにもhit Effectなどの不要なエフェクトや効果を切って作成しました。これによって毎回ロード時、ないしはマップ移動時などのタイミングでキャストがかかり都度アクターを再設定処理してくれます。StorageUtilで保存しているので一度設定されればそれで十分ではあるのですが、アクターを変えたい時用ですかね。
気づいたこと:Papyrusでインスタンスの生成はできない。CKが要る。
MOD作成のTIPS的な話。単純な修正内容ではあったもののPapyrusの仕様を良く知らないがために「C言語の構造体みたいなscript作ってそこにアクター保存してグローバルでアクセスすればいけるやろ」と書いて動かしてみても「noneで関数はコールできんぞ
」ってPapyrusログでエラーが出てダメだったり、あれこれ試してはうまくいかずで結局一日かかってしまいました。
Papyrusでintやfloatなどの基本データ型以外のオブジェクトの実態、つまりインスタンスの生成みたいなことをしたい場合、単に変数宣言したりスクリプト型のプロパティをコードで書くだけじゃだめみたいなんですよね。staticクラスのようなインスタンスを必要としない関数のみのスクリプトであればいけるみたいですが。
CK上で対象のオブジェクト作ってスクリプトに定義したプロパティと紐づけてやることでインスタンスをスクリプト間でやり取りできたりする、みたいな感じのようです。CKで作った何らかのオブジェクトがインスタンスで、それを操作する関数群がscriptというような感じ。
というか、以前FormListでハマってたのと同じ。あれもCKにFormList作ってなかったからだった。だからStorageUtil使えっていったでしょ学習しろォジブン?
というか、SKSEプラグインってすげーですね。モダンな言語のようなことができないPapyrusでそれをできるようにしてしまうものが作れるわけですからね…。javascriptで言うところのWebAssembly的なものなんでしょうかね。いやはや…
Papyrusの仕様的な理解にはこちらの記事が大変参考になりました
まだ終わらない。
さて、修正は以上ですが…しかしこれだけじゃ足りない。足りないのだよ…私はまだ見たいものがあるんだ!
というわけで「こんな機能」を追加して行こうと思います。
こんな機能① 瞬間移動せずにちゃんと歩いてきてほしい
スパンキングの起動タイミングですが、現在はたたく側のNPCが何かを話そうとしたときになっています。そのため話し相手のプレイヤーからNPCに瞬間移動してしまっています。
これはTopicInfoというスクリプトでケツをたたく処理が起動しているためです。Topicが発生したら瞬時にケツをたたきに行く処理がそのまま走るので、まるで動画のように瞬間移動してケツをたたいてるように感じます。
これをもっと自然な流れにするため、この処理のトリガー部分を修正、より自然な形でケツをたたいてもらいたい。
NPCのもとまで何食わぬ顔で歩いてきたかと思うと、突然「いいケツだな」とか言ってケツをたたいてほしい(切実
そしてその事の成り行きを遠巻きに眺めていたい(切望
こんな機能② 複数NPC同時起動
今のところは常に一人固定かつ同時にも動くことはないので、これを複数人に対応させたい。
酒場に顔を出したらフォロワーがあっちこっちで酔っ払いにケツをたたかれている光景がみたい
こんな機能③カウンター機能
ケツをたたこうとスケベ心で近づいてくる野郎に確率でカウンターで鉄拳制裁を加えるみたいなのもやりたい。とはいえ、これはめっちゃハードルが上がるのでほぼほぼ夢みたいなものなんですけどね。まずモーションを作る必要がある。ここがかなり今の自分にはきっつい。
でも作りたい。時間全然ないけど。
みてぇんだ。ワイは。
というわけで他MODとも平行していじって遊ぼうなのでした。