I Started the model with a beveled curve that I moved the handles around to the desired shape.
In then converted the curve into a mesh with quite high face counts but this is a asset the player would see upclose and therefore I would prefer to be smoother.
I also extruded out the ends slightly then shrunk them down into sharp points.
I then created 2 small circles (for the top and bottom), with screw modifiers to create this coil shape. I then converted these to a mesh and sharpened the edges like I did to the main staff.
I also subdivided for a smoother mesh and removed the interior 2 rows of faces for UV unwrapping sake and also simply to save faces.
As you can see I also manually curved the coil around the upper part of the staff and also around this cross joint peice which I added with the ‘extra mesh addons’ plugin.
I modeled the blade with many curves again, which I converted to meshes and filled in the faces to create the final scythe.
The topology on the blade is not the prettiest looking however I was still trying to make sure I had no n-gons and lower face count as the client would most likely use this in a game which means beatiful topology is not the primary goal. As you can see as I made each part of the scythe I uv-unwrapped it.
Finally I also vertex painted to help with simple masking in substance painter.
This week I created a ccontrolled randomised spawning script for the starting and end pieces.
Firstly I created an array of all the tiles manually so I could garuntee they were in numerical order
For the first peice I simply generated a random number from 0-23 and used that number to take the location of a tile that has that index.
However I wanted it to also spawn in a random direction so I had to create a function that stopped it from being able to face the outer bounds and create a unsolveable puzzle.
The function took the index of tile, and checked for each outer location, then set the possible rotations to ones that would not face the outer bounds. There may have been more optimal ways to do this however I like to do things manually and accurately to minimise mistakes.
To spawn the next peice it is a little more complicated as it has to check for the previous peice and all the tiles in a 1 tile radius.
I created this function to check from an array of tiles then calculate the grid of tiles from the first selected tile and remove them from the possible spawn indexs.
I wrote it like this so I could reuse the code for the third tile and just change the arrays to the second ones instead of the first.
This is the 3rd peice being spawned. You can see the inputs to the previous 2 variables being set then the using them to spawn the peice correctly.
Their is one flaw with this code which is present with all peices including the placeable oness is that the spawn rotation and location only works in that one axis, as Im changing the world directions not the local directions, I looked into how to fix it much as I have higher priorities but I will make a blog on it at in the future.
Next blog I will probably work on the power being able to flow through the wires from the start to the 2 ends then set a variable when its open which I in further future will use to close/ Open doors.
We did not differ from the plan too far, with a tiny bit of referencing later parts earlier than planned.
The mic was alright, however we didn’t sit evenly away from each other and there was quite a lot of background noise coming from us knocking the table. I will slightly edit this out.
The room was quiet though and we did record most of the audio we need.
Towards the beginning we start quieter and towards the end the vibrations in the table get worse. So we will record a few extra clips next time.
To display the widget above the peices to pickup and also to pick them up with E I wrote.
The when E pressed runs a macro which runs:
Which defines which piece changes which variable in the UI hotbar. The which piece to collect variable is defined by:
Which gets the class from the line trace and sets the integer number for each type.
The tile selection to place onto I spent alot of time rewriting to work slightly better and this is what I ended up with which still wasnt perfect.
To hold the pieces in the air before placing I wrote:
Which I thought was pretty smart as I used the same piece of code for all 4 types of peices by using variables which I changed to define the spawn paramaters.
To place and pickip pieces onto and from the grid the code was pretty simple.
This week I tweaked the fonts of all the characters slightly and also finalised the story.
The final layout is shown below.
Here are the changes made to all of text styling.
Overall I just wrapped up the planned story passages I had, and deleted some of the planned passages that I had no time to fit in. I also correctly formatted all of the passages that I had written to the best of my knowledge.
With the basics down from the week before I continued to play around with A.I To create the more complex code.
I First created different styled text for each character that I could call useing a macro class in the span around the text, instead of writing all the Text changes everytime someone spoke.
Above you can see how I styled the text differently for each character.
I also changed the link hover animation from the normal underlined text that changes colour. To text that enlarges, tilts to the left and changes colour. Which allows the Links to stand out and also be obvouis to click on as it moves when the mouse hovers over it.
This was much simpler to do and customise, unlike the character macros.
I then thought of a cool effect of the text being written as you read it.
e.g.The effect I created was similar to this.
This was fairly painful to have work correctly. As the macros and variables within, used to be displayed when they should be hidden.
This caused me to have to format the text I write with a <div> at the start and end, and also <span> around the text that I wanted to format. This is still easier than having to re-write: color: #aaddff; font-weight: normal; font-family: ‘Lato’, sans-serif; font-size: 1.1em; font-style: normal; and more… Every single time a character spoke.
I finished this week with a basic structure that had been half formatted correctly, and half to be formatted. Next week I will continue writing the story and adding the correct notations around the text on passages I plan out.