演員速度框架(更新)
一個用於修改演員速度的Papyrus腳本擴展器。
模組介紹 作者原文
一個用於修改演員速度的Papyrus腳本擴展器。
原址:
4月20號更新:
版本 1.53
修復動力裝甲地面抽搐,不同幀數下速度更穩定
現已上傳AE版(適用於週年慶)和OG版(適用於163版本)文件,根據自己的遊戲版本二選一安裝
----
前置需求:F4SE 插件地址庫(
Actor Velocity 框架
-Papyrus 函數——
它添加了這些 Papyrus 函數。
GetActorForward(Actor a) 返回actor的正向矢量,正投影到表面。
GetActorUp(Actor a) 返回演員的向上向量,通常是 (0, 0, 1)
GetActorEye(Actor a) 返回演員的眼睛矢量,也就是演員瞄準的方向。
GetActorAngle(Actor a) 返回演員的角度(以弧度爲單位)。[0] 用於俯仰,[2] 用於偏航。
GetActorVelocity(Actor a) 返回演員當前的速度。
如果演員在地面上,則
IsOnGround(Actor a) 返回爲真。
SetPositionQuick(Actor a, float x, float y, float z)在沒有加載畫面的情況下翻譯演員。
SetAngleQuick(演員a,float x,float y,float z)會將演員的視角旋轉到該角度。
SetVelocity(Actor a, float x, float y, float z, float duration, float x² = 0.0, float y² = 0.0, float z² = 0.0, bool gravity = false)
是框架的關鍵函數,將速度應用到演員身上,同時不讓他陷入布娃娃化或癱瘓。如果啓用重力,
AVF每幀會施加-9.81 * fInAirFallingCharGravityMult的重力。
第一個向量(x, y, z)是初始速度,第二個向量(x2, y2, z2)是終端速度。
它將在指定持續時間內每幀應用,速度將進行線性插值。
AddVelocity(Actor a, float x, float y, float z)會直接爲actor增加速度,持續一幀。
- 顯式鏈接——
SetVelocity 和 AddVelocity 可以通過顯式鏈接直接通過其他 F4SE 的 dll 訪問。
你可以用下面的代碼作爲示例。
Actor* a;
HMODULE hAVF = GetModuleHandleA("ActorVelocityFramework.dll");
typedef void (*SetVelocity)(std::monostate, Actor*, float, float, float, float, float, float, float);
SetVelocity fnSetVelocity = (SetVelocity)GetProcAddress(hAVF, "SetVelocity");
fnSetVelocity(std::monostate{}, a, dir.x * 2000.0f, dir.y * 2000.0f, dir.z * 2000.0f, 0.75f, 0.0f, 0.0f, 0.0f);
-用例示例-
鳴謝
F4SE 團隊提供《輻射4》腳本擴展器(F4SE)Fudgyduff
提供地址庫和 CommonLibF4
安裝與使用 安裝:按包內說明操作
- 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
- 這類遊戲沒有通用的模組管理器:有的模組直接替換遊戲檔案、有的放進遊戲專屬的 Mods 資料夾、有的要先裝遊戲對應的社群載入器或工具,以包內說明為準。
- 嚴格按說明放置檔案;標註「前置依賴」的模組需要把依賴一併裝好。
- 啟動遊戲確認載入成功;部分遊戲需要在設定或模組選單裡手動啟用。
不同遊戲、不同模組的安裝位置差異很大,包內說明是最可靠的依據。