Experimental Design

With this assignment we have been tasked with animating / creating a creature from the codex.

I have decided to go for the “astronaut fish” as I call it. I find it has a really interesting and unique design which I would like to try and model.

Firstly, I did some mock up sketches of what I wanted it to look like. I wanted to add my own unique spin on the fish, still incorporating the fact that it is in its little helmet. I want to go with a design that is ghostlike, which looks like it is flowing with energy. The idea being that its head is the only piece of its body which can be tied down to reality.

I found a great video on Youtube basically modelling a fish like I was, using geometry nodes to procedurally move the fins and body. I loved how this animation looked and wanted to give it a go myself, as I thought how it looked was very similar to what I wanted to achieve with my own design.

I think this approach will end up being more useful than, say, modelling out a fish model and rigging it. Geometry nodes have been something I have wanted to research so it feels like the right decision.

I decided I should get stuck in and try to make something. I started with a simple UV sphere, stretching out and morphing it to get a fish like body. The tutorial basically revolves around using different vertex groups to create more geometry around each key part of the fish, like its fins, and the top of its body.

Here is the geometry nodes page, it looks quite complicated but ends up being quite simple when you break it down. Essentially what you are doing with these is taking a couple vertices on the base of the fish, and using vertex groups to extend them and create more geometry. Each vertex group needs a multiply add and scale factor, connected to a set position for each. This allows the vertices to grow out initially. Later on down the geometry node tree you can see the real fun stuff. I used the “all parts” vertex group, (each individual part collected into one vertex group) and all together added a subdivision surface modifier to create more vertices, then a noise texture, basically making the fins flowy and wavy. The colour ramp connected to the scale controls how far up and down the fins this effect goes. I duplicated this group of nodes and then tweaked the colour ramp so that there is that variation between how much the top and bottom of each fin will be affected by force (or in actuality the noise texture).

Here is what the fish looks like with and without vertex groups so you can get an idea of how drastically it is affected by this geometry node set up.

I created the helmet for the fish here using a simple enough shader set up to make some interesting chromatic glass. I didn’t want the globe to be just a regular glass shader, or just transparent, I wanted it t have some unique properties to be more visually appealing.

I have tried here to set up a scales geometry tree, so that the scales are basically generated along the body, sitting just on top of it. However, (I think it’s because I decimated the main body to try and reduce my poly count) the scales sit very weirdly on top of the body. There are also very few scales. It ends up looking very strange and I’m not sure I’ll actually use it in my final design. The original intent was to make the body look all wispy and ghostlike, so while the scales would have been a nice added bonus, I’m not too worried about it.

I started working on the shader, basically adding 2 attribute nodes, then joining them with a mix shader. Each attribute basically. controls the body of the fish joining with the fins, and the edges/ creases of the fins which you can see. This will be useful later when I create the actual shader which I will be using, creating some nice gradients between the body and the fins.

The more I worked on this model, the more laggy it is becoming. Perhaps there is something going wrong with my geo node trees, but any time I try and resolve the issue by deleting more subdivion surface modifiers from the geo nodes, I end up removing detail from the model. I feel that I need to take a step back and re think what I need to do with the model.

I was talking with Alec in class and he suggested I should re topologise my model. I didn’t really know what he meant as I have never heard of it, but as far as I can understand it’s essentially making a new model but keeping all the details from the old model. To understand it more, I went and watched a few videos on re topology.

https://www.youtube.com/watch?v=S4YNiImIgPs

https://www.youtube.com/watch?v=sCdhkLUCV8A

These gave me a far greater understanding of why I actually need to do this. It will make my model far less laggy so that when I go to actually rig and animate everything will hopefully run smoothly.

After spending some time figuring out how to retop in Blender, I decided to use (with Henry’s help) a shrinkwrap modifier paired with toggling the snap option. I created a simple plain, changed the viewport colour to pink so that iut would be distinguished from the model itself, and switched on backface culling. I essentially created a loop of faces around the fish until I had half the body completely covered, then duplicated a single face and started wrapping it around again. I then used the “bridge edge loops” option to fill in the gaps and save myself some time.

After retopoilogising the entire thing, here is what we’re left with.

