Basically, I was taking a look at the game Splice. Specifically the gameplay, where you go about splicing and re-arranging molecules of sorts:
And I’m wondering in Unity how would one go about creating: (by 0.17 you get a good look at what I’m talking about)
- The bigger circle around the root molecule
- The dotted lines that connect each molecule.
That is, if you rotate the perspective around a bit, you’ll notice these outlines / shapes seem to be like on their own plane. I’m not talking about the capsules themselves, but rather the white circle and capsule outlines.
I’m trying to wrap my head around how could this technique be achieved. For instance, are the outlines textures on planes? ( I don’t think so since the circle for instance can get bigger and smaller without noticeable mipmapping – it seems almost vector-like). Are they projectors onto planes? A line shader? (not the unity line renderer, I mean their own line shader, more like a wireframe shader).
Just wondering what peoples’ approach to this would be.
The easy way is to make a plane with the texture you want, attach it to the target game object, and put a “SmoothLookAt” script on it. You will have to set the target to the main camera from another script, but then you have a circle that is in 3d space but is looking at the camera.
An even simpler method would involve a simple billboarding script that always looks at the main camera.
Or you could just get Vectrosity as already suggested.
Fattie
3
try “dynamic circles” on asset store
So here’s an example of the “2D sprite that you allow to rotate on the Y axis in 3D” look.
http://www.filedropper.com/swingers
try it on your retina iPad

(incidentally the “file dropper” service there seems great, it’s so hard to find somewhere to easily post files, assuming it’s not some sort of scam. notice the cool URL you get!)
By the way I’m crippled by being unable to draw a capsule in Illustrator, heh!!
Don’t hesitate to substitute a better one - try different thickness for the look you want. A thinner line would probably look better.

So, it could be that the white capsule outlines are “a PNG” but, when you tilt your iPad they rotate backwards in to the scene - you know, a 2D sprite but you allow it to move in 3D for that cool, err, “2D sprite moving in 3D” look. Perhaps? (Notice the fellow on the page linked, mentions having looked at “2DToolkit”.) the filled-in black “capsule” looking things appear to be just 3D objects, nicely lit and so on, which again slightly rotate on Y. regarding the Awesome Fuzzy Background, i have no idea how it is done. It could be that a skilled artist drew an Awesome Fuzzy Background in photoshop, and you are seeing it there rotating on Z. Regarding the out of focus look of the “small mysterious objects” which swing around in eth background, perhaps that is done with a shader? Regaring the bounce that connects the white-outline or black-3D capsules, you could write your own spring physics or possibly use Unity’s
So it’s been a while but here are my two cents so far:
First off, my whole asking was cause I’m doing a game / demo of sorts as project to teach myself unity. So obviously, I’m not cloning the game I based my example on. It’s just that what I’m working on has similar aesthetics. So my test is really like so:
- being able to click anywhere on the screen and have a circle silhouette / non-filled circle instantiated. The circle then starts emanating a pulsating version of itself. That is, a second circumference starting at the same scale and size scales up in x and y as it also fades out. This repeats for ever, giving the pulse / radiance effect.
- if I click on the circle and drag, a line follows the mouse and when I release, a new circle is created and so the circles are connected thru the line.
That being said, at this point I tried two approaches
-
A
-
Making the shapes with Dynamic Circles. So each of these circles is really two. One that stays put and another that I animate via a script.
-
Making the line that joins the circles with the line renderer.
-
B
-
Making the shapes (the circle and the pulsating aura) in Flash and then merely importing them in Unity with UniSWF. I then animate by actually writing a script where I make the flash animation jump from frame to frame and loop over different ranges.
-
Making the line that joins the circles with the line renderer.
Right now I’m not making dotted lines. Which is why I’m getting away with the line renderer. I also got a copy of Vectrocity but didn’t try it yet. Though then I could replace the line renderer and do dotted lines for instance. Vectrocity also takes me to think that another way about the whole thing would be:
- C
- Everything in Vectrocity.
And I don’t know that Cipher Prime did this, but certainly another possibility is:
- D
- Doing (almost) everything in either UniSWF or Scaleform.
After all, when you couple the UI / menus with the gameplay itself, it seems it lends itself pretty well to making 80% of it in Flash and then staging it in Unity.
Now, as far as the two approaches I tried, between A and B the quality difference seems negligible; I tested zooming in and out as far as I’d want to for this game and the quality is pretty much the same. I am now wondering which approach would be more efficient if I had, say, 10 of these circles connected by 9 or more lines (assuming a circle can connect to more than one circle).
The trade off seems to be:
-
Dynamic Circles:
-
2n shapes of t triangles each, since each shape is made up of the circle itself plus the pulsing one.
-
animation code inside Update() (the pulsating circles for instance, scaling up and down).
-
An interesting note, the meshes don’t have normals. Instead, the DC shader turns backface culling off. I wonder if this is more efficient than using a shared normal. It also means without tweaking the script that generates the shapes, I can’t really assign other materials to the DC shapes.
-
UniSWF:
-
At first glance 1 quad per shape, regardless of the pulsating effect or anything else I add.
-
The Unity script boils down to handling a few state changes and that’s it. No color.a or transform.localScale tweaking in Update().
-
However, as far as I understand, each shape which animates in the swf is really rasterized to a texture per frame. So I’m really loading in and out as many textures as I have frames in the whole animation for all states of the shape. And I’m not sure if behind the scenes the thing is smart enough to realize the n shapes are the same so it can share the textures across all of them.
-
Also potentially I really have a bunch (and not just one, even though it all shows up in a single quad) of proprietary (to put it somehow) UniSWF objects inside each flashObject / quad, depending on me exporting them from flash or not. And for what I understand, if I wanted to control the pulsating circle independently from the fixed circle, I’d have to export them separately in the swf file.