I have had some interest in my recent project – the biodiverse habitat. In this blog, I will go through the process of how I made it and the tools I used to create it. I hope you enjoy!

I have made a quick overview of the steps I took below, but I will go into more detail about the animation side of things after the basic steps.

Step 1: Research & Purchasing

As this project is a visualisation of a proposed biodiverse habitat, it was important to my client that the grasses, scrub and flowers were accurate and visually correct. There are plants found in this region that don’t grow in other parts of the world/UK. A lot of my time at the beginning of the project was spent in researching the different specified plants, and sourcing them either on my own library of 3d plants, or finding them on other 3D libraries and purchasing them. For some specific plants that the client really wanted to see but I couldn’t find anywhere, (as the plants are very region specific, I wasn’t able to find all of the specified plants) I needed to commission them.

Step 2: Build the environment

I used Blender to create a terrain, using the GIS addon (https://blender-addons.org/blendergis-addon/)

This has become a common part of my workflow and I use it for most of my projects these days – as well as the OSM addon which offers other options.

I then export the resulting geometry as FBX and import into 3ds max.

I have to make sure the scale is correct, and use site maps with a known scale that has been supplied by my client to reference.

Step 3: Prepare for Forest Pack

I then create my areas for forest pack using splines. I have some idea of where I want the camera for a ground level shot, but I will also be making an aerial shot so I need to see the whole site.

Step 4: Gather all plants

I find it essential in a project where you are potentially going to be using many different forest packs, to be very organised in how you keep the information within a file. I use visual aids such text notes so that I can come back to a file after a long time and understand what I was doing, or so someone else can easily work on the file without having to dissect it first.

I had 3 distinct groups of plants – scrub & hedgerow, grasses and wildflowers so this is how I categorised my plants.

I first made the project for still images, and so I had these different groups saved as separate x-refs – they were referenced as xref-objects within my scene but later when I animated the project, I found that I was getting very confused with xref materials and had to move back and forth to tweak things so much that I reluctantly merged my assets into the main scene file which I don’t normally like doing.

Step 5: Make the forest packs

Itoo’s Forest Pack is a powerful tool, and over the years I have been honing my skill and learning how to make it do what I need it to. This project was a challenge in many ways, and I have learned a lot while working on it. It’s easy to throw some plants into forest pack and make a quick scatter – it’s quite another thing to make it look very specific, and match a certain reference AND work in an efficient way. You can have the same source plants and finish with endless variations of final results depending on tweaking many parameters. I found myself turning to lots of tutorials on the Itoo website which was an invaluable resource for me while working on this.

The basic principle I have found while working with Forest Pack, is to use layers of different forests, rather than trying to do everything in one forest. You can then isolate and have more control over individual parts.

Existing trees and hedgerows

I made a black and white map to use for the distribution, painting over the satellite image that was made in Blender.

Hedgerows and scrub patches on site

The hedgerows vary in width and height, with smaller shrubs on the outer edges, and random gaps that form glades. I put all my plants of varying sizes in a forest and distributed them using an open spline as an area. I assigned the spline 3 times, and selected plants based on their height to the splines – tallest giving the spline a thickness of 3.5m, medium with a thickness of 7m and small with a thickness of 10.5m. For the random gaps, I made a circle and distributed it randomly along the same spline with railclone, then attached all the circles together and used it as an exclude spline. I also used the same circles as an include area for some additional grasses to fill in the gaps. Because I kept the original railclone, if the shape of the scattering spline ever changed, I could remake the circles quite easily.

Meadow & Grassland

I had two versions of the grassland – one for the aerial shot and one for the eye level shot, since it’s virtually impossible to get the right look for both shots with the same forest packs. I’ll just focus on the eye level shot here.

In order to scatter a large area, I made some clumps of the grasses I wanted to use by first using a circle as an include area in a forest pack. My base layer was a clump of long green grass I had made in growfx, scattered across the whole site with a density distance falloff of about 130m in the camera. I then had a layer of wildflower clumps, using 4 different fp clumps I had made earlier as the base objects. These two forests covered the whole site and provided a base. I needed more detail and control over the plants that were closest to the camera, so I had two fp’s assigned to a circle that was linked to the camera. One was for grasses and one was for wildflowers. Inside these I could control which plants I wanted more or less of.

reference imagery
top-down view of forests showing how the b/w distribution map scatters the existing trees & hedgerows
circles used for gaps
video explaining the meadow forest packs

Animation

For the plant animations, where I could I used growfx and applied a wind animation as an after-mesh modifier – this is by far the best solution. For plants that I didn’t growfx versions of, I applied simple animations manually – I followed this Itoo tutorial and learned a lot of clever ways of animating, including assigning a float noise controller that affected the bend angle of a bend modifier. I recommend checking it out – I learned a lot of techniques by watching this. https://www.itoosoft.com/tutorials/animation-new

I had to be careful with my random transformations in FP not to rotate in the z-axis completely randomly otherwise I’d have the wind blowing randomly in every direction, so instead I limited the z-rotation to about -15 +15 degrees.

The animated elements of my shot that were rendered in 3d were the f/g oak tree which was growfx, and I rendered it out as a separate pass to composite in later, the base grass layer, the individual grasses and flowers in the foreground and the row of poplars in the background. I also had some trees in the woods and some bushes in the hedgerow that were animated. If you watch the animation, you can see the different passes that I rendered – f/g, mid ground and background.

The butterflies were also rendered as separate passes – I used a simple mesh butterfly with flapping wings, and assigned it to a path. I drew the path in freehand, applied noise to the path, and copied it around a few times. I had made 3 different versions of the butterflies that were native to the area the habitat was to be grown in.

Previewing

to preview, in FP the animations can be previewed in point display mode, so I rendered out some quick playblasts using Sini Software Ignite panel – this worked really well to get a feel of what the animation looked like. I did this first on the base grass layer to make sure I was happy with the base level of animation.

I then made a full-res render test with everything rendering together, to check the animation.

After a few tweaks to some plants (the poplars looked a bit like they were in a gale), I also learned that the animation on the growfx could be looped to a certain frame length, so I did that and also made sure the wildflower animations were looped (most of the wildflowers were manually animated) until I was happy with how everything was looking.

After some test frames, and approval from my client, I was ready to render the final result. I’m very happy with how this has turned out – as always, there are things I could tweak or do differently – but that can wait until next time!
I hope you enjoyed and find something useful for your workflow. Thanks for reading to the end! Leave a comment – I’d love to hear from you.

The Final Version