Download

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

Hey Rama,

We are using the 4.13 plugin and I am getting multiple errors on PS4.
CreateImport: Failed to load Outer for resource…

I didn’t have any problem with the 4.12 plugin.

Any idea what is happening there?

Cheers,
Charlie

Hello everyone
Just decided to try using plugin in my 4.13 project

I followed the manual, but can’t package the project for any supported platform, getting “fatal error LNK1181: cannot open input file ‘tbbmalloc.lib’” when plugin is active
Never used any plugins before, so feel confused a little. What am I missing?

This is excellent, very useful. Thank you very much, Rama!

I would love it if someone developing for ps4 could help in this matter, I do not have the hardware to test with myself :slight_smile:

Rama


**Answer to Level Streaming Unloading**


[QUOTE=yanzco;590039]
Rama, i have a question, the load level instance is great, but i was wondering if there's any way to unload a level instance
[/QUOTE]


Drag off from the return value of my node, and then you can set the bool bLoaded or visible to false



```



	/** Whether the level should be loaded																						*/
	UPROPERTY(Category=LevelStreaming, BlueprintReadWrite)
	uint32 bShouldBeLoaded:1;

	/** Whether the level should be visible if it is loaded																		*/
	UPROPERTY(EditAnywhere, Category=LevelStreaming, BlueprintReadWrite)
	uint32 bShouldBeVisible:1;


```




It's not particularly  intuitive because you just set the boolean flag and UE4 processes the flag on the next engine tick, which is not the typical way of operating in BP but that is how level streaming works, and this is the only format I could expose without extensive engine modifications being required to support BP. 

There could be functions made that would just flip this bool I suppose... maybe will make that a github pull request....

ooh that’s great intel, thank you! I will investigate

:slight_smile:

Rama

Get Your / the local player’s IP Address from BP!

BP Node to Get Your Computer’s IP Address!

Dear Community,

I’ve finally succeeded at implementing a node that many have been trying to implement since the Beta!

This is a BP node that gets the IP address of your computer!

My node relies on http://api.ipify.org, a free and easy way to get your current IP address.

Because this node involves an HTTP request I can’t make it a static library node, so I instead made a VictoryPC class that contains only this functionality.

You can easily re-parent your current player controller blueprint to use my plugin VictoryPC class!

File->Reparent

and if you are not using a PC already, make sure to go to World Settings and use my VictoryPC as your player controller!

As long as my Victory BP Library is an active plugin for you, then this VictoryPC class will show up!


**Celebration!**

Yay!

Now we can all get the IP address of the local computer for use with multiplayer games or webserver activities!

Enjoy!

Rama

Pic

Here’s the setup you should create in your Blueprinted version of my VictoryPC!

2902549c08d489d31bb43f8a7049793370d4801e.jpeg


**C++ Source Code For You**

Here is the C++ source code I wrote just earlier today!



```


bool AVictoryPC::VictoryPC_GetMyIP_SendRequest()
{
	FHttpModule* Http = &FHttpModule::Get();
	
	if(!Http)
	{
		return false;
	}
	 
	if(!Http->IsHttpEnabled()) 
	{
		return false;
	} 
	//~~~~~~~~~~~~~~~~~~~
	
	FString TargetHost = "http://api.ipify.org";
	TSharedRef < IHttpRequest > Request = Http->CreateRequest(); 
	Request->SetVerb("GET");
	Request->SetURL(TargetHost);
	Request->SetHeader("User-Agent", "VictoryBPLibrary/1.0");
	Request->SetHeader("Content-Type" ,"text/html");
 
	Request->OnProcessRequestComplete().BindUObject(this, &AVictoryPC::HTTPOnResponseReceived);
	if (!Request->ProcessRequest())
	{
		return false;
	}
	  
	return true;
}
	
void AVictoryPC::HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
	this->VictoryPC_GetMyIP_DataReceived(Response->GetContentAsString());
}
 


```



New Download for UE4 4.13 (55mb, Media Fire)

:heart: Please note I now use the UE4 Marketplace C++ Plugin Standard when packaging Victory plugin for you :heart:

  1. Win64 Development
  2. Win64 Shipping **<~~~~~~ NEW!**
  3. Win32 Development
  4. Win32 Shipping
  5. HTML5 Development
  6. HTML5 Shipping **<~~~~~~ NEW!**

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


**Prior Engine Versions**

