Compare commits
3 Commits
72347769c3
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a8f012066c | |||
| 165d0b7042 | |||
| cf125809bd |
@@ -71,6 +71,8 @@
|
||||
|
||||
{#if tocEntries.length > 0}
|
||||
<div class="{type ? "toc-container-side" : "toc-container"} blurred-background">
|
||||
<p class="toc-header">on this page</p>
|
||||
|
||||
<ul class="toc-list">
|
||||
{#each tocEntries as entry}
|
||||
{@render tocEntryLine({ entry })}
|
||||
@@ -100,11 +102,12 @@
|
||||
}
|
||||
|
||||
.toc-container-side {
|
||||
--padding-indent-base: 24px;
|
||||
--padding-level-indent: 24px;
|
||||
--padding-indent-base: 20px;
|
||||
--padding-level-indent: var(--padding-indent-base);
|
||||
|
||||
width: 400px;
|
||||
margin: 32px 12px 0 12px;
|
||||
/* width: 300px; */
|
||||
margin-left: 12px;
|
||||
margin-right: 12px;
|
||||
position: sticky;
|
||||
top: 64px;
|
||||
border-left: var(--border-style) var(--border-dash-size) var(--color-highlight);
|
||||
@@ -121,6 +124,14 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.toc-header {
|
||||
margin: 0 var(--padding-indent-base);
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
color: var(--color-highlight);
|
||||
font-family: var(--font-mono);
|
||||
}
|
||||
|
||||
.toc-list a {
|
||||
width: 100%;
|
||||
font-size: 1.0rem;
|
||||
|
||||
@@ -36,30 +36,43 @@
|
||||
}
|
||||
}
|
||||
.container {
|
||||
width: var(--page-width);
|
||||
max-width: var(--page-width);
|
||||
margin: 0 auto;
|
||||
padding: 0 24px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
max-width: var(--page-width);
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: auto 300px;
|
||||
}
|
||||
|
||||
.content-sidebar-main-container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.side {
|
||||
width: fit-content;
|
||||
width: 100%;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
.content {
|
||||
padding: 0 8px;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
grid-template-rows: auto auto;
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.side {
|
||||
min-width: 0;
|
||||
max-width: 100%;
|
||||
margin-top: 8px;
|
||||
width: 100%;
|
||||
order: -1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -323,15 +323,6 @@
|
||||
font-family: var(--font-lightyears);
|
||||
}
|
||||
|
||||
.horizontally-centre-aligned {
|
||||
width: var(--media-width);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.inline-img-left {
|
||||
float: left;
|
||||
max-width: 24%;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts">
|
||||
import TableOfContents from "$lib/components/table-of-contents.svelte";
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||

|
||||
@@ -35,24 +36,39 @@ I designed the PCB in [KiCad](https://www.kicad.org/). I had no prior experience
|
||||
|
||||
I split the PCB into four layers, separating power, ground, digital signals (switches and toggle), and analogue signals (potentiometers, audio out). I made some exceptions, such as for the waveform buttons, since they cross the playing key traces.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="pcb-sketch.webp" alt="Screenshot of KiCad schematic">
|
||||
<img src="pcb-empty.webp" alt="The finished PCB produced from the KiCad schematic">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "pcb-sketch.webp",
|
||||
alt: "Screenshot of KiCad schematic",
|
||||
},
|
||||
{
|
||||
src: "pcb-empty.webp",
|
||||
alt: "The finished PCB produced from the KiCad schematic",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
The PCB was manufactured by [JLCPCB](https://jlcpcb.com/).
|
||||
|
||||
|
||||
#### USB-C
|
||||
|
||||
If using a USB-C breakout board, wire in two 5.1 kΩ pulldown resistors by soldering a resistor between the pin CC1 and ground. Do the same for pin CC2 with a second resistor.
|
||||
|
||||
Alternatively, if your USB-C breakout board does not have CC pins exposed, there's a chance you could still connect pulldown resistors to make it compatible. On [this breakout board](https://www.amazon.de/dp/B09FPZDDD9) I purchased on Amazon, I discovered that the third pin from the right exposes a CC connection. Wiring a resistor between this pin and ground enabled C-to-C functionality. If you want to test the functionality before soldering, you can hold a resistor between this pin and either the ground connector on the board or the USB port's outer shell, since that one's grounded as well.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="usbc-breakout-small.webp" alt="Close-up of the USB-C breakout board with the CC pin marked">
|
||||
<img src="hand.webp" alt="The tiny USB-C breakout board compared to my hand">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "usbc-breakout-small.webp",
|
||||
alt: "Close-up of the USB-C breakout board with the CC pin marked",
|
||||
},
|
||||
{
|
||||
src: "hand.webp",
|
||||
alt: "The tiny USB-C breakout board compared to my hand",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
Do keep in mind that this type of connector does not have mounting holes and requires either a more sophisticated mounting mechanism in the chassis, hot glue, or both. Also, soldering to this pin is insanely finicky, since it is VERY small, so I strongly recommend a breakout board such as [this one by Soldered](https://www.reichelt.de/entwicklerboards-usb-typ-c-adapterboard-buchse-debo-usb-c-f-p376522.html) that exposes the CC pins.
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts">
|
||||
import Video from "$lib/video.svelte";
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
My progress in October 2023. Updates are shown in chronological order.
|
||||
@@ -40,10 +41,18 @@ We now have health points! As it is currently set up, the health bar supports up
|
||||
|
||||
The health bar even aligns properly for 5 and 6 max health points, reducing the max points displayed per line from 4 to 3!
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="2023-10-07_01.webp" alt="Five health points in the shape of plusses">
|
||||
<img src="2023-10-07_02.webp" alt="Six health points in the shape of plusses">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "2023-10-07_01.webp",
|
||||
alt: "Five health points in the shape of plusses",
|
||||
},
|
||||
{
|
||||
src: "2023-10-07_02.webp",
|
||||
alt: "Six health points in the shape of plusses",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
## What Are the Controls??
|
||||
|
||||
@@ -71,11 +80,22 @@ The Quick Select menu opens when the E key (keyboard) or the North face button (
|
||||
|
||||
In order to get started with the 3D models I'll need to create for the game, I attempted to begin the process of modelling the weapon of the protagonist! It's supposed to become a battle axe, though I have not yet finalised whether I'll keep with the idea.
|
||||
|
||||
<div class="horizontally-centre-aligned width-restricted">
|
||||
<img src="2023-10-22_02.webp" alt="Top view of the battle axe with a flat blade">
|
||||
<img src="2023-10-22_04.webp" alt="Top view of the battle axe with a thickened blade">
|
||||
<img src="2023-10-22_05.webp" alt="Side view of the battle axe">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "2023-10-22_02.webp",
|
||||
alt: "Top view of the battle axe with a flat blade",
|
||||
},
|
||||
{
|
||||
src: "2023-10-22_04.webp",
|
||||
alt: "Top view of the battle axe with a thickened blade",
|
||||
},
|
||||
{
|
||||
src: "2023-10-22_05.webp",
|
||||
alt: "Side view of the battle axe",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
## Hot, Fresh Quality
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts">
|
||||
import Video from "$lib/video.svelte";
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
My progress in November 2023. Updates are shown in chronological order.
|
||||
@@ -10,11 +11,22 @@ Lots of progress on the 3D models! I modelled the first weapon for the game, the
|
||||
|
||||
The earliest version was based on an 8-sided cylinder. After some feedback from friends, I remade the weapon, using a 16-sided cylinder, and also adding more details to the weapon overall. More attention went into the grip, which now resembled a weapon grip more so than a stick.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="2023-11-05_00.webp" alt="N5 Blaster v1 made from an 8-sided cylinder">
|
||||
<img src="2023-11-03_01.webp" alt="N5 Blaster v2 made from a 16-sided blaster and with additional lights on the grip">
|
||||
<img src="2023-11-05_03.webp" alt="N5 Blaster v3 with additional lights on the body">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "2023-11-05_00.webp",
|
||||
alt: "N5 Blaster v1 made from an 8-sided cylinder",
|
||||
},
|
||||
{
|
||||
src: "2023-11-03_01.webp",
|
||||
alt: "N5 Blaster v2 made from a 16-sided blaster and with additional lights on the grip",
|
||||
},
|
||||
{
|
||||
src: "2023-11-05_03.webp",
|
||||
alt: "N5 Blaster v3 with additional lights on the body",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
Here's an overview of the first model.
|
||||
|
||||
@@ -32,11 +44,22 @@ In my first attempt at creating this icon, I took a picture of the wireframed ic
|
||||
|
||||
I also continued work on the battle axe, giving it more character. It's still not close to being finished, but it's now a bit less of a rough draft.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="2023-11-01_01.webp" alt="Battle axe with a hollowed-out blade">
|
||||
<img src="2023-11-01_06.webp" alt="Battle axe with a stabilising pattern in the blade">
|
||||
<img src="2023-11-01_09.webp" alt="Battle axe with two blades">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "2023-11-01_01.webp",
|
||||
alt: "Battle axe with a hollowed-out blade",
|
||||
},
|
||||
{
|
||||
src: "2023-11-01_06.webp",
|
||||
alt: "Battle axe with a stabilising pattern in the blade",
|
||||
},
|
||||
{
|
||||
src: "2023-11-01_09.webp",
|
||||
alt: "Battle axe with two blades",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
I will admit though that I'm unsure whether I'll actually stick with the battle axe as the protagonist's main melee weapon.
|
||||
|
||||
@@ -46,10 +69,18 @@ Another idea, though more as an unlockable extra, is Derek the crowbar.
|
||||
|
||||
I also worked on the upgrade for the N5 Blaster, the N5 Cannon. Progress on that one has been a bit slow, since I have yet to figure out what kind of weapon I want the upgraded version to be.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="2023-11-12_04.webp" alt="N5 Cannon body">
|
||||
<img src="2023-11-12_02.webp" alt="N5 Cannon Body next to the N5 Blaster">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "2023-11-12_04.webp",
|
||||
alt: "N5 Cannon body",
|
||||
},
|
||||
{
|
||||
src: "2023-11-12_02.webp",
|
||||
alt: "N5 Cannon Body next to the N5 Blaster",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
And, as a bonus, here's the discarded, very-early-WIP draft I created for a rifle-type weapon. I don't think this type of weapon fits the type of game I'm making.
|
||||
|
||||
@@ -63,10 +94,18 @@ And a draft of a rocket launcher with 9 barrels! This is heavily inspired by the
|
||||
|
||||
I begun modelling my protagonist! I didn't progress far, as I currently lack a vision for where I really want my character to go in detail. I have slight ideas – inspirations are, for example, [Merc & Green from Ratchet: Gladiator](https://hero.fandom.com/wiki/Merc_and_Green), and [Denholm Reynholm](denholm.webp). I quite liked the idea of having glowing tubes on the character's back; I got the inspiration from a Blender tutorial that was randomly recommended to me one morning.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="2023-11-11_05.webp" alt="Tubes for the back of the protagonist">
|
||||
<img src="2023-11-12_01.webp" alt="Glowing tubes attached to a torso block">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "2023-11-11_05.webp",
|
||||
alt: "Tubes for the back of the protagonist",
|
||||
},
|
||||
{
|
||||
src: "2023-11-12_01.webp",
|
||||
alt: "Glowing tubes attached to a torso block",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
i love
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts">
|
||||
import Video from "$lib/video.svelte";
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
This is my final update before the next semester begins! I'm actually quite sad about this. For the past few days, I've been really motivated to work on my game. The free time that I had after I finished my last few submissions for university gave me enough room to spend significant time developing. But now that the next semester is about to begin, I fear that university will rob me of a significant amount of my time, and that I will not be able to spend the rest of my time productively.
|
||||
@@ -65,10 +66,18 @@ Something visual to intersperse the dry code explanations:
|
||||
|
||||
This is an image for a weapon I've come up recently! It's supposed to be a slow-firing but strong blaster, contrasting the rapid-firing but weaker N5 Blaster (which recently changed to an automatic firing mode). The Venom originated from sketches like this, by the way:
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img alt="A REALLY crude sketch of a blaster." src="dual_venom_sketch.webp">
|
||||
<img alt="A crude sketch of a blaster resembling the 3D model shown above." src="venom_sketch.webp">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "dual_venom_sketch.webp",
|
||||
alt: "A REALLY crude sketch of a blaster.",
|
||||
},
|
||||
{
|
||||
src: "venom_sketch.webp",
|
||||
alt: "A crude sketch of a blaster resembling the 3D model shown above.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
The bolt visible in the first sketch actually makes me consider using [the model I showed off recently](/projects/projectn5/devlog/2024/0323/#a-new-weapon-is-in-the-works-) as the v2 for the Venom (which I would call Antidote by the way, in reference to [this song](https://youtu.be/fbafd6UV3w4)).
|
||||
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
<script lang="ts">
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
I'M BACK!!!!
|
||||
|
||||
For real this time!! I've been busy with university, then I started working on other projects including 3D prints, electronics, a different game, then got busy with university again, and now I FINALLY started work on Project N5 again. And, as I promised in [my last update](/projects/projectn5/devlog/2024/0713), it would not take me another 3 months to get back to development – in fact, I undercut that deadline by a whole 24 hours!
|
||||
@@ -26,10 +30,18 @@ There's also a blue line shooting out of the gun in the picture above. That's a
|
||||
|
||||
The N5 Blaster received an overhauled icon. The soon-to-be-implemented N5 Bomb Launcher also received its own icon!
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="n5-blaster-icon.webp" alt="N5 Blaster logo made from an icosphere and two handles">
|
||||
<img src="n5-bomb-launcher-icon.webp" alt="N5 Bomb Launcher logo made from an icosphere and waves">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "n5-blaster-icon.webp",
|
||||
alt: "N5 Blaster logo made from an icosphere and two handles",
|
||||
},
|
||||
{
|
||||
src: "n5-bomb-launcher-icon.webp",
|
||||
alt: "N5 Bomb Launcher logo made from an icosphere and waves",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
I changed the icosphere by tracing its 3D counterpart (the ball inside the N5 Blaster's glass tube) from a different point of view. It wasn't symmetrical before – it is now.
|
||||
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
<script lang="ts">
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
I have lots progress to share!!
|
||||
|
||||
First things first: Laura is, unlike I promised before, not yet finished. However, I have made *so much* progress in the past few weeks that I just wanted to get out already. Here's the current iteration of Laura:
|
||||
@@ -36,17 +40,34 @@ Modelling hair has proven... challenging. What style to go with? What modelling
|
||||
|
||||
The first try (seen above) was using the technique from the SELS video – selecting faces from the character's head, duplicating them, separating them into their own mesh, changing the scale, adding a solidify modifier, and then adding faces. This... worked, but I didn't like the results. And I tried quite a few styles.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="laura-hair-flat-1.webp" alt="White hair with middle split">
|
||||
<img src="laura-hair-flat-2.webp" alt="White hair with spiky bangs">
|
||||
<img src="laura-hair-flat-3.webp" alt="White hair with spiky ends">
|
||||
</div>
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="laura-hair-flat-4.webp" alt="Brown hair with middle split, flowing behind the character's ears">
|
||||
<img src="laura-hair-flat-5.webp" alt="Brown hair with middle split and divided at the ears">
|
||||
<img src="laura-hair-flat-6.webp" alt="Brown hair with big bangs">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "laura-hair-flat-1.webp",
|
||||
alt: "White hair with middle split",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-flat-2.webp",
|
||||
alt: "White hair with spiky bangs",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-flat-3.webp",
|
||||
alt: "White hair with spiky ends",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-flat-4.webp",
|
||||
alt: "Brown hair with middle split, flowing behind the character's ears",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-flat-5.webp",
|
||||
alt: "Brown hair with middle split and divided at the ears",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-flat-6.webp",
|
||||
alt: "Brown hair with big bangs",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
It always looked too flat, too shapeless, too boring, wrong cuts. It just didn't work.
|
||||
|
||||
@@ -54,19 +75,35 @@ Next up: a technique shown in these two videos: [Blender: How to Make HAIR, Full
|
||||
|
||||
Essentially, you create a curve and a circle, use the circle's shape as a profile for the curve, then change the circle's shape as well as the position and scale of the curve's vertices to create individual hair strands. Shown well in the two videos linked above, this can look pretty amazing! Only one issue: I'm creating a **game** character, and this technique is quite expensive, as it creates a lot of polygons for all the individual hair strands and the detail that goes into them. To mitigate this, I lowered the resolution of the profiling and used only a few curves to create an entire head's worth of hair. This looked a little like this:
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="laura-hair-curves.webp" alt="Toon shaded view at the character with brown hair">
|
||||
<img src="laura-hair-curves-2.webp" alt="Side view at the character without special shading">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "laura-hair-curves.webp",
|
||||
alt: "Toon shaded view at the character with brown hair",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-curves-2.webp",
|
||||
alt: "Side view at the character without special shading",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
This hair mesh originally (left picture) consisted of three parts: two curves at the front (left/right) and one in the back. This... was okay, but scaling the curves made the hair look weird. Thinner strands, especially when there's only a few of them, made them look more like dreads, and scaling up the vertices to large scales, as seen in the front near the top of the head, makes the hair look as if it's ballooning. Getting the shape right was a mess too: using only a single curve in the back meant that I had exactly one curve to cover quite literally half the head, and making sure that this singular strand of hair covered the head stretching from one ear to another was a pain. I tried using five curves (right picture), so that I have three in the back, but it didn't improve anything.
|
||||
|
||||
I then went *back* to the first method of scaling up faces from the head, with more knowledge and several tries behind me, and you know what? It actually kind of worked out.
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="laura-hair-flat-new-2.webp" alt="Front view at the character with a green headband and bangs">
|
||||
<img src="laura-hair-flat-new-3.webp" alt="Front view at the character with a green headband and middle-split hair">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "laura-hair-flat-new-2.webp",
|
||||
alt: "Front view at the character with a green headband and bangs",
|
||||
},
|
||||
{
|
||||
src: "laura-hair-flat-new-3.webp",
|
||||
alt: "Front view at the character with a green headband and middle-split hair",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
The right picture is the current iteration of Laura's hair. I added a head band because I thought it looked nice, though that detail is not final.
|
||||
|
||||
@@ -98,10 +135,18 @@ Influenced while I was researching a tangential topic on a Blender forum, I read
|
||||
|
||||
To illustrate my point (get it?), here are some pictures. Left is in T-pose, right is in A-pose:
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="deform-1.webp" alt="Diagram showing a t-posing character, with the text 'large angle, thus more deformation'">
|
||||
<img src="deform-2.webp" alt="Diagram showing an a-posing character, with the text 'smaller angle, thus less deformation'">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "deform-1.webp",
|
||||
alt: "Diagram showing a t-posing character, with the text 'large angle, thus more deformation'",
|
||||
},
|
||||
{
|
||||
src: "deform-2.webp",
|
||||
alt: "Diagram showing an a-posing character, with the text 'smaller angle, thus less deformation'",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
However, after watching [this video on bind poses](https://youtu.be/FXfc4Gyw6I0) by Doodley, it seems that... it doesn't really matter. Whether you use the T-pose, the A-pose, the lovingly-called hug-pose, or anything else really depends on what you plan to do with your character. Since Laura will mostly wield guns and keep her arms fairly low for most of the game, I decided to change Laura's modelling pose to an A-pose, with her arms pointed 30 degrees downward.
|
||||
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
<script lang="ts">
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
While I've been busy working on another game with friends lately, I've managed to almost completely finish Laura. Here's what I've achieved!
|
||||
|
||||
## Visual Personality Adjustment
|
||||
|
||||
As promised before, I've worked on Laura's head a bit more. Her full face shield has been replaced with a face mask / respirator covering only the bottom half of her face. Also, I finally got the hair into a state I'm actually happy with. Here's a comparison:
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="../../2024/1222/laura-hair-flat-new-3.webp" alt="The old protagonist's head with green clothing and full-face mask">
|
||||
<img src="laura-head-new.webp" alt="The new protagonist Laura's head with red clothing, a half-face mask. The character now has a brown left eye, a mechanical right eye, and eyebrows, as well as bangs">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "../../2024/1222/laura-hair-flat-new-3.webp",
|
||||
alt: "The old protagonist's head with green clothing and full-face mask",
|
||||
},
|
||||
{
|
||||
src: "laura-head-new.webp",
|
||||
alt: "The new protagonist Laura's head with red clothing, a half-face mask. The character now has a brown left eye, a mechanical right eye, and eyebrows, as well as bangs",
|
||||
},
|
||||
]}
|
||||
path="."
|
||||
/>
|
||||
|
||||
The eyes took some work to get right, but I'm pretty happy with the current result. They're not proper eyeballs, but instead they're embedded into the head, which visually isn't significant because the flat shading would hide these details anyway. She has a brown left eye with a small sparkle, as well as a right eye replacement. This implies that Laura sustained further damage to the right side of her body, which necessitated replacement of her eye in addition to her right arm.
|
||||
|
||||
@@ -56,17 +69,34 @@ I've been thinking of adding an option (perhaps as a cheat code) to change her o
|
||||
|
||||
## Some Funny Pictures
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="ok.webp" alt="An OK hand">
|
||||
<img src="dance.webp" alt="Laura flailing her arms">
|
||||
<img src="naruto.webp" alt="Laura naturo-running">
|
||||
</div>
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="shock.webp" alt="Laura's face looking shocked">
|
||||
<img src="reprehension.webp" alt="Laura's face looking astonished">
|
||||
<img src="disgust.webp" alt="Laura's face looking disgusted">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "ok.webp",
|
||||
alt: "An OK hand",
|
||||
},
|
||||
{
|
||||
src: "dance.webp",
|
||||
alt: "Laura flailing her arms",
|
||||
},
|
||||
{
|
||||
src: "naruto.webp",
|
||||
alt: "Laura naturo-running",
|
||||
},
|
||||
{
|
||||
src: "shock.webp",
|
||||
alt: "Laura's face looking shocked",
|
||||
},
|
||||
{
|
||||
src: "reprehension.webp",
|
||||
alt: "Laura's face looking astonished",
|
||||
},
|
||||
{
|
||||
src: "disgust.webp",
|
||||
alt: "Laura's face looking disgusted",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
## The Future of this Devlog
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts">
|
||||
import Video from "$lib/video.svelte";
|
||||
import ImageRow from "$lib/media/image-row.svelte";
|
||||
</script>
|
||||
|
||||
I've been making a lot of progress in a lot of different areas, so I won't be able to elaborate on every little detail, but I'll focus on more major things. Excited to share what I've been working on!
|
||||
@@ -84,12 +85,26 @@ I also fixed a long-running bug where the `DirectionalLight3D` of this preview w
|
||||
|
||||
### Please Appreciate These Wonderful Temporary Weapon Icons
|
||||
|
||||
<div class="horizontally-centre-aligned">
|
||||
<img src="104-icon.webp" alt="An icon for a rocket launcher that looks like a sperm">
|
||||
<img src="106-icon.webp" alt="A primitive flame as an icon for a flame thrower">
|
||||
<img src="107-icon.webp" alt="A hand-drawn crosshair serving as an icon for a rifle">
|
||||
<img src="108-icon.webp" alt="The words 'VENOM' as an icon for the weapon of that name">
|
||||
</div>
|
||||
<ImageRow
|
||||
images={[
|
||||
{
|
||||
src: "104-icon.webp",
|
||||
alt: "An icon for a rocket launcher that looks like a sperm",
|
||||
},
|
||||
{
|
||||
src: "106-icon.webp",
|
||||
alt: "A primitive flame as an icon for a flame thrower",
|
||||
},
|
||||
{
|
||||
src: "107-icon.webp",
|
||||
alt: "A hand-drawn crosshair serving as an icon for a rifle",
|
||||
},
|
||||
{
|
||||
src: "108-icon.webp",
|
||||
alt: "The words 'VENOM' as an icon for the weapon of that name",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
## Grand Code Overhaul
|
||||
|
||||
|
||||
Reference in New Issue
Block a user