(39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

The with ISM Editor ~ Details

An update on :

As of 4.11 the system for InstancedStaticMeshComponent is compeletely incompatible with my current implementation, as soon as the ISM actor is created, it looks fine, but if you move it once, the instances disappear.

The only way I could make it work now is to generate a new Blueprint for each ISM that you make, and store it in your project Content folder somewhere.

would alleviate the of copy/pasting, but it would mean having a whole bunch of blueprints for each possible ISM combination.

If you think that is okay I can proceed with that, but needless to say generating a bunch of blueprints as you click around the editor and storing them in your content folder will require a lot more coding than the previous implementation required.

:heart:

PS: only alternative would be to write my own version of InstancedStaticMeshComponent which does not have the copy/pasting.

The with is copying Epic’s code into a new set of files, removing the offending few lines of code, and then posting that on the internet in an insecure/public way, which is rather illegal given Epic’s EULA.

the code in my plugins is my own, or the code of contributors, so I have not had to worry about offering a public link.

So in my mind the only option is generating blueprint assets on the fly whenever you press i to make an ISM actor, unless someone can think of something else!

3 New Nodes For You ~ Text to Float, Text to Int, Text Is Numeric, With Culture Support!

Dear Community,

While I was trying to convert numbers inputted into Editable Text Blocks in UMG, I ran into the following:

  1. user enters 10000
  2. I convert Text input to string, and then to float, and get 10000
  3. user enters 10,000, I do the above but I get 10 in code instead.

10?!!!

I was highly confused :slight_smile:

Well turns out that when FString gets 10,000 which is converted that way by FText, then comma truncates the FString conversion to float and I end up with 10.

would be compounded by culture setting where user is inclined to enter 10.000,00

So!

I hereby present you with nodes that convert from FText to Float and Int, with Culture support!

See pics!


**Culture Support**

As you can see in my pics I support both 10,000.99 and 10.000,99.

If anyone has other versions like 10'000.99 that they need support for, let me know!
 
The option to switch is hidden by default for convenience, just like for print string and FText to number conversions.

Enjoy!

![TextToNum.jpg|1206x574](upload://9tCsYz41QVKajF433JY3aZlRWLa.jpeg)

![TextToNum2.jpg|1206x566](upload://3rXvClq6xan8xNqQkMfBbLXDf1m.jpeg)

![ae72586253b1c35f72274864617fb4b257aec21d.jpeg|1197x583](upload://oTe3VOsZFFA9vdljzNgqDexUsyx.jpeg)

C++ Code

Here is the C++ code for these nodes!

Please note the FText’s are always passed by const reference for efficiency reasons.

Also note that my internal FString formatting code uses ReplaceInline which avoids creating a copy of the string just to replace the symbols, and is thus much more efficient code.



UFUNCTION(BlueprintPure, Category = "VictoryBPLibrary")
static bool **Text_IsNumeric**(const FText& Text)
{
	return Text.IsNumeric();
}
  
UFUNCTION(BlueprintPure, Category = "VictoryBPLibrary", meta=(AdvancedDisplay = "1"))
static float **Text_ToFloat**(const FText& Text, bool UseDotForThousands=false)
{  
	//because commas lead to string number being truncated, FText 10,000 becomes 10 for FString
	FString StrFloat = Text.ToString();
	TextNumFormat(StrFloat,UseDotForThousands);
	return FCString::Atof(*StrFloat); 
}  

UFUNCTION(BlueprintPure, Category = "VictoryBPLibrary", meta=(AdvancedDisplay = "1"))
static int32 **Text_ToInt**(const FText& Text, bool UseDotForThousands=false)
{   
	//because commas lead to string number being truncated, FText 10,000 becomes 10 for FString
	FString StrInt = Text.ToString();
	TextNumFormat(StrInt,UseDotForThousands);
	return FCString::Atoi(*StrInt);
}
  
static void **TextNumFormat**(FString& StrNum, bool UseDotForThousands)
{
	//10.000.000,997
	if(UseDotForThousands)
	{
		StrNum.**ReplaceInline**(TEXT("."),TEXT(""));	//no dots as they truncate
		StrNum.**ReplaceInline**(TEXT(","),TEXT("."));	//commas become decimal
	}
	
	//10,000,000.997
	else
	{
		StrNum.**ReplaceInline**(TEXT(","),TEXT(""));  //decimal can stay, commas would truncate so remove
	}
}


New Download (29mb, Media Fire)

Please note my downloads also include these packaged binaries:

  1. Win64 Development
  2. Win32 Shipping
  3. HTML5 Development

Please see my instructions for Packaging UE4 Plugins With Your Game.

Donations can be sent to me via:

:heart:

build error

Hi ,

first off, thanks for providing such a great plugin for free!

My: I am trying to do an build but that keeps failing with your plugin activated with the following error:

MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: [3/12] clang++.exe Module.VictoryBPLibrary.cpp [armv7-es2]
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: In file included from <built-in>:345:
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: <command line>(76,9) : error: ‘WITH_APEX’ macro redefined -Werror,-Wmacro-redefined]
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: #define WITH_APEX 1
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: ^
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: <command line>(73,9) : note: previous definition is here
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: #define WITH_APEX 0
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: ^
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: In file included from <built-in>:345:
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: <command line>(76,9) : error: ‘WITH_APEX’ macro redefined -Werror,-Wmacro-redefined]
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: #define WITH_APEX 1
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: ^
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: <command line>(73,9) : note: previous definition is here
MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: #define WITH_APEX 0


MainFrameActions: Packaging (Android (ASTC)): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: D:\MyProject\Plugins\VictoryPlugin\Binaries\Android\UE4-VictoryBPLibrary-armv7-es2.a

Note: With your plugin disabled the build works.

~ imbakeks

Oh I see I put it in the Plugin folder but not in Runtime. I will try that :slight_smile:

After adding it to the right folder it crashes with the same error. When I add the config line it doesn’t even start the editor. Are there any possible ways to fix ?

I’m unable to get the victory plugin to build with the 4.11 release version. The VS 2015 build fails immediately with a failed to initialize the engine error.

haha ok, nevermind, the name slightly changed from 4.10 to 4.11 version, once I updated it in my uproject file it was happy :stuck_out_tongue:

Thank you very much, that’s fixed it nicely

Ugh, sorry to hear that. As a VR developer, I’ve become a huge fan of your instancing solution; Epic’s is just too clunky when dealing with large numbers of meshes.

In my case I’m simply trying to upgrade from 4.10 (where ISM works perfectly) to 4.11, so I can take advantage of instanced stereo and Oculus SDK 1.3. I actually don’t need to move any of the meshes I’ve already placed in my level. I wonder if the EdEngine was just recompiled for 4.11 it would work, as long as nothing is moved. Of course, that doesn’t solve the problem going forward.

If that’s the only solution, I don’t see too much of a problem with it. It seems like it would just require more diligent content folder organization.

Works now! Thanks!

Hey when I compile for I get message

Missing UE4Game binary.
You may have to build the UE4 project with your IDE. Alternatively, build using UnrealBuildTool with the commandline:
UE4Game <Platform> <Configuration>

Is the victory plugins not supported for yet? I really hope it would be since theirs a BP node I absolutely need in your plugin :frowning: . is their a way I can make it work? Also does doesn’t seem to work for IOS either. Is their a method you made to make it work for mobiles or android. Anyone know a solution? Thanks!

Also i’m using 4.10 with the jan 15, 2016 update since Feb 15 seems not to work for 4.11 and Feb 6 seems not to work for 4.10 either when I tried.

Thanks for the reply! I tried solution 1 which I thought I had tried before but I looked into that error and it turns out it was a known when upgrading to 4.11 with the lightmass propagation plugin disabled, which I had recently disabled to make my game smaller. (UE-29010) I re-enabled the plugin and it worked perfectly! I wasn’t doing it right before since the other errors were likely caused by trying to upgrade with the old plugin files still in my project folder, and I also had the plugin listed twice after since I thought it had to be installed in the editor engine plugins directory as well. Now that it’s sorted I was able to successfully build my standalone dedicated server with 4.11 source! I donated what I could for now because your plugin is awesome and you help a lot of people on here. Keep up the good work and thanks again!

Hi ,

Thanks for the awesome plugin. I have a need to change axis configurations (deadzone, sensitivity, and exponent) at run- in a full BP project. Do you have an idea how to do it? Thanks in advance!

Hello ,

It’s amazing to see your work, very interesting.

As you show in ’ picture, I’m trying to create icons of my objects directly inside Unreal, and your plugin seems to fit exactly with my needs, but I’m not sure of how it works, and I can’t achieve anything with it.

Could you show a little how to use it, just to clarify?

Thank you so much

Hi everyone!

I’m having trouble getting plug-in to work in my custom 4.9 engine (Wwise integration).

Could anyone please provide step-by-step instructions on how to properly integrate the Victory plug-in into a custom engine? It’d be super helpful!

Thanks,

Yay 4.11 thanks :slight_smile:
I’m keen for the 4.11 of the Instanced Static Mesh Editor, I can’t wait :slight_smile:
Question on it, I’ve never actually used the static mesh editor but seen your youtube video on it ()
is it only possible to join a mesh that is the same? (same UVs, same collisions, etc) or can you join meshes that are different and still retain their UVs, collisions, etc ?
Thank you :slight_smile:

You’re welcome! And thanks for the donation!

Glad you got it working!

:slight_smile:

I will have to spend some finding the proper solution for the ways in which InstancedStaticMeshComponent no longer works at as of 4.11 if you want to serialize any aspect of it to disk using the original code, the only way it saves currently is as a blueprint, ability to save instances within the level has been removed as of 4.11.

I am investigating!

It is a big investment, I’m getting there :slight_smile:

:slight_smile:

Attention and HTML users, WITH_APEX 0 compile error is fixed!

I have now fixed error!

the with #define WITH_APEX 0 is resolved!

means you wont get the warning in HTML5 and you wont get the error in any more!

Support for IOS will be in the next release.

I had to do the following:

I had to separate out the APEX module in build cs



PrivateDependencyModuleNames.AddRange(
	new string]
	{
		//... the usual
		
		"PhysX"

	}
	);

//APEX EXCLUSIONS
if (Target.Platform != UnrealTargetPlatform.Android && Target.Platform != UnrealTargetPlatform.HTML5 && Target.Platform != UnrealTargetPlatform.IOS)
{
	PrivateDependencyModuleNames.AddRange(
	new string]
	{
		"APEX"
	}
	);
}


I also made sure to undefine WITH_APEX prior to the PhysX includes:

VictoryBPFunctionLibrary.cpp



//Apex issues
#if PLATFORM_ANDROID || PLATFORM_HTML5_BROWSER || PLATFORM_IOS
#ifdef WITH_APEX
#undef WITH_APEX
#endif
#define WITH_APEX 0
#endif //APEX EXCLUSIONS

//~~~ PhysX ~~~
#include "PhysXIncludes.h"
#include "PhysXPublic.h"		//For the ptou conversions


New Download (29mb, Media Fire)

Please note my downloads also include these packaged binaries:

  1. Win64 Development
  2. Win32 Shipping
  3. HTML5 Development

Please see my instructions for Packaging UE4 Plugins With Your Game.

Donations can be sent to me via:

:heart:

Thanks for the fix. Can’t wait to include your plugin again.