**4.12: **http://www.mediafire.com/download/g441k2815r5b045/VictoryPlugin12.zip

**4.11: **http://www.mediafire.com/download/jp91b9atphm2obt/VictoryPlugin11.zip

Donations can be sent to me via:
http://lightningfitness.org/donate/

:heart:

Rama

new release is working like a charm - I had troubles packaging with previous one
I dunno what happened, but am greatly thankful, @Rama :smiley:

the only thing - maybe, it’s time to update plugin’s BP node list at 1st post of the topic?
it would be useful for newcomers like me

Hi Rama!
I might be especially dumb today but I cannot figure how to make ISM editing work for 4.13.
I’ve followed wiki with VictoryEdEngine/DefaultEngine.ini staff but looks like there is outdated version or smf. I have installed VictoryPlugin for 4.13 and cannot see how to SM<->ISM.
I simply need to convert huge amount of SM to ISM

Hi Rama! Thank you for this amazing plugin!!!
I’m using it with UE4.11 for Skeletal mesh with Morph targets. But I can’t receive data from vertices with morphs. Maybe I’m doing something wrong? Could you help me please?
f8bf8cab98a05a5d4e70b7303b7042a9c8f494b0.jpeg
My Graph:
af34e9f4ffae8fa6fc59ce912ee99ac4a24f2751.png

Ahh that’s a good idea :slight_smile:

I will investigate state of ISM editor for 4.13, I thought Epic’s new actor merge feature would replace need for my ISM editor but that doesnt appear to be the case :slight_smile:

Hi there!

The issue is that vertex positions can only be obtained on the game thread for cpu-based manipulations of the vertices, ie, skinned mesh vertex animation using animation assets.

Morph targeting is done by the GPU / render thread, so there is no CPU / game thread position data available (as far as I know).

This means if you really do need the morph targeted position you’d have to switch to a facial bone rig and use that instead, if you have one, those animation adjustments, because they are done via bones and are performed on the cpu by the skeletal/skinned mesh class code, will show up correctly.

If your entire workflow is based around morph targeting then I do not currently know of a way to get those position.

You could get absolute state positions, ie, the static poses of each morph target

And you could theoretically blend between those static poses (vertex positions) if you knew what morphs were in effect (as you surely would since you are applying the morphs)

But there’s no built in way to get the morph target vertex positions that I know of, again since it is performed on the gpu not the cpu.

Again since you know the absolute bounds of each morph target from the static version of the morph in your original art asset, you could export all those static poses and use those vertex positions, blending between them based on the alphas of the applied morphs.

Solution:

So now that I am thinking about it, it is not that hard, you just have to import each static pose for the face that is a morph target for the skeletal mesh, and get the vertex positions of the static mesh poses and blend between them using series of simple Vector Lerps.

Good luck!

:slight_smile:

Rama

Victory Instanced Static Mesh Editor 4.13

Dear Community,

By popular request I’ve finally restored the Victory ISM Editor functionality in my vertex snap plugin!

I provide you here with an entire project that you can use to understand the setup:

Media Fire ~ Entire functional UE4 Project for 4.13
https://www.mediafire.com/?21nsv6zrlxdp35f

Overview Of Victory ISM Editor With Videos

The 4.13 Implementation
Basically my Victory ISM editor has to use a C++ based instanced static mesh actor in order to work correctly, as BP-added ISM components dont survive serialization for some reason, but my C++ class does, which is called VictoryISM.

The VictoryISM class is set in project settings -> Victory Ed Engine :slight_smile:

You also have to set in your DefaultEngine.ini that you want to use VictoryEdEngine your extended UnrealEdEngine class

Controls
Select a bunch of static mesh actors, and press I in order to merge them, press SHIFT + I to separate them again for editing.

Undo/Redo
My merging process works with undo/redo feature of UE4 :slight_smile:

Packaging
My Victory Plugin is included as a runtime plugin that contains the VictoryISM class that will package with the game so that your levels will have the VictoryISM actors in them after packaging.

I had to do it this way because the Victory Ed Engine plugin is an editor only plugin and wont package, so I can’t put the special C++ VictoryISM actor class in the editor only plugin because that class would not be found in packaged games.

You can use any recent version of my Victory Plugin with this setup, I dont plan to change the VictoryISM class any time soon :slight_smile:

:heart:

Rama

Videos

Thank you for your answer!
I found other solution (I baked morph as base in external package Blender -> import to UE4 as new character through FBX -> export character from UE as FBX (with pose I need) -> edit in 3ds Max to delete skeleton and use only mesh -> import to UE4 just mesh with applied morph and with my pose).
But now I have other issue. For some reason indices of vertices in your node don’t match to coordinates after some number.
For example, I need track vertex with number 29479. I know that this vertex has next coordinates in OBJ file (x,y,z) 175.9547, 41.1285, 113.0462. But when I look in UE I see other coordinates (see attachment). Zeroes for “Get Static Mesh Vertex Locations” and completely different coordinates for “Animated Vertex Get Animated Vertex Locations”.
0e2f6ccc9760906b1212cf5d831809f82c67f504.png
But if I compare first 10 vertices, they are completely the same as in OBJ file.
Why this happens?

Hi rama,
Thanks for your great works,
I want to know is it possible to load a mp3 sound files into engine in runtime ? something like you did to load texture during runtime

Hi Rama,
thanks for your contribution to the unreal community!
i’m currently using Victory Plugin 4.11 with Unreal Engine 4.11.2 version.
I followed your instructions about how install the plugin, copying the Victory Plugin content under the Engine/Plugins/Runtime folder but i’m facing some issues with Shipping packaging (both 32/64) as when i try to launch the game exe as shown in the screenshots below that error message appears.
To get the package to work i have to use the exe file under “MyProject\Binaries\Win32/64” but only after renaming it by removing the suffix “-Win32/64-Shipping”
Is this normal or am i missing something?

You can load an audio file with the plugin but it has to be an ogg file - probably because it’s an open format.

Rama if you ever have time, id like to talk to you about a commission to creating private blueprints or a plugin for me, if that is possible

Congratulations on your progress! Yay!

The way that an OBJ stores data, an FBX, and the way that UE4 stores imported vertex data are very likely all different :slight_smile:

You’d really want to do a readout from within UE4 using one method, and stick to that method, but I imagine there’s some reason you want to examine the index alignments pre-UE4?

It’s very nice to hear from you @Dannington !

Vahid, its an interesting concept, but it’s getting kind of close to the UE4 EULA barrier about not making a packaged game that has editor-capabilities that replace your end-user / potential developer’s need for UE4, in my opinion.

Any time you are importing assets at runtime from external file formats the way UE4 would, you need to dearly consider the UE4 EULA, and consider making a mod or content pak instead :slight_smile:

:slight_smile:

Rama

You’re welcome!

Ahm, it’s definitely not normal, but I don’t quite know why this is your experience. When I package from within UE4 and end up with a packaged game, it just sort of… runs :slight_smile: So I am not yet sure what the difference is.

Your workaround is actually the most peculiar part, but I am glad you figured out a solution, that’s amazing!

I will have to investigate as time permits, but please keep me posted if your workaround breaks at any point :slight_smile:

Rama

I pm’ed you :slight_smile:

Rama

Hi Rama, thanks for your answer!

I’ve done some more tests and these are the results

  • I’ve tried, with a different computer, the same installation process described in my previous post but the same behaviour still occurs: if packaged for Shipping 32 or 64 that error appears when launching the exe file in the root folder and, to solve this i have to use the workaround. Packaging for development instead doesn’t have any kind of problem.

  • I’ve also tried with a clean windows 10 installation on my main computer but the problem persists

  • Finally, using the same steps used to install the 4.11 plugin version, i made some tests with the 4.12 plugin version and, no problem occurred. This should mean that i follow the instruction correctly and that the problem may be in the 4.11 plugin version itself, what do you think?

More details about my setup:

The 4.11 plugin version i’ve downloaded is this one: http://www.mediafire.com/file/jp91b9atphm2obt/VictoryPlugin11.zip
Can you confirm that it is the most up to date plugin version for 4.11.2 Engine?

I’ve Visual Studio 2015 Community installed

**The workaround seems to have no limitations at all but i would prefer to have a proper .exe file in my root folder if possible!
Anyway thanks for your support and keep up the good work! **

**
here two screenshots, one for the plugin installation folder and one with my package settings**

I’m having a small issue with the fullscreen nodes. I’m trying to force regular fullscreen, but “PreferredFullscreenMode=1” is always saved to GameUserSettings.ini instead of Mode=0. Any advice? :eek:

95824f3996f5f791d145c5f43c12215625ebdc2f.jpeg