I think for a first try it turned out pretty well. My decision previously to decimate the model is still coming back to bite me as when I was retopping, especially around the tail area of the model, I ran into a lot of problems with the snap feature and it was very frustrating to get the faces to sit where I want them. I’m pretty happy with the results however.

I thought the new topology was a bit too rigid, so I had the idea to go into sculpt mode and use the smooth tool, as I was experimenting on another project unrelated to this, and found that it basically made my model look great!The whole thing, even the intricate parts at the end of the tail now look nice and smooth which I’m very happy about. 

Now that I’ve spent time retopping and am about to move on to baking the model out, I can’t help but feel very frustrated with myself at how long this has now taken me. Rather than use tried and true methods of creating 3d models, I tried something that not even my tutors were familiar with, and ended up having to double back and do the other method anyway. I’m glad I tried using geo nodes, as it’s given me a lot of valuable knowledge of how those work, however, I don’t think that I would try them again, unless I have done more extensive experimentation and really understood them before hand. I feel as though i could have saved myself a lot of time using methods that are more commonly known, and gained more insight from my tutors this way also.

My next step is UV unwrapping the model so I decided to watch a few videos on that as it seems quite complicated.

I watched this video on UV Unwrapping and think I have a decent enough grasp on it to give it a try.

This was my result after marking all my seams. I am not really sure if I did it right or not I think it may juts be trial and error until I get something that can be baked out.

When you see the Uv map on the fish it is quite interesting. I’m still not entirely sure what I’m looking for in terms of mistakes or errors, but I think these will again be more apparent later on, and I’ll have to back track to fix them.

This is what my UVS look like with the stretched toggle on. There are no immediate points of worry as the model is mostly blue so I’m happy enough.

These are the settings I’m going with after finishing UV Unwrapping

I’m not really sure why this is happening…

So the UV Map SEEMS to have worked. There’s some weird glitches but for the most part where I need the detail to be it has stayed so I’m going to move on to the rigging stage.

This is my armature/ bones set up for now as I test the waters to see what works with this model.

 

I applied automatic weights to the model and this is what I got. I think I will need to  tweak the heat map a good bit and maybe see if I can play around with settings that allow the behaviour of the fish to be more like a snake if possible. So that I don’t need to individually keep animating each bone. There’s bound to be a way to set it up.

I also found a way to fix the head, as I had a weird issue where when I wanted to rotate just the head, the entire body would also start to rotate. I fixed this simply by rotating the head armature 180 degrees and now only the head rotates with that bone.

Admittedly I could not get the snake idea to work. If I had more experience with Blender problem solving I maybe could have but unfortunately I just cannot figure out how to do it. I tried using bendy bones and even a curve modifier so that the body could possibly snake through that way, neither way really gave me the desired effect, so I will just hand animate each armature.

My UVS were giving me lots of problems, so I went back to the drawing board with them and watched this tutorial. It was really helpful and gave me a better understanding of how UVS worked in general.

https://www.youtube.com/watch?v=jnzhNdWoXMg

This is the final shader I decided to go with. I kept experimenting until I got something I was happy with. It looks like how I wanted, surreal and ethereal. Just like the codex.

I decided I wanted to create an environment for my fish to be in. Something dark and moody that compliments the colour of the fish. I watched this tutorial and decided to apply bits and pieces.

https://www.youtube.com/watch?v=oysCSbhXYBo

This tutorial helped me think about what kind of scene I wanted and helped me to understand new ways of thinking about creating a scene. I had never really experimented with ocean modifiers or anything and I feel this tutorial taught me a lot which I can apply in future projects.

 

To conclude this project, if I could go back and do it over again, I would definitely work on my time management, as I had to render out my project in EEVEE rather than Cycles like how I wanted. I also would start the project with a clearer plan and thought process, rather than trying something in completely unknown waters which ended up wasting a lot of time. It was really rewarding and satisfying to see my whole project finally come to fruition after so long. When you work on something for ages, you lose sight of the end goal or vision i think, but seeing the fish and water in cycels, and how the reflections worked was a treat, and I felt really proud of myself.

Leave a Reply

Your email address will not be published. Required fields are marked *