Blueprints future towards Softimage ICE

Hi guys,

I loved from the first day the implementation of Blueprints, because I come from a marvelous ( and unfortunately soon dead ) software called Softimage, which has a visual scripting language ( since 2008 ) that allows you to do basically whatever you want.

This visual scripting language has been used for everything:

  • Character rigs
  • Physics simulation
  • Particles management
  • Hair simulation
  • Muscle system
  • Raytracing and GI
  • A lot more…

Since the Blueprints right now are growing really really fast I would like to see if you guys could implement something inspired by Softimage ICE…
I don’t think that particles will be manageable as in ICE, but all the other stuff ( especially accessing to meshes at vertex level in order to be modified ) will be great!!!

Below you’ll find a video demosntrating some of the stuff that Softimage ICE is capable :slight_smile:

I know that Softimage is a DCC and UE4 is a game engine, but I really would like to see if the same principles/tricks can be applied in UE4 as well.


Just some thoughts…

As far as I understood it, blueprints were specifically designed to avoid any from of scripting language.
Thats why UnrealScript didnt make it into UE4.
If you want to use code to achieve something specific, you could use C++ for that.

So if you create a custom blueprint node with C++ that does what you want, go ahead. :slight_smile:

Im not sure if the way mesh data is currently stored would easily allow for that.
Also it would largely defeat baked lighting.
How would you move the UVs around to not create distortions if you move vertices around?
As said above: Im sure a solution can be created in C++ and utilized via blueprints in the engine.

I guess the main benefit of C++ over a scripting language is the runtime performance and greater versatility…
Its maybe not as an integrated look and feel like what you sgow in the video, but VisualStudio is not that bad…


As far as I understood it, blueprints were specifically designed to avoid any from of scripting language.
Thats why UnrealScript didnt make it into UE4.

That’s a terminology mix up. ‘Scripting’ is a term used to cover higher level or ring fenced (restricted access) logic creation in / for software. In games, Level Scripters will use anything from Blueprints or Kismet to Lua or C# and it’ll all be referred to as ‘Scripting’. There are still many things you will not be able to do with Blueprints that you can do in C++ because the underlying logic has not been exposed.

The Visual part defines the interface. This is what separates it from text based coding.

This can already be done using Displacement and/or the World Position Offset in materials. The World Position Offset in particular can deform and stretch your mesh in just about any way imaginable, not just in small amounts either. With my water material (link in my signature) you can increase the wave height to take the flat mesh plane to insane levels and the mesh stays intact, I chose Displacement but either way will work. It might be a slightly different process compared to SoftImage, but it works great. :slight_smile:


Yeah, maybe I didnt point out what I call a “scripting language”.
For me, a scriprting language is any turing complete language that is not compiled into native machine code. So all interpreted languages like VBA, Python, Lisp, (incl. Java, JIT does not count :rolleyes: ) run for me as scripting languages. Any form of code that runs within a generic runtime environment.
In that regards, C, C++, Pascal, Delphi, etc. are native languages.
So technically, even blueprints would qualify as a scripting language, if it is turing complete.


Jimmy_Jazz better explained what I was trying to say, which is to have the “under the hood” logic exposed and accessible via nodes.

Klaus, regarding the light baking problem, I imagine that kind of mesh manipulation while you’re building your scene:
Imagine you have a couch and you would like to modify slightly the geometry; if you already built the lighting , since you’re modifying the geometry itself you would do that in Maya/3ds, then export/reload the mesh in UE4 and rebuild the light; the main reason why I would have access at vertex level is to do those kind of modifications directly inside UE4, that will save time and export process update.

Regarding the UV consider that it’ll be a kind of BlendShape, where the UV are always the same, is the geometry that changes…obviously if you modify too much the geometry you would have really strange stretch and deformation, so its up to you how you would like to modify everything :wink:

@DotCam: I already tried very quickly to have some displacement maps for my wrinkle shader but I didn’t get good results, but I didn’t apply the same technique to other objects, so I might try it out, and I’m going to download your shader which look freaking cool!! :wink: