-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SetIdleAnimation does nothing #8
Comments
It's entirely possible you are on an old version of the plugin. This could be an issue I fixed. Try sample effect 48 which demonstrates how to use the idle animation, play an animation, and then fallback to the idle animation. https://github.com/razerofficial/CSDK_SampleApp/blob/SUPPORT_UNICODE/Sample.cpp#L4730 I may need to add sample 48 to the Unreal plugin and then I'll share that sample code as well. When I add samples to the core C++ sample it has to propagate out to the other plugins. The API is mirrored across plugins so it would be nearly the same methods in every plugin. |
Hey there, I am on version 1.0.0.9, and reading the release notes for future versions I dont see any info about a bug fix for the idle animation stuff. Unless that "Improve idle logic" is what you are referring to? Unreal Engine has our integration of the razer chroma officially targeting UE 5.5 . You can view it on gitHub here |
You can find the update Unreal update here. I ported Effect48 to the Unreal plugin so you can see a working idle implementation. I haven't tested UE 5.5 specifically, but all you need to do is edit the uplugin
|
I was not aware of this project. Nice! I recognize a lot of the code based on an older version of the plugin. It just needs a few things merged up to 1.0.1.1 so you can get the idle fixes and updated Chromatic.DLL support with the Chroma Sensa haptics APIs. |
Yea we are shooting for just the basic lighting functionality provided by Chroma to play Chroma animation assets for our official engine support of it. I will test out upgrading to 1.0.1.1 locally and see if that resolves our idle animation issues for us. |
I see the methods that you have exposed. Please include a couple important functions which should still keep the implementation small.
/*
Name the Chroma event to add extras like haptics to supplement the event
*/
UFUNCTION(BlueprintCallable, meta = (DisplayName = "SetEventName", Keywords = "Name Chroma events to add extras"), Category = "ChromaSDK")
static int32 SetEventName(const FString& name);
/*
On by default, `UseForwardChromaEvents` sends the animation name to `CoreSetEventName`
automatically when `PlayAnimationName` is called.
*/
UFUNCTION(BlueprintCallable, meta = (DisplayName = "UseForwardChromaEvents", Keywords = "Automatically forward animation names as Chroma event names"), Category = "ChromaSDK")
static void UseForwardChromaEvents(bool toggle); |
Is it possible to expose this experimental plugin to Verse? That would allow UEFN mods to play Chroma Animations if they are able to add Chroma Animations as content. |
this feature is only in beta right now, we will not be adding it to UEFN any time soon until we can properly test everything. Also, if you have methods that you want to be added which are not currently a part of our use cases, then feel free to make a pull request to the engine on github for it. |
So updating to version 1.0.1.1 seems to have partially solved the issue. It will work when being called once, but it is unable to be changed at runtime. For example, if I :
When "Anim 2" finishes, then "Anim 1" is still playing because it is still the current idle animation. "Anim 3" never gets set as the idle animation. This makes it pretty difficult for designers to easily use these effects. Here's an example in the context of a Fortnite BR match:
Something that could help alleviate this would be the ability to access the length (in seconds) of each animation being played. That way we can properly support a "play one shoot" style of effect, which would integrate very nicely into existing engine systems (not just in UE, but in other engines too). Is that possible? Thanks |
I was able to successfully test 5.5 with the updated plugin and added methods. Commit: Upgraded to 1.0.1.1 - Added SetEventName and UseForwardChromaEvents https://github.com/tgraupmann/UnrealEngine/commit/75f2a662e220233a80d4e590463bce524d6af75e When the signature matches, the plugin loads. https://github.com/tgraupmann/UnrealEngine/commit/8aad9d72e8ac50b5097021467ca844b03486c589 I'll expose the total duration in seconds in the DLL and blueprints and then I can send a PR. Added PluginGetFrameDuration and PluginGetTotalDuration |
I'll setup unit tests for that specific scenario of trying multiple idle animations. I usually use a single animation and then manipulate that same animation. I either modify all the frames or copy another animation to the idle animation. The Chroma game loop sample uses the API for dynamic mixing of multiple animations into a single animation. It uses animations or direct array access, but lacks using an idle animation. As for getting the length of an animation, you can get the count for the number of frames and then you can get the duration of each frame to add up for the total duration. Through testing it's best to get the durations in the game loading phase and before playing animations that way you don't have to run the calculations numerous times. I did find a bug that calling EXPORT_API int PluginGetFrame(int animationId, int frameIndex, float* duration, int* colors, int length, int* keys, int keysLength)
{
PluginStopAnimation(animationId);
... The next version will not call |
I was able to drag and drop Chroma animation files and import them to the content folder. From the level blueprint I am able to play animations and I exposed I need to create a signed build before I commit the DLL update into the branch. Here's a temporary branch minus the DLL update. Added GetTotalDuration https://github.com/tgraupmann/UnrealEngine/commit/727b92e1edbc483336dabe652bd4ff9a1ed2a637 In the meantime since you don't have signature validation, you can build the latest CChromaEditorLibrary. And then copy it to:
|
This adds the signed build for 1.0.1.2 with https://github.com/tgraupmann/UnrealEngine/commit/727b92e1edbc483336dabe652bd4ff9a1ed2a637 https://github.com/tgraupmann/UnrealEngine/commit/c701dbefcaa17d1b6d1434d0864ee3d5d4908a4b I'll wrap this into a PR next after merging and testing the latest. |
I submitted the changes in a PR. Upgraded CChromEditorLibrary to 1.0.1.2. Exposed library methods. #11983 https://github.com/EpicGames/UnrealEngine/pull/11983 |
The Unicode version of the CChromaEditorLibrary adds support for Unicode characters in the animation name. Support Unicode characters in the Chroma animation names |
There's an issue with FCString::Strncpy(AppInfo.Title, TitleBuilder.GetData(), 256); The Synapse title shows garbled characters after the title. Instead try: FCString::Strncpy(AppInfo.Title, TitleBuilder.ToString(), 256); This is a UE 5.5 repro project to reproduce the issue. https://github.com/devinethang/UE_PuzzleGame I submitted PR for the fix. https://github.com/EpicGames/UnrealEngine/pull/12032 |
The PR merges are complete. https://github.com/EpicGames/UnrealEngine/commit/7710d6e91885e013c98d7600285318afa72708f7 You can see the ToString() fix here. |
I tested and the ToString() fix works. I found one packaging issue. If either file is missing, packaging
|
Hey there, What scenario would one of those files be missing? You would have to manually delete the file from the engine, which there isn't much we can do about. |
I hadn't deleted the file. It just wasn't there with the default clone of the repository. I was doing the default development packaging when I discovered the issue. The workaround is to copy the PDB to the expected place so packaging The PBD symbols can be found here. The debug symbols should be optional and typically not something required to package the build. You only really need them if you wanted to debug the Chroma editor library. In my plugin, I only package the DLL using |
Interesting, it seems like those binary files and PDP must be getting ignored on the UE Github page, i will look into it! |
Any luck? I'm hoping the PDB issue gets resolved by the potential October 5.5 prerelease. |
I can confirm that using the 5.5.0 version of Unreal Engine installed from the Epic Launcher works as expected in the editor and for packaged games. I used this project to verify the process. |
Heya, yes the PDB issue has been resolved for the binary and GitHub versions of the editor. Being that it's just a pdb file for debugging, we decided not to redistribute it with the editor and instead provide instructions for how to download it in a readme if users need it instead. |
The next step will be to enable the plugin in UEFN. If For testing features it looks like plugins can be activated in UEFN. So the question would be how do you expose a BP Function to Verse from the plugin? |
Heya, getting things into UEFN/Verse is something that I would prefer not to chat about publicly, I would recommend reaching out to your contacts at Epic internally to discuss. Thanks! |
Hi there! I am seeing an issue where the
PluginSetIdleAnimation
function just does nothing.PluginOpenAnimationFromMemory
)Reading the docs, I would expect that the animation starts playing when nothing else is playing.
I have also done:
Any feedback around this would be appreciated! thanks
The text was updated successfully, but these errors were encountered: