shadowfallstudios / als-community Goto Github PK
View Code? Open in Web Editor NEWReplicated and optimized community version of Advanced Locomotion System V4 for Unreal Engine 5.4 with additional features & bug fixes
License: Other
Replicated and optimized community version of Advanced Locomotion System V4 for Unreal Engine 5.4 with additional features & bug fixes
License: Other
I can't integrate the smoothsync plugin. on the gif you can see how the rotation is knocked down, while running, the character looks only in one direction, well, and the legs behave incomprehensibly
any ideas? I often meet people who cannot integrate ALSRep with this plugin, it would be good if it were possible to somehow replicate these rotation parameters
Playing as Client
or Server
causes the engine to crash.
It only works as Offline
.
hi there , first of all i really apreciate the time and effort you guys put into this . im using unreal 4.25.3 and when i follow the instalation instructions and start my project it fails to rebuild the project and asks me to do it manually through the source . anyone out there with the same engine version can help me to install the plugin please .
I have my Unreal Editor (4.25) configured for a single Client (see screenshot). When I switch weapons, the server is able to pickup the changed overlay state (which then applies changes to the animation). However, the client that actually owns the character does not received the replicated variable change. I tried this with multiple clients and everyone but the owner does receive the update.
As you can see in my blueprint, when I filter on the Server version of the character. Both my custom function to get what the overlay state should be, and the replicated variable in ALS Character are set. I have both of them in "watch" mode so you can see their values. Yet, when I switch my character filter to Client and perform the same action of switching weapons, the variable and my function fail to change away from default.
Hopefully the video will provide a clearer understanding.
Video demonstration
ALSBaseCharacter.cpp Line 428
I believe the problem is in the SetOverlayState method in AALSBaseCharacter that performs a LocalRole check before calling the server set overlay state. (I'm not 100% certain though if this is the culprit).
void AALSBaseCharacter::SetOverlayState(const EALSOverlayState NewState)
{
if (OverlayState != NewState)
{
const EALSOverlayState Prev = OverlayState;
OverlayState = NewState;
OnOverlayStateChanged(Prev);
if (GetLocalRole() == ROLE_AutonomousProxy)
{
Server_SetOverlayState(NewState);
}
}
}
Mantling is not an ability that we want each character to have. So that, it should be a plug-in, plug-out type actor component instead.
When the animations are re-targeted to a new character even one using a duplicate of the original skeleton the IK Hands break and result in the character holding their hands behind they're back and on the wrong side. This happens with a brand new build of the engine using plugin compiled from source code in a brand new project with all three meshes/skeletons tested.
Forgot to mention that I was running this on 4.26 preview. So If 4.25 is fine, please close this issue.
I was just start two clients.
Let client 1 look toward client 2.
When client 2 is mantling, I can see from the view port of client 1 that the character of client 2 is jittering.
I've tested on the replication branch only but it seems like changing the rotation mode won't change as expected.
I was trying to use the rotation mode Velocity so the Character rotates to the movement direction.
Building a mobile game, on mac character rotation is fine but on dedicated server I get result in below video.
https://www.youtube.com/watch?v=wgx2D7NG7C0&feature=youtu.be
At 0:16 is good example.
Only thing i change is character mesh.
Changed mesh of Character,
When I change character with a custom character I see exactly this issue: https://www.youtube.com/watch?v=I0Vdvh0B250
And noticed bones doesn't look right. https://pasteboard.co/JofMWny.png
https://prnt.sc/ugir4x
the sprint on xbox controller is on the left stick
it´s just a bug in the controls you can run fast if you hold the left stick
and the cam perspective you change it if you hold the right stick so it´s is second bug
i tested that with my old xbox 360 controller works without problems
I'm not sure if this applies to all third party libraries, but I'm using the AdvancedJigsawInventory
library in particular.
To replicate:
TPMP_Character
to ALS Character BP
Show Only Modified Properties
and then clicking the little left arrow for each of the ALS related componentsMesh
component to ALS_AnimBP_C
During construction time, we can see that the StaticMesh
, SkeletalMesh
, and RootObject
references are set:
But between then and BeginPlay
, where UpdateHeldObject
occurs (which is implemented in blueprints as calling ClearHeldObject
), the meshes are somehow unset.
Note that the unique ID is the same:
Resulting in a null pointer exception.
UniqueID
property, the source has not been modified in any wayALSCharacter
C++ class directly (but that has other issues since many of the required properties aren't set, it won't crash on start at least)Offline
, Client
, and Listen Server
) modesCurrently, debug visualizer is implemented inside BP, and it may cause performance issues while debugging multiple characters at once. Those should be implemented via C++.
The boundingbox looks like the boundingbox of an standing character.
You can see this on the screenshot-link:
Issue-Screenshot
The solution for this:
Function BeginPlay()
After:
MainAnimInstance->Stance = DesiredStance;
add
Stance = DesiredStance;
Fixed screenshot-link:
Fixed-Screenshot
Leg foot locking lags behind actor rotation on remote clients.
To visualize the problem:
Hello. Please tell me how can I add any objects or collisions to the exceptions for the plugin trace? To do this, you need to climb into CPP ?? Or can it be done from blueprints?
Packaging fails when inclusive nativization, or exclusive nativization with the ALS assets is enabled. It appears to be due to being unable to access private functions in the blueprint child classes. Image of packaging output below :-
Source code for mantle probably have a small typo somewhere, causing mantling to do not work in some random scenarios.
Please see this video :-
The issue is also cropping up when ragdolling, changing overlay and during crouch dodging.
This is a base ALS4_CPP project based on the latest commit, no additional changes.
There is a huge list of plugins in the project.
Are they necessary?
Did you manage to build/package the project?
Why does it require Lumin SDK?
I am having an issue with this and the project senfkorn92 did with turning it back into BP.
Play Standalone game, 2+ players, and play as client.
When you sprint and immediately try to jump, sometime it will not jump, for some reason the "Event On Jumped" call will only be called from client and not server when this happens.
Current overlay system doesn't support adding new overlays very well, it's needed to do changes on lots of places in the project. A more modular approach can make adding new overlays super easy for end-users.
hi
first, thank you very much for this great plugin, it is great!!
i encounter a problem only in a packaged project. the camera is blocked somehow(i think its has something to do with collision, but i am not sure) when you climb (in the last phase of the climbing).
thanks in advance
leo
I can not understand why this happens in standalone game (if you run game and server is using .bat all also). This is probably related to server corrections, but how fix is not clear. You faced with this? Used are the fresh your plugin from the master branch and default settings. https://youtu.be/pgkSnk8-xX8
I'm not able to find the steps to properly reproduce this but it happens many times during my plays. Weird thing it only happens to the right leg only. What happens is that the leg will point to the direction opposite of the body's forward vector.
Can be seen at 0:05 on https://www.youtube.com/watch?v=t_1LZnf3jOI
Can be seen in https://www.youtube.com/watch?v=t_1LZnf3jOI on the parts where character is running.
Same problem also persists more frequently if we play with higher fps values than 120.
I noticed this happens on a fresh project, with the ALS character (with latest github release). If you switch between overlays, it will cause the leg to "dance". Moving the character will stop it but it continually and randomly reoccurs and can happen without state switching as well.
I notice it doesn't happen with the native BP version.
To replicate this issue:
Seems to be related to changing overlay states, like it's continually switching something something?
Activating the option "Enable Multiplayer World Origin Rebasing" in Project Settings> Network, and resetting the player's Origin causes Climbing and Mounting functions on the character to fail.
Or if I use use: Enable World Origin Rebasing in the World Settings for the scene it cause a camera error as soon as you climb anything. The camera looks straight up and stays that way.
This is in the Master Branch that I tested.
Hello dear developer! I have installed the plugin. And I tried to run the ALS_DemoLevel map on a dedicated server. With its standard settings. Without changing or correcting anything. Just run on a dedicated server. But at startup, any keys except the console stop working. The character does not run, does not jump. The camera does not work. How to fix it? But if you run a simple single-player game, everything works great!
That's not an issue, please check Breakfall settings on character BP.
Closed.
Even when you disable "Breakfall", it doesn't do anything and the character breaks into the ground. Another difference with original ALS is that when in the original you enable breakfall settings, the character rolls to the ground but in this plugin, the character completely breaks (ragdoll will activate).
Thanks for your great work
p.s: Sorry, I didn't know how to open the previous issue (#63).
Can be seen at last seconds of https://www.youtube.com/watch?v=t_1LZnf3jOI
The project is developed with an engine build from Github source, there is a probability of official release can't parse blueprints. Investigate.
When retargeting to other characters you may need to adjust how far DynamicTransitionCheck will check. Right now its hard coded into ALSCharacterAnimInstance.cpp.
Adding this to the .h
UPROPERTY(VisibleDefaultsOnly, BlueprintReadWrite, Category = "Configuration|DynamicCheck")
float DistanceForDynamicCheck = 12.0f;
and changing the check value in cpp to this
if (Distance > DistanceForDynamicCheck)
seems to work. It can then be accessed in blueprint and changed depending on the character.
Root Motion seems to replicate over the network, and causes issues with client position information - Rolling is the only example of a currently-implemented root motion animation at this time with ALS. This causes some hitching with positions on remote clients, particularly when you roll and just come out of the crouching state: You'll notice the remote clients see this "popping" while the local player looks fine. On blueprint projects, this is resolved by using the animbp to check that the owner's controller is both valid and local, then setting 'ignore root motion' if not valid or if remote, OR setting 'root motion from montage only' if both valid AND local - this way, root motion transforms are kept on the local player and replicated across the network, without remote client root motion transforms trying to override remotely, causing the popping effect.
The above fix is tested and working on blueprint versions, however causes problems with this version, which seems to behave as if losing root motion on local as well, though a print string following the events reports otherwise.
Steps to visualize root motion popping glitch:
Fix that should work, but doesn't:
-Setting 'ignore root motion' on remote clients.
I'm fairly confident it's a null pointer exception but how would I make the engine give me more information? I have the ALSCharacter
class subclassed and that subclass is what I'm attempting to use in the scene.
LoginId:57376eded24b8a9c3dc3a7b265402498
EpicAccountId:17a94c9dec1e4984853491fb1d7a65c9
Caught signal
AALSCharacter::ClearHeldObject() Address = 0x186fe1a90 [/Users/jesus/Workspace/Calaverite/Plugins/ALSV4_CPP/Source/ALSV4_CPP/Private/Character/ALSCharacter.cpp, line 30] [in UE4Editor-ALSV4_CPP-7211.dylib]
UFunction::Invoke(UObject*, FFrame&, void*) Address = 0x10500c56c (filename not found) [in UE4Editor-CoreUObject.dylib]
UObject::CallFunction(FFrame&, void*, UFunction*) Address = 0x10524eb98 (filename not found) [in UE4Editor-CoreUObject.dylib]
ProcessLocalScriptFunction(UObject*, FFrame&, void*) Address = 0x1052504df (filename not found) [in UE4Editor-CoreUObject.dylib]
void ProcessScriptFunction<void (*)(UObject*, FFrame&, void*)>(UObject*, UFunction*, FFrame&, void*, void (*)(UObject*, FFrame&, void*)) Address = 0x10524fe54 (filename not found) [in UE4Editor-CoreUObject.dylib]
ProcessLocalFunction(UObject*, UFunction*, FFrame&, void*) Address = 0x1052511c8 (filename not found) [in UE4Editor-CoreUObject.dylib]
ProcessLocalScriptFunction(UObject*, FFrame&, void*) Address = 0x1052504df (filename not found) [in UE4Editor-CoreUObject.dylib]
void ProcessScriptFunction<void (*)(UObject*, FFrame&, void*)>(UObject*, UFunction*, FFrame&, void*, void (*)(UObject*, FFrame&, void*)) Address = 0x10524fe54 (filename not found) [in UE4Editor-CoreUObject.dylib]
ProcessLocalFunction(UObject*, UFunction*, FFrame&, void*) Address = 0x1052511c8 (filename not found) [in UE4Editor-CoreUObject.dylib]
ProcessLocalScriptFunction(UObject*, FFrame&, void*) Address = 0x1052504df (filename not found) [in UE4Editor-CoreUObject.dylib]
UFunction::Invoke(UObject*, FFrame&, void*) Address = 0x10500c56c (filename not found) [in UE4Editor-CoreUObject.dylib]
UObject::ProcessEvent(UFunction*, void*) Address = 0x1052570f7 (filename not found) [in UE4Editor-CoreUObject.dylib]
AActor::ProcessEvent(UFunction*, void*) Address = 0x10886aa09 (filename not found) [in UE4Editor-Engine.dylib]
AActor::DispatchBeginPlay(bool) Address = 0x108884c11 (filename not found) [in UE4Editor-Engine.dylib]
AWorldSettings::NotifyBeginPlay() Address = 0x109eb1fd9 (filename not found) [in UE4Editor-Engine.dylib]
AGameStateBase::HandleBeginPlay() Address = 0x109074001 (filename not found) [in UE4Editor-Engine.dylib]
UWorld::BeginPlay() Address = 0x109e72ece (filename not found) [in UE4Editor-Engine.dylib]
UGameInstance::StartPlayInEditorGameInstance(ULocalPlayer*, FGameInstancePIEParameters const&) Address = 0x10904ab83 (filename not found) [in UE4Editor-Engine.dylib]
UEditorEngine::CreateInnerProcessPIEGameInstance(FRequestPlaySessionParams&, FGameInstancePIEParameters const&, int) Address = 0x10f892c1c (filename not found) [in UE4Editor-UnrealEd.dylib]
UEditorEngine::OnLoginPIEComplete_Deferred(int, bool, FString, FPieLoginStruct) Address = 0x10f8887ca (filename not found) [in UE4Editor-UnrealEd.dylib]
UEditorEngine::CreateNewPlayInEditorInstance(FRequestPlaySessionParams&, bool, EPlayNetMode) Address = 0x10f88a8ea (filename not found) [in UE4Editor-UnrealEd.dylib]
UEditorEngine::StartPlayInEditorSession(FRequestPlaySessionParams&) Address = 0x10f88ef19 (filename not found) [in UE4Editor-UnrealEd.dylib]
UEditorEngine::StartQueuedPlaySessionRequestImpl() Address = 0x10f885520 (filename not found) [in UE4Editor-UnrealEd.dylib]
UEditorEngine::StartQueuedPlaySessionRequest() Address = 0x10f884eeb (filename not found) [in UE4Editor-UnrealEd.dylib]
UEditorEngine::Tick(float, bool) Address = 0x10f16e821 (filename not found) [in UE4Editor-UnrealEd.dylib]
UUnrealEdEngine::Tick(float, bool) Address = 0x10fcce468 (filename not found) [in UE4Editor-UnrealEd.dylib]
FEngineLoop::Tick() Address = 0x10387f847 (filename not found) [in UE4Editor]
GuardedMain(char16_t const*) Address = 0x10388a6ff (filename not found) [in UE4Editor]
-[UE4AppDelegate runGameThread:] Address = 0x1038a6fcf (filename not found) [in UE4Editor]
-[FCocoaGameThread main] Address = 0x103def331 (filename not found) [in UE4Editor-Core.dylib]
Unknown() Address = 0x7fff349db882 (filename not found) [in Foundation]
_pthread_start Address = 0x7fff6c303109 (filename not found) [in libsystem_pthread.dylib]
thread_start Address = 0x7fff6c2feb8b (filename not found) [in libsystem_pthread.dylib]
When falling from a high box, it rolls after hitting the ground. In the original ALS, it doesn't roll.
Custom camera implementation has serious problems with collision tests, which is also present in original ALSV4 asset. It's able to overlap with thin surfaces. Collision test should be improved to prevent those issues.
Left / Right Turn <= 90 deg has foot sliding
https://imgur.com/fcWHoKA
Steps to reproduce:
On one client, turn in place then walk. The character's rotation will snap back to its previous value upon movement. Can be seen around 10 seconds in the above clip quite clearly.
@senfkorn92 Have you encountered this issue or know a temporary fix?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.