<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://www.stfandersson.com/work-samples-lootbox-worktest-gallery</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2025-09-20</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1627894320501-MU7XWAK5RY1SDC5L1WXI/lootbox.gif</image:loc>
      <image:title>Work Samples: Lootbox Worktest (Gallery) - Sequence</image:title>
      <image:caption>Here is the whole lootbox sequence from start to finish. I wanted to focus on the animations, shaders and particles, so most of the assets are just random images found online that I’ve modified to fit the style better. There are three tiers of gems with varying rarity (though only two are visible here) and this also affects the particles as they slam into the ground.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1627894320501-MU7XWAK5RY1SDC5L1WXI/lootbox.gif</image:loc>
      <image:title>Work Samples: Lootbox Worktest (Gallery) - Sequence</image:title>
      <image:caption>Here is the whole lootbox sequence from start to finish. I wanted to focus on the animations, shaders and particles, so most of the assets are just random images found online that I’ve modified to fit the style better. There are three tiers of gems with varying rarity (though only two are visible here) and this also affects the particles as they slam into the ground.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1627895832582-NIY4HORUQ3BI5M2AECRB/lootbox.gif</image:loc>
      <image:title>Work Samples: Lootbox Worktest (Gallery) - Transition Shader</image:title>
      <image:caption>Here’s me triggering the reload transition a couple of times in a row. When the sequence is reloaded, a grabpass is taken of the whole screen and everything in the scene is reset to its initial state. Using a meteor-texture with a baked-in gradient, I check whether each pixel on the screen should be inside or outside a falling meteor; if inside, the gradient and a random color is applied; if outside, the grabpass is applied.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.stfandersson.com/work-samples-gorn-2</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2025-09-20</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1757164411661-LWW8YTU77KKQIW6SAKQC/image-asset.gif</image:loc>
      <image:title>Work Samples: GORN 2, Ranged Weapons - Bow and Arrows</image:title>
      <image:caption>To stay true to the original GORN, I played around with its Bow a lot before-hand and tried to copy it in most ways and you can see me exploring the functionalities in the .gif: - The bow uses the Z-axis rotation of one hand, and the direction to the other hand for the X- and Y-axes for its own rotation - The bow spawns with arrows attached to the frame - The player can remove and replace the attached arrows - Pulling the string changes the strength of the shot - Not pulling the string far enough cancels the shot - Arrows can be retrieved from the environment - Arrows can also be used as stabbing weapons - Arrows can even be used as throwing weapons! - The bow can also function as a bludgeoning weapon, if you’re out-of-ammo</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1757164411661-LWW8YTU77KKQIW6SAKQC/image-asset.gif</image:loc>
      <image:title>Work Samples: GORN 2, Ranged Weapons - Bow and Arrows</image:title>
      <image:caption>To stay true to the original GORN, I played around with its Bow a lot before-hand and tried to copy it in most ways and you can see me exploring the functionalities in the .gif: - The bow uses the Z-axis rotation of one hand, and the direction to the other hand for the X- and Y-axes for its own rotation - The bow spawns with arrows attached to the frame - The player can remove and replace the attached arrows - Pulling the string changes the strength of the shot - Not pulling the string far enough cancels the shot - Arrows can be retrieved from the environment - Arrows can also be used as stabbing weapons - Arrows can even be used as throwing weapons! - The bow can also function as a bludgeoning weapon, if you’re out-of-ammo</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1757168353184-E5GEOSGDW2IHEL2PCV8R/Test+-+NPC+Aiming.gif</image:loc>
      <image:title>Work Samples: GORN 2, Ranged Weapons - Rokibes</image:title>
      <image:caption>Getting physically-based NPCs to hit the player with a physically-based ranged weapon may have been one of the greatest challenges of my career! Thankfully, this being a comedic game, it didn’t matter if they did it well or with any grace. My goal was simply to get the accuracy above 50% - which would likely be too deadly for the player - and scale it down from there. I combined several techniques to achieve this: - I manipulate the angle at which the Rokibe will face his target to adjust his foot placement - I added an IK target that allows me to control the rotation of the torso, for smaller adjustments - I added a second IK target that pulls the left hand towards a line drawn from the right hand to the target - I added delays to the AI behavior to give the Rokibe time for any wobbling to settle down a bit - Finally, I added an auto-aim system that takes the actual firing vector, checks if it’s pointed in the general direction of the target, and if so, moves the vector even closer. And, it worked, for stationary targets at least! During gameplay, the Archers can be extremely deadly and so encourage the player to keep moving and often hit their buddies by accident, which causes them to fight amongst themselves. They’re great! In the .gif you can see part of the aiming process. The yellow line is the direction to the player, the blue line is the non-adjusted forward vector of the arrow and the green line is the final auto-aimed vector; the direction the arrow will actually travel in.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.stfandersson.com/work-samples</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <lastmod>2026-03-25</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1564731202901-UB19J6OXFF1OBYL7VRKR/spacebanner.png</image:loc>
      <image:title>Work Samples</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1564731724292-9J4RANUGAGNH3EJNX31Y/profile_space.png</image:loc>
      <image:title>Work Samples</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.stfandersson.com/aboutme</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2025-09-20</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/1564731202901-UB19J6OXFF1OBYL7VRKR/spacebanner.png</image:loc>
      <image:title>About Me</image:title>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/5cbd9a3811f78407ead1ab38/0f6d0756-1b95-4204-b33b-a253e88037ff/PXL_20240729_101722305.MP%7E3.jpg</image:loc>
      <image:title>About Me</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.stfandersson.com/test</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2025-09-08</lastmod>
  </url>
</urlset>

