☆ Skyrim Platform - A TypeScript SDK for Skyrim [ユーティリティ] ID:54909 Author:SkyMP Team 2024-05-14 20:34 Version:2.9.0
- RATE: ★=367 G=2 [DOWNLOAD SITE]
-
TAG: [ユーティリティ] [SKSEプラグイン] [スクリプト] [SkyrimPlatform] [AE対応]
Skyrim Platform - A TypeScript SDK for Skyrim
Skyrimの動作をJavaScriptで制御する事が可能になるSKSEプラグイン。
必要:
SKSE64
Address Library for SKSE Plugins
下記Modで使用。
Disable Recoil
Rapid Auto Potion
New Automatic Crossbows
Distance Based Combat
Auto unequip ammo SP
Elden Equip
SkyrimのPapyurs実行は1フレーム内で処理できる命令数に制限があるためかPapyursの処理速度はFPS依存となっておりFPSが低いほど処理の遅延が発生しやすくなるという問題がありますが(MCMで60FPS制限を外すと処理が異様に高速化する理由がコレ)、SkyrimPlatformはそのような制限は無くDLLがJavaScriptのコードを読み込んで処理を実行しているため、SkyrimPlatformで作られたModは基本的にPapyursで作られたものよりも処理が圧倒的に高速です。
v2.1.0以前をダウンロードした場合、SKSE/Plugins に SkyrimSoulsRE.dll という SkyrimSouls - Unpaused Game Menus と同じ動作をするSKSEプラグインも同封されており、
入れたままだとメニューでゲームの一時停止がしないようになっているため嫌な人は外す事。
→v2.2.0で削除
CTD等の不具合報告は以下のリンクの「New Issue」で報告できます。(gitアカウントが必要)
報告時はSkyrimPlatformが原因である事を明確にするため再現方法を詳細に書き(SkyrimPlatformを利用したModのどれを使った状態で発生するのか)、クラッシュログをpastebin等でアップロードして報告すると開発者側も対応しやすいと思います。
https://github.com/skyrim-multiplayer…
=== 以下はMod開発者向け ===
このSKSEプラグインが読み込むためのJavaScriptを
TypeScriptというスクリプト言語からnpm(Node Package Manager)経由でコンパイルして生成するための開発ツールも同梱されている。
このSKSEプラグインで使用できる処理の特徴は以下の通り。
・コンパイルして生成したJSファイルの内容をゲーム中に変更する事でリアルタイムに反映される(Modページの動画参照、動画ではtsファイル保存時にコンパイル作業を行っているため、ただtsファイルを保存するだけだと反映されないため注意)
・アニメーション発生時のSendAnimationEventをキャッチして処理が行える。この際にアクターへのアニメーション再生命令を書き換えてアニメーションの再生を阻止する事も可能。(例: Disable Recoil はこの処理で弾かれモーションを無くしてる。Modページの Miscellaneous files に TypeScript のソースも公開しているため参考にしたい人は確認)
・1フレーム毎にコードの実行処理を行ったり、魔法エフェクト発生やアイテム装備等をトリガーにコードの実行が可能(https://github.com/skyrim-multiplayer… )
・SKSEプラグインがコードを読み込んで処理を行うためPapyrusの処理よりも高速でスクリプト処理がされる
----
(Postより)PapyrusとSkyrim Platform(SP)の両方でほぼ同じアルゴリズム(未最適)を使用して、
552個のアイテムをプレーヤーからチェストに転送が完了するまでの時間
Papyurs:130.599014秒
SP:0秒
----
・アクターやオブジェクトの情報取得や処理はPapyrusスクリプトと同じ関数で処理可能。(https://github.com/skyrim-multiplayer… にて getActorValuePercentage 等を使用しているサンプルを確認可能)
(注1)V2.3.0までは配列を返す関数は未サポートでコンパイルして実行しても、ゲーム側のコンソールで"Functions with Array return type are not supported"と表示されます。
V2.4.0にて配列を返す関数がサポートされるようになりました。
(注2)一部の関数はPapyrusで実行した時と異なる挙動をするものがあったり、CTDが発生する事があります。(GetPlayerTeammateがTrueのアクターに対してPapyrusでAddItemやRemoveItem等を実行すると手持ちの装備から優れたものを自動的に装備するが、SPの場合は自動で装備を行わない、PlayIdle実行時にCTD等)
・Skyrim Platform側でSendModEventを発生させて、Papyrus側でキャッチして処理を実行するという事も可能
サンプルコードとコンパイルに必要な手順に関してはPlatform/plugin-example/README.mdを参照。
(コマンドプロンプトの知識が必要。"npm i"はPlatform/plugin-example/をカレントディレクトリにして実行する事。)
ただし、サンプルのコンパイルについて不要と思われるコードが混ざっており手順通りにやっても筆者の環境ではコンパイルが失敗したため以下の処置が必要。
・Platform/plugin-example/index.tsにて以下の行をコメントアウト
//import * as tests from './src/tests';
//tests.main();
サンプルのコンパイルに成功すれば Platform/plugins/にplugin-example.js が生成されます。
必須
npm(Node Package Manager)
推奨
Papyrus-2-Typescript
PapyursとSkyrim Platform間で変数の渡し合いをする場合はOptional filesのPapyrusUtilかJContainersが必須となります。(PapyrusUtilやJContainersで保存した変数は、Skyrim Platform側でもアクセス可能)
・ドキュメント
https://github.com/skyrim-multiplayer…
・設定画面追加
Skyrim Platform Configuration Menu (SPCM)
=== Mod開発者向けは以上 ===Skyrim Special Edition Nexus, SkyMP Team. 14 May 2024. Skyrim Platform - A TypeScript SDK for Skyrim. 15 Sep 2021 <https://www.nexusmods.com/skyrimspecialedition/mods/54909>.スポンサーリンク
スポンサーリンク
上記説明は古い又は異なる場合があります。導入の際はDescriptionを確認の上、自己責任でお願いします。
説明はどなたでも編集する事が可能です、古い又は異なる場合は編集にご協力をお願いします。
To users except in Japan - コメントコメントだけでも投稿できます。気に入ったMODはNEXUSでもENDORSEしましょう。
[Spoiler]テキスト[/Spoiler]とする事で隠しテキスト、#や>>後、半角数字でアンカーを使用可。 -
-▼ Version : 2.9.0#35名無しMO2でも警告出るし入れなくても良さそうと言うか
入れても外しても大した違いもないなら外して良くねって感じ。 ID:JiMmU3YW Day:117 Good:0 Bad:0- Good
- Bad
- 54909
▼ Version : 2.7.1#34名無し鉱石とダンジョンのトラップがリスポーンしないと思ってたらコレが原因だった。最新版はどうか知らないけど一応報告を。 ID:ViMWZhYz Day:360 Good:0 Bad:0- Good
- Bad
- 54909
▼ Version : 2.7.0#33名無しGood!SE、AE共々更新に感謝します。 ID:EzZjBjOD Day:411 Good:0 Bad:0- Good
- Bad
- 54909
▼ Version : 2.6.0#32名無し#30ですが、自己解決しました。
原因としてはsteamの設定>コントローラ>一般のコントローラー内の各設定がオンになっていたことが原因でした。オフにしたところ所持しているDS4コンは正常に動き、その他のコントローラーでは動作しませんでした。(Xboxコンは未所持なので未確認)
同じような方がいるかわかりませんが、解決の一助になれば・・・。 ID:gzYzE2ZG Day:1281 Good:0 Bad:0- Good
- Bad
- 54909
#31名無しこれはあまり使うべきじゃない ID:U5MTQ3OT Day:129 Good:0 Bad:0- Good
- Bad
- 54909
#30名無しMO2,SKSE共に最新状態で導入しても、起動後にコントローラー入力を受け付けなくなるのですが、解決方法が見つからない・・・。 ID:gzYzE2ZG Day:1281 Good:0 Bad:0- Good
- Bad
- 54909
#29名無し#28名無し#25です。検証してたところ、自環境ではロードオーダー順をAttackBehaviorTweaksをUltimateCombatより上にしたところ解決致しました。此方のでも同じような症状があったのでコメントしてしまいましたが、原因は別にあるようでした。お騒がせして申し訳ございません。 ID:I3MzU5NT Day:52 Good:0 Bad:0- Good
- Bad
- 54909
#27名無し#26様
コメントありがとうございます。
そちらのMODは導入していないのですが、Distance Based Combatを推奨しているpatreon版のAttack Behavior Revampを導入しているので、もしかしたらそこで競合など起きているかもしれません。まだ検証しきれていないので断言はできないのですが…。 ID:I3MzU5NT Day:52 Good:0 Bad:0- Good
- Bad
- 54909
#26名無し#25名無し敵、フォロワー共に戦闘中に防御モーションから動かなくなるようになってしまった…。 ID:I3MzU5NT Day:52 Good:0 Bad:0- Good
- Bad
- 54909
#24名無し2.4から2.6にあげたが普通に安定してるわ
TrueHUD skysa2.8環境だが問題なし ID:M3NGViZm Day:8 Good:0 Bad:0- Good
- Bad
- 54909
#23名無し2.5不都合多すぎ。オレの環境では敵が数名いる時、ランダムで敵が硬直して動かなくなる奴が現れる。攻撃したら動きだすけどほっといたらそのまま動かん。
混戦で敵がフリーズしてたら、これを疑った方がいい。
ちなみにskysa、project impact環境の話。
#22さんと一緒で2.4を勧める。今のとこ安定してる。 ID:ViMWZhYz Day:209 Good:1 Bad:0- Good
- Bad
- 54909
#22名無し最新版はTrueHUDとの組み合わせでやたらとCTDを起こすのが致命的すぎる
修正されるまでは比較的安定してる2.4を使うのが良さそうだな ID:VlOWMwYj Day:0 Good:1 Bad:0- Good
- Bad
- 54909
#21名無し自分も2.5のまま使ってますがキーボード受付不可になったことはないですねー ID:UxODU5ZD Day:128 Good:0 Bad:0- Good
- Bad
- 54909
#20名無し2.5でスクリプト弄りして遊んでたがキーボード入力が受付不能になった事無いな。(2.6は一部のSKSEプラグインの関数で確定CTDになるから弄れん) ID:Y3YjQxMz Day:0 Good:0 Bad:0- Good
- Bad
- 54909
#19名無し#18名無しhttps://github.com/skyrim-multiplayer…
相変わらずセーブデータが壊れるねー君達 ID:Q0OTEyZj Day:403 Good:0 Bad:0- Good
- Bad
- 54909
▼ Version : 2.5.0#17名無し間違いなくこれが原因なのだけど
入れた直後からキーボード入力を受け付けなくなり、外すと治った
再現性を試そうと、また入れてしまったが
やはりキーボード入力できなくなり、そのまま治らなくなってしまった ID:llMTU4ND Day:15 Good:0 Bad:0- Good
- Bad
- 54909
#16名無し対応MODの数だけ実行ファイルがバックグラウンドで動くのが自環境と相性が悪くて外してしまったが、使いたいMODが多いだけに悲しい。 ID:QzYTM3OD Day:1626 Good:0 Bad:0- Good
- Bad
- 54909
#1514自己解決しました。単なるAEからのダウングレードの失敗でSKSEのバージョンが合致しなかっただけでした。
お目汚し失礼しました。 ID:UzNDk4YT Day:0 Good:0 Bad:0- Good
- Bad
- 54909
#14名無しUnable to load SkyrimPlatformImpl.dll: Error 127と出てきた人いないかな?
最新のMO2、本体1.5.97、SKSE2.0.20で他のMOD非導入でも出てくるからお手上げ状態なんだ。POSTでもあまり報告上がってないみたいだし ID:kxN2M4NT Day:107 Good:0 Bad:0- Good
- Bad
- 54909
#13名無し既存のセーブデータで2.5.0にアプデするとセーブデータが破損する(?)らしいのでしばらく2.4.0で様子見した方がよさそう
ニューゲームでは問題ないらしい ID:cwZDM4YT Day:590 Good:2 Bad:0- Good
- Bad
- 54909
▼ Version : 2.4.0#12名無しゲームパッド使用時ワールドマップでカーソル消えるのは、2.4.0で修正されたみたい ID:RjNmExMT Day:99 Good:0 Bad:0- Good
- Bad
- 54909
#11名無し▼ Version : 2.2.0#10名無しこれ入れるとなぜかマップのカーソールが非表示になりました。 ID:U0ZDBkYz Day:1 Good:0 Bad:0- Good
- Bad
- 54909
#9名無し起動後ctdで諦めてたけどmo2のアプデしたらctdなくなったわ…
mo2のアプデは盲点だった... ID:M2NGZkYz Day:213 Good:1 Bad:0- Good
- Bad
- 54909
▼ Version : 2.1.0#8名無し自分の環境だとpowerofthree's Tweaksと競合してCTDしてた。
実験中の設定オフにしたら動いてくれたよ。 ID:A3OTliND Day:490 Good:0 Bad:0- Good
- Bad
- 54909
#7名無しSKSE古いのかと思って2.0.20にしてみたけど普通に即CTDするな…。
情報も少ないしdister氏のDMCOは絶対使ってみたい…。 ID:QxZjMwNW Day:3 Good:0 Bad:0- Good
- Bad
- 54909
▼ Version : 2.0.0#6名無しpostにも同じようなこと書いている人何人かいるけど
MO2だと?起動後即CTDしちゃう。
Root Builderっていうツール使うとできると書いている人いたから
使ってみたけど、使い方が間違っているかもしれないけど
そのツールはツールでBuildってするとエラーで落ちる・・。
弾かれモーションなくすMOD入れたかった・・。 ID:RlM2JkNz Day:287 Good:0 Bad:0- Good
- Bad
- 54909
#5名無し分かる範囲で説明を追加しました。 ID:FmMTM5Zj Day:0 Good:3 Bad:0- Good
- Bad
- 54909
#4名無し#3
SkyrimSouls - Unpaused Game Menus が同封してたのか…POSTの「23 October 2021, 1:21PM」を見るとbinファイルもいらないようです ID:RlZGFlZj Day:421 Good:0 Bad:0- Good
- Bad
- 54909
#3名無しなんか関係ない不要なファイルも間違ってアップしてしまったみたいね
SkyrimSoulsRE.dllが含まれているのもそのせい ID:RiM2E1MD Day:344 Good:0 Bad:0- Good
- Bad
- 54909
#2名無し各種メニュー開いてる時もゲームが止まらなくなる機能が含まれています、
Iniの[UNPAUSED_MENUS]から個別で変更可能です(デフォルトではすべて有効) ID:RlZGFlZj Day:418 Good:0 Bad:0- Good
- Bad
- 54909
#1名無しGood!Papyrus-2-Typescriptの
オプションにあるJContainersのscriptを変換した奴を使うために導入
Address Libraryをまるまる上書きする感じになるけど問題なさそう
あとiniでメニュー開いてる間も時間が停止しないなどの設定もできる
初期設定では全てtrueになってる ID:NlODkxNz Day:24 Good:0 Bad:0- Good
- Bad
- 54909
- 機械翻訳 説明引用 [原文]
「タイプスクリプトとクロム埋め込みフレームワークを使用してSkyrim SE用のプラグインを作成します。」
スポンサーリンク
スポンサーリンク