Rookie Awards 2024 - Open for Entries!
2022-2023 projects
Share  

2022-2023 projects

Olha Osypenko
by sauti on 1 Jun 2023 for Rookie Awards 2023

I'm a self taught 3d environment artist coming from web dev. In this entry I want to show personal projects I've worked on in 2022-2023. During this time I've discovered my passion for a bit more tech side of art and fell in love with stylized projects even more.

6 533 3
Round of applause for our sponsors

Artstation Challenge Entry - Medieval: Back and Forth

Tools used: Blender, Zbrush, Substance 3d Painter, Substance 3d Designer, Adobe Photoshop, Unreal Engine 5.

This was my entry for 2023 Artstation challenge and my first outdoor environment. While working on it I've learned a lot of new things (like clouds setup, trees creation etc) and practiced things that I knew in theory but didn't have a chance to try yet (like detail normals, LODs etc).

Concept by Antonio Marianne (https://www.artstation.com/artwork/EvzeRe)

For the assets I've either used a high poly to low poly workflow or just created a low poly right away and used tileable materials and trim sheets. 
Trees are created in TreeIt. Grass and wheat are just planes and a foliage atlas is created in Substance 3d Designer.

Only the following assets have a sculpted high poly. For the rest I've used a trim sheet and tileable materials that were created in Substance 3d Designer.

For most of the materials I've set up a master material that supports vertex painting.

For terrain material I have a few layers and I've used Landscape Grass Type in UE to place foliage automatically based on a layer:
- Wheat is auto placed on Field layer.
- Grass is auto placed on the edges of the Field layer (the graph below).
- Road Layer has detail normal and base color variation mask to break up texture repetition.

To create the clouds, I've painted the Volumetric clouds and played with material settings a lot to achieve more color variation. To give them more painterly look I've created 2 alphas in Substance Designer and placed a quite a lot of cloud cards.
Here's the material for cloud cards and the alphas:

Handpainted well

Tools used: Blender, Zbrush, Substance 3d Painter, Substance 3d Designer, Adobe Photoshop, Unreal Engine 5.

A personal project that tried to keep small and push the quality as far as I could. 
For practice I've made a manual retopology of the well in Blender (with RetopoFlow plugin), got 6264 tris as a result.
For this project I've used only base color and normal map textures.

Concept by Kong Wenjie (https://www.artstation.com/artwork/nY5Xd9)

Ornate trim sheet

Tools used: Blender, Substance 3d Designer, Adobe Photoshop, Unreal Engine 5, Marmoset Toolbag.

During my 3 month internship in 2022 I've mostly used Substance Designer and I believe I've learnt a lot then. But since I can't show what I worked on, I felt that my portfolio doesn't represent my material creation skills in a way I want. So I decided to start another personal project and make it entirely in Substance Designer. 
Looking through my old photos, I've found a photo of a building from my home city and it reminded me of my small "dream" to recreate that patterns.

To check that the trim sheet is actually usable I've recreated a part of the building from my reference. For presentation purpose I've also created 2 simple extra materials and set up a simple scene in Unreal Engine. 

I've wanted to try out vertex painting once again, as long as world aligned texture mapping. By default it didn't work as planned and the textures were stretched when mesh was rotated at a certain angle. After some googling and just a tiny bit of tweaking I've had a material function for proper texture alignment.

And here is the main Substance graph where I assemble all the trims into one texture. The project also has 8 sub-graphs where I create trim parts.

StackTrims - a custom Substance 3d Designer node

Tools used: Substance 3d Designer, Adobe Photoshop.

While working on the Ornate Trim Sheet project I've noticed that no matter how thoroughly I plan a trim sheet, I still tend to change heights of individual trims quite often. To do that I needed to update a height map itself, then trim's mask, then reposition them both, and then reposition all trims that are positioned below that trim.  So it quickly became too annoying and after some googling and watching tons of tutorials about trim sheets I didn't really find a solution for this issue.

But I felt that there should be a solution somewhere. After some time I made a custom node that just used the same value for multiple Transform 2d nodes, and overall it worked ok-ish until it didn't :) After using it for a while I added quite a lot of parameters to it, and potentially had to add more, so it started to look too complicated and not reusable enough. So, after lots of struggles I came up with a solution that is using Pixel Processor and it worked like a charm for most of my use cases. 

The StackTrim node takes a height map and a simple rectangular shape mask as an input, and based on that it masks out the trim and moves it to the very top of the texture. By chaining multiple StackTrims nodes they stacks the trims and there's no need to reposition anything manually. To change the trim height only the shape mask should be changed and everything else will be masked and moved into place automatically.

How it works:
1. It masks out the very top part of a new trim using the provided rectangular mask.
2. It examines the “Trim sheet mask” input and finds the position right under the mask.
3. It moves the new trim to that position.
4. It outputs a new combined height map and a mask for it, as well as a mask for a new trim.

The node is now available for free on my Artstation marketplace. I'm happy that it got some traction on Twitter and I got a messages from other artists and students that said they are going to use it in their next projects. The feeling that I managed to make someone's life just a bit easier motivates me a lot and it's definitely something I want to do more in future.

Random's Fault - a mobile game demo

A mobile dungeon crawler with card-based encounters.
You play as a spider who goes to the dungeon to find something beautiful for it’s nest. You move tile by tile by swiping, and each time you interact with objects on the levels, you get a card mini game where you can find some gems for the collection, get attacked, heal yourself etc. Each level is randomly generated but also has configs to control complexity.

Tools used: Blender, Zbrush, Substance 3d Painter, Adobe Photoshop, Unity, Visual Studio Code.

This project is a mobile game prototype created by a team of 3 in 3 months. The team consisted of a game designer, a programmer and me as both an artist and a programmer.

In autumn 2022 I've had a chance to participate in a Gamedev Camp - a Lithuanian mentorship program/game incubator that lasted 3 months. Participants were assembled into small teams and had to come up with a game idea and create a playable demo, all while having feedback sessions a few times a week and preparing for the final presentation.

Unfortunately, our team had a lot of issues: we didn't have a 2d artist, one of the game designers left the team after the first month, the programmer joined the team a bit later, but then because of blackouts in Ukraine couldn't contribute to the project as much as he expected.

Nevertheless, we've managed to create a game demo and successfully presented it in the end of the program. We've decided not to continue working on the game, but I'm still proud with what we've achieved in just 3 month. I'm happy that I got such amazing people as my teammates and I'd definitely love to work with them in future. 

Here's a 50 sec gameplay showcase and a 5 min presentation of the game and our team:

Game screenshots and dungeon room showcase:

The game designer was responsible for creating the whole vision for the game, balancing of game complexity, gathering ideas and references, project management and external communication.
The programmer was responsible for project setup, dungeon room generation, UI logic, anything sound related and for supporting me as a second programmer.
As a team we had regular meetings and lots of discussions and brainstorms, so we all contributed to all the decisions that had to be made for the game.

My art related contributions to this project are the following:
- Created 2d and 3d concepts based on GD's descriptions, references and sketches.
- Designed, modeled, UV unwrapped and textured all environment assets and a character that are used for the game, created idle and move animations for the character.
- Integrated assets into Unity.
- Designed the UI and assisted with UI responsiveness in Unity.

Here are some of the concepts I've created based on brainstorms with my team, and also some progress screenshots of the main map and card mini-game:

At some point of the development we've realized that we don't have enough capacity to implement everything we want. I had quite a lot of free time at that point,  so I've suggested to take some of the programming tasks too. It was my first time using Unity and C#, but thanks to my web dev background, assistance from our programmer and the mentors, I could start to contribute to the project as a programmer quite quickly.

This whole experience was not what I initially expected when I joined the program and because of programming tasks I didn't spend as much time on art as I wanted, but at that point the game and the team had higher priority for me than my personal art goals. 
And looking back at it now, it was still a great opportunity to get an idea of what I like and what I don't like to do. Programming of game logic is not for me, but I enjoyed tools creation and anything related to random generation, and I'd love to explore it more in future.

So, my programming contributions for this project were the following:
- Created Unity editor tool that allows to setup all the card related information, amount of levels and to control complexity of each level.
- Created the card mini game logic based on GD's requirements (this includes all interactions with cards and  logic to spawn cards based on configs but with some randomness).
- Created a gem collectibles system with configs and random color combination for each play session.
- Assisted the programmer with dungeon generation and just was a second pair of hands to fix whatever needed to be fixed.

To sum up, it was a pretty productive year for me, had one 3d environment art internship and I'm starting another one in a month, and I feel that I've improved my skills a lot comparing to previous year. My main focus is still environment art, but I'm happy to admit that I enjoy not only the art part, but also general problem solving and a bit more technical tasks.

Being a beginner again after ~5 years in another industry is an interesting feeling, but I don't regret it so far. I haven't been so motivated for a long time, a lot of things fascinate me and I want to experiment and try out new things. It's something that I was lacking a lot in my previous career. So, I'm happy to be where I am now and I'm looking forward to seeing what the future will bring :)


Comments (3)