Download

Rama's Vertex Snap Editor Plugin, Download for You!

I am currently wrapping up the actual UE4 Editor integration of my plugin :slight_smile:

https://github.com/EpicGames/UnrealEngine/pull/62

Rama

New Video

Vertices Resize to account for Asymmetric Mesh Scaling

Now vertices will always maintain an easy-to-use size, even for very small asymmetrically scaled meshes!

You can vote for this plugin to be made an engine feature here!

Rama

Area Vertex Display Video

When vertex count is too high, now I display vertices only in an area around the cursor!

This area is based on mesh vertex density, so it will always produce the same number of vertices around the highlighted vertex, no matter what the absolute world size of the mesh is!

Rama

Awesome. Thanks Rama.

Turns out I just wasn’t rolling over the source vert to the destination vert right. I was trying to manipulate it like unity and was confused.

Trying to get it to work.

I have everything working but I get the following message.

Plugin ‘VictoryBPLibrary’ failed to load because module ‘VictoryBPLibrary’ could not be found. This plugin’s functionality will not be available. Please ensure the plugin is properly installed, otherwise considering disabling the plugin for this project.

Please help, I have a modular construction set that I had made and need to have the vertex snap to ease the work.

please delete what you have, redownload, and then write out the steps that you’ve followed as you follow them, and post that here, then I can help more :slight_smile:

Use this information please:

Rama

Rama,

Can you make this work when meshes are grouped together?

Multi selection is fully supported in my Engine Integration version :slight_smile:

See first video here!

So yes that support is coming!

Rama

Hi Rama,

With this plugin included in my project I’m getting the following warnings (and subsequently errors) while compiling with the “DebugGame Editor” configuration. Not sure how to fix this with UE4 being an nmake-based project. Any ideas?

My plugin only works in Development Editor because it includes UnrealEd, when doing non-Development builds you will need to exclude the plugin.

I am shortly going to divide the plugin up so that the BP nodes are accessible in non-development builds :slight_smile:

Rama

Ah, good call; didn’t even think about that. It does work with the Debug Editor configuration though, so that’s good enough. Thanks!

Hi there!

With the help of Lion I have now fixed my plugin so that at least the Blueprint Nodes portion will work in a shipping game build

:slight_smile:

Direct Download Link

https://d26ilriwvtzlb.cloudfront.net/a/a4/VictoryPlugin.zip

Rama

This is awesome, im sad it didnt work for unreal engine 4.4.0. Is there any way that this could work on the newer version

I did compile my vertex snap editor in 4.4 !

You can download it here, instructions on the wiki page :slight_smile:

Let me know how it goes!

EDIT:

I just tested all functionality of my vertex snap plugin in 4.4

-different vertex shapes

-resizing

-snap

-snap to surface normal

-reset rotation

  • T key for instant translation

  • and also undo/redo of any number of vertex snapping!

It all worked!

:slight_smile:

Rama

Rama:
Just to let you know, I have been having problems running your plugin in UE 4.4 (latest version 17:08, 19 August 2014 no. 2).

The problem stems from two pointers not being initialised:

SelectedVertexBuffer = nullptr;
HighlightedVertexBuffer = nullptr;

Needed to be added to your JoyInit function, as they were causing constant crashing when right clicking on an object, when that object wasn’t selected.
It would also crash occasionally when left clicking.

@Rama

Would you consider putting up your plugin on GitHub, BitBucket or other?

I only ask because we make use of Git Submodules when handling project plugins, which keeps things contained and has the bonus of keeping additional binary files out of our main project repository :slight_smile:


I have also started writing Git source control (Tutorial) for the Official UE4 Wiki for those who are interested in such workflows. Feel free to add to it, as I am currently in-between moving houses and will not have much time to update the wiki for some time.

Can you explain more about this, why it is useful? So far the workflow of downloading / uploading to wiki has worked fine for me, and all the source is in the download anyways, let me know!

[FONT=Comic Sans MS]Thank You Vernatia!

I have been meaning to get around to debugging that crash, and you just fixed it for me!

Thanks so much for posting!

And congrats on your first post! An exceptionally helpful first post for me!

Welcome to the forums!


New Plugin Build is Live!

The fix Vernatia mentioned is now live!

https://wiki.unrealengine.com/File:VictoryPlugin.zip

Rama

I’m trying to use your plugin to help with a performance optimisation for reflection render targets - that is, to stop rendering to the render target when the destination object is not visible. I’m trying to do this using the Visibility Get Rendered Actors node, which should, if I understand this correctly, allow me to determine which actors are currently being rendered. However, it seems to not work on translucent objects, reporting that the object is never being rendered. This makes the plugin entirely useless for my needs. Is there something that can be done about this?

Congrats on your first post!

Welcome the forums!

I am just using Epic’s functions internally, I will post the code here so perhaps Epic can answer your question in greater depth, as I myself can’t comprehend why translucent objects would not be listed as being rendered ever, make sure its not an error on your end somewhere :slight_smile:



void UVictoryBPFunctionLibrary::Visibility__GetRenderedActors(TArray<AActor*>& CurrentlyRenderedActors, float MinRecentTime)
{
	//Empty any previous entries
	CurrentlyRenderedActors.Empty();
	
	//Iterate Over Actors
	for ( TObjectIterator<AActor> Itr; Itr; ++Itr )
	{
		if (Itr->GetLastRenderTime() > MinRecentTime)
		{
			CurrentlyRenderedActors.Add( * Itr);
		}
	}
}
void UVictoryBPFunctionLibrary::Visibility__GetNotRenderedActors(TArray<AActor*>& CurrentlyNotRenderedActors, float MinRecentTime)
{
	//Empty any previous entries
	CurrentlyNotRenderedActors.Empty();
	
	//Iterate Over Actors
	for ( TObjectIterator<AActor> Itr; Itr; ++Itr )
	{
		if (Itr->GetLastRenderTime() <= MinRecentTime)
		{
			CurrentlyNotRenderedActors.Add( * Itr);
		}
	}
}