Coder Social home page Coder Social logo

dyanikoglu / als-community Goto Github PK

View Code? Open in Web Editor NEW
2.1K 97.0 564.0 158.06 MB

Replicated and optimized community version of Advanced Locomotion System V4 for Unreal Engine 5.3 with additional features & bug fixes

License: Other

C# 0.21% C++ 93.35% C 6.44%
unreal-engine-4 unreal-engine locomotion animation game-development cpp blueprint unreal-engine-plugin optimization alsv4-cpp

als-community's Introduction

Howdy 🤠

Hi, I'm Doğa. I've studied computer science at TOBB University of Economics & Technology, and I've been working with Unreal Engine since 2015..

For my Unreal Engine related work, you can access my Unreal Engine fork with various bug fix & improvement branches including custom PhysX 4.1 / Nvidia Blast implementation. Please refer to Unreal Engine Pull Requests for my PRs on Unreal Engine. You can also find bunch of other toy projects on the pinned repositories section below.

Lastly, you can follow Project Borealis to stay updated about the Half-Life 2: Episode 3 project I've contributed for a while. Also check out my work on an UnrealGameSync alternative PBSync, designed for Git LFS and actively used by the development team.

als-community's People

Contributors

achimturan avatar adrian-j-programmer avatar ahgs-jens avatar ameaninglessname avatar canishelix avatar davchezt avatar denyhax avatar drakynfly avatar dyanikoglu avatar fabriciomsantos avatar muchcharles avatar murataka avatar naios avatar nobandegani avatar regueiro avatar robotichuman avatar romanmaksy avatar seb-exiin avatar senfkorn92 avatar slashin8r avatar tondorian avatar yesitsbenji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

als-community's Issues

Lost control of the pawn on the dedicated server.

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!

IK Hands break when re-targeting animations

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.

unknown

Issue when mantling

Please see this video :-

https://youtu.be/4rulI8z0wtA

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.

Leg Tapping Issue On Overlay Switch

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:

  • Open ALS_DemoLevel in ALSV4_CPP Content, and play in editor.
  • Select Rifle Overlay, right click to get aim stance, then switch to the injured overlay.

Seems to be related to changing overlay states, like it's continually switching something something?

Shifting Origin Possible Issues

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.

Better Readme For The Repository

  • Add a gif for performance comparison, instead of youtube link
  • Detailed information about the implementation
  • Information about replication support state

Jumping after begin sprinting

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.

https://youtu.be/wQokXs-gvtg

BP Change Mesh problem

Hi, I want change Skeletal Mesh By Set Skeletal Mesh And Set Master pose Component.
But when Start project , after change skeletal mesh 1~2 seconds, Character was Frezze,But I can control character move, just action freeze
捕获11
freeze Character action
捕获111

Project Plugins

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?

C++ Implementation of Debug Visualiser

Currently, debug visualizer is implemented inside BP, and it may cause performance issues while debugging multiple characters at once. Those should be implemented via C++.

How do I make exceptions?

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?

Problem in Standalone

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

Issue with Root Motion Montage Replication

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:

  1. Start a networked game, two players as clients.
  2. Roll, while keeping an eye on a different client [so if you roll on client 0, watch client 1 to see the replicated result]
  3. Observe popping.

Fix that should work, but doesn't:
-Setting 'ignore root motion' on remote clients.

bug in controls window

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

Modular Overlay System

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.

DynamicTransitionCheck Upgrade?

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.

Custom Camera Improvements

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.

Replication Issue with Turn-In-Place

Leg foot locking lags behind actor rotation on remote clients.

To visualize the problem:

  1. Start a multiplayer game, two players, play as client.
  2. In either client, standing still, hold aim and watch the opposing client's view of your character.
  3. While aiming, spin around in circles with the mouse.
  4. You'll see the feet/legs foot locking is falling behind actor rotation, causing painful-looking twisting, while in your own window your character looks fine.

Falling to the ground not correct

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).

smoothsync plugin

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

d909ad906e5d1eda5e0a710f3500847e

Replication Support & RPC Optimization

  • Add support for mantling
  • Add support for sprinting
  • Add support for ragdoll state
  • Fix rotation issues
  • Rework player controller for proper replication support

Blueprint callable function "Server Set Overlay State" doesn't replicate to owning client.

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.

Editor Settings
Editor Settings

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);
		}
	}
}

Rotation Mode

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.

`Caught Signal` coming from `AALSCharacter::ClearHeldObject()`

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]

Ragdoll issue

I have disabled ragdoll, and get this wired issue. Only on walls like these.

Screenshot 2020-09-02 at 14 01 58

Untitled1

When subclassing `ALS Character BP` with a class from a third party library, `StaticMesh` becomes null

I'm not sure if this applies to all third party libraries, but I'm using the AdvancedJigsawInventory library in particular.

To replicate:

  • Reparent the TPMP_Character to ALS Character BP
  • Restore all the defaults by clicking Show Only Modified Properties and then clicking the little left arrow for each of the ALS related components
    image
    image
  • Assign the animation blueprint reference on the Mesh component to ALS_AnimBP_C

During construction time, we can see that the StaticMesh, SkeletalMesh, and RootObject references are set:

image

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:

image

Resulting in a null pointer exception.

Things to note

  • Besides the addition of the UniqueID property, the source has not been modified in any way
  • I don't observe this behaviour when subclassing the ALSCharacter 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)
  • The issue will occur regardless of the run settings (in all of Offline, Client, and Listen Server) modes

instalation issue

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 .

Simulated proxy has position jitter when mantling

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.