I’ve now added support for rebinding both action and axis mappings during runtime!
You can rebind Axis mapping keys!
You can rebind Axis mapping scales (usually -1 or 1, but you can use any number you want)
You can convert an input key event to an axis mapping (for use with “enter new key” type menus)
See my sample project for how to use these nodes!
**Runtime Key Rebinding Menu**
Again the whole point of these nodes is so that you can allow your players / users to change game axis/action mappings during runtime, to go with a key-rebinding menu!
Sample Project
I’ve composed a sample project that demonstrates the use of these nodes!
is in reference to the previous posts. Another alternative to spawn locations for fire particles: A voronoi fracture on a mesh creates destructible mesh. It slices the mesh into mini chunks. The number of slices or chunks can be increased or decreased based on requirements. If there is a way to access the individual locations (center) and unique ID of each of these chunks, they can become propagation points for fire. The ID is to do array/list manipulations. At present there are no blueprint nodes for . Do you think is doable? I am trying to improve my thesis system. The vertex based propagation is very limiting. If the voronoi method for calculation propagation points works, it may be a better and more dynamic method.
Also, is it possible to get vertex information for skeletal meshes? I have many objects that needs morph targets (therefore need to imported as skeletal meshes). is to show of fire damage on those meshes.
Here is the logs from when I compile my game in VS:
Error 1 error C1083: Cannot open include file: ‘flex.h’: No such file or directory G:\UnrealEngine-4.8_NVIDIA_Techs\Engine\Source\Runtime\Engine\Public\PhysXIncludes.h 68 1 StairsGameC
Error 2 error C1083: Cannot open include file: ‘flex.h’: No such file or directory G:\UnrealEngine-4.8_NVIDIA_Techs\Engine\Source\Runtime\Engine\Public\PhysXIncludes.h 68 1 StairsGameC
Warning 3 warning C4996: including Slate.h is deprecated. Please include SlateBasics.h and then individual widget headers instead. G:\UnrealEngine-4.8_NVIDIA_Techs\Engine\Source\Runtime\Slate\Public\Slate.h 5 1 StairsGameC
HasSubstring compliments the functionality of FindSubstring.
FinsSubstring requires more inputs and returns an index within the source string.
My node, HasSubstring, requires only 1 input and only returns whether or not the supplied substring is in the source string.
I use the C++ version of HasSubstring the so I felt you would enjoy having it in BP as well!
**Example Usage ~ Search **
If you wanted to make a string-based search , that iterated over the contents of a list of UMG Texts, you can take the user's supplied search string and use my **HasSubstring **node to find the UMG Text widgets that contain the user's supplied search string.
**Latest plugin download on the UE4 Wiki: (7.94 mb) **
**Victory Plugin on Media Fire**
If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!
Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.
https://www.mediafire.com/?g6uf9kt5ueb2upj
Enjoy!
:)
But only happens when I put your plugin into the Plugins folder of my project, when I remove your plugin from my project it compiles fine again. But I will ask in the Gameworks integration thread and report back if I hear anything.
UPDATE:
Here is the answer from GalaxyMan2015 on the GameWorks thread:
I believe’s plugins have PhysX integrations right? If is the case, then you will need to add FLEX to the DependencyModuleNames of the Build.cs of’s plugin, I had to do myself for my project as I have some PhysX integration stuff, and it was complaining it couldn’t find Flex.h until I added FLEX to the module list.
I’ve tried using’s plugin and when I ran into some packaging issues I decided to remove it (it was a sensitive project and we couldn’t spend the debugging). When I disabled it, the project became corrupted. (on 4.7.6, 4.8.1, and 4.8.2).
The game was a c++ project; on disabling the plugin, the visual studio part of the project was completely removed (as in, no longer in the VS project explorer - only the UE4 engine part of the VS project, and the files missing in the game folder) - even the compile option in the game editor was gone. It reduced it to a blueprint only project - which could not be cooked/packaged. I re-enabled the plugin and while I regained the visual studio part, the c++ would no longer compile; the editor would not even load, and I ended up having to delete the game and start over from a skeleton backup.
I would not recommend plug in - cost our group a lot of money.
**The Nvidia Branch Build Solution**
Again for anyone not clear on the solution, if you are using Nvidia branches of UE4, go to
**YourProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/VictoryBPLibrary.Build.cs**
And make sure FLEX is added as a dependencY!
```
PublicDependencyModuleNames.AddRange(
new string] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"RHI",
"RenderCore",
"HTTP",
"UMG", "Slate", "SlateCore",
"ImageWrapper",
"PhysX", "APEX", "FLEX" ** //<~~~~~~ **
}
);
```
[QUOTE=;338658]
Hello,
May i ask if the plugin is compatible with 4.9?
Thank you!
[/QUOTE]
I will make it 4.9 compatible when 4.9 is officially released :)
Have fun today everyone!
:)
**My C++ For You**
Here's the C++ code for my algorithm to get the distance between the colliding surfaces of any two objects!
```
float UVictoryBPFunctionLibrary::GetDistanceBetweenComponentSurfaces(UPrimitiveComponent* CollisionComponent1, UPrimitiveComponent* CollisionComponent2, FVector& PointOnSurface1, FVector& PointOnSurface2)
{
if(!CollisionComponent1 || !CollisionComponent2)
{
return -1;
}
//Closest Point on 2 to 1
CollisionComponent2->GetDistanceToCollision(CollisionComponent1->GetComponentLocation(), PointOnSurface2);
//Closest Point on 1 to closest point on surface of 2
return CollisionComponent1->GetDistanceToCollision(PointOnSurface2, PointOnSurface1);
}
_
```
**Latest plugin download on the UE4 Wiki: (7.99 mb) **
**Victory Plugin on Media Fire**
If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!
Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.
https://www.mediafire.com/?g6uf9kt5ueb2upj
Enjoy!
:)
The only limit I think you’ll have is the fact that the value being returned from the engine is a single precision float, here’s a reference on what sort of accuracy you can expect:
"
If you want an accuracy of +/-0.0005 (about 2^-11), the maximum size that the number can be is 2^13 (8192). Any larger than and the distance between floating point numbers is greater than 0.0005.
"
UE4 is using the PhysX engine under the hood to do the distance calculation:
```
PxGeometryQuery::pointDistance
```
So I do think your only limit is the accuracy of a single precision float.
Summary:
If you have two surface points to check the distance between that are more than 8192 units apart, your accuracy is limited to 0.00005 and gets smaller as the distance between the points gets bigger.
If your planets or the bodies you want to measure collision for are more than 10,000,000 unreal world units apart, you can expect the accuracy to be dropping in terms of precision down to 0.001 (1 mile you are saying).
If you need measurements more accurate than 1 mile, you’ll need to measure bodies that are more like 5,000,000 or 1,000,000 unreal in-game units apart.
How far apart are the planets or the bodies you want to measure in your UE4 Galaxy?
Hi again , I very much enjoy your plugin now that it is working in the NVIDIA branch, I was wondering if it would be possible to extend the vertex snap to include snapping blueprint actors in the level as well? As I understand, the vertex snap is for static meshes only right? Would it be hard to make the vertex snap work in the blueprint editor, since positioning components in the blueprint editor is a pain. Thanks again for the plugin.
“Would it be hard to make the vertex snap work in the blueprint editor, since positioning components in the blueprint editor is a pain.”
Yes that would be quite a challenge since the code for blueprint editor viewport is on the Editor side.
I implemented my Vertex Snap editor by creating my own editor mode for the level viewport, a functionality and method that Epic encouraged and has provided a code path for.
Modifying the existing code of the blueprint editor viewport to receive new keyboard and mouse inputs would probably be hard to do without a custom engine build, which then prevents me from offering the vertex snap as a plugin.
It’s quite doable of course, question is whether it can be without requiring a custom engine build
If I get and find anyway to modify the blueprint editor viewport code in a plugin fashion I’ll let you know!
I am glad you are enjoying my Victory plugin!
PS:
My Latest Node Release ~ Get Distance Between Two Collision Surfaces!
**My C++ Code For You**
Here's the C++ magic that I used to get the character's animated vertex positions to line up even while moving, jumping, and falling!
Please note node can also be used with non-pawns / non-characters, any SkeletalMeshComponent will work!
```
bool UVictoryBPFunctionLibrary::AnimatedVertex__GetAnimatedVertexLocations(
USkeletalMeshComponent* Mesh,
TArray<FVector>& Locations,
bool PerformPawnVelocityCorrection
){
if(!Mesh || !Mesh->SkeletalMesh)
{
return false;
}
//~~~~~~~~~~~~~
Locations.Empty();
//~~~~~~~~~~~~~
Mesh->ComputeSkinnedPositions(Locations);
FTransform ToWorld = Mesh->GetComponentTransform();
FVector WorldLocation = ToWorld.GetLocation();
**//Pawn Velocity Correction**
UPawnMovementComponent* MovementComp = nullptr;
if(PerformPawnVelocityCorrection)
{
APawn* Pawn = Cast<APawn>(Mesh->GetOwner());
MovementComp = (Pawn) ? Pawn->GetMovementComponent() : NULL;
}
bool DoVelocityCorrection = PerformPawnVelocityCorrection && MovementComp;
**//Pawn Velocity Correction**
for(FVector& Each : Locations)
{
Each = WorldLocation + ToWorld.TransformVector(Each);
if(DoVelocityCorrection)
{
**Each += MovementComp->Velocity * FApp::GetDeltaTime();**
}
}
return true;
}
```
**Latest plugin download on the UE4 Wiki: (7.99 mb) **
**Victory Plugin on Media Fire**
If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!
Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.
https://www.mediafire.com/?g6uf9kt5ueb2upj
Enjoy!
:)