{
  "profile": {
    "en_name": "Liam Armitage",
    "jp_kanji": "琉煌・庵三灯寺",
    "jp_furigana": "リアム・アーミテージ",
    "title": {
      "en": "VFX & Technical Artist",
      "ja": "VFX・テクニカルアーティスト",
      "zh": "视效与技术美术师"
    },
    "bio": {
      "en": "Associate VFX Artist at Respawn. I build performant real-time effects that are tools-forward and frame-budget aware.",
      "ja": "Respawn所属のアソシエイトVFXアーティスト。ツール重視でフレームバジェットを意識した、高パフォーマンスなリアルタイムエフェクトを制作しています。",
      "zh": "Respawn副视效美术师，专注于打造工具优先、帧预算可控的高性能实时特效。"
    },
    "icon": "/assets/images/headshot.jpg",
    "email": "liamryana@gmail.com",
    "links": {
      "linkedin": "https://www.linkedin.com/in/liamarmitage/",
      "github": "https://github.com/PukekoKiwi",
      "resume": "/assets/pdf/Resume_Liam_Armitage.pdf"
    },
    "skills": [
      "UE5 · Niagara",
      "HLSL/GLSL",
      "Houdini",
      "EmberGen",
      "Adobe Substance"
    ]
  },
  "projects": [
    {
      "id": "jedi",
      "flagship": true,
      "title": {
        "en": "Star Wars Jedi Series",
        "ja": "スター・ウォーズ ジェダイ シリーズ",
        "zh": "星球大战绝地系列"
      },
      "role": {
        "en": "Associate VFX Artist",
        "ja": "アソシエイトVFXアーティスト",
        "zh": "副视效美术师"
      },
      "period": "2024-Present",
      "summary": {
        "en": "Associate VFX Artist on the Star Wars Jedi series at Respawn Entertainment, contributing to Force abilities, combat polish, traversal and environment VFX under strict AAA frame budgets.",
        "ja": "Respawn EntertainmentのStar Wars JediシリーズにてアソシエイトVFXアーティストを務め、AAAタイトルの厳格なフレーム予算のもと、フォース能力、戦闘ポリッシュ、移動系および環境VFXを制作しています。",
        "zh": "在Respawn Entertainment担任《星球大战 绝地》系列的副视效美术师。在AAA帧预算的严格限制下，参与原力技能、战斗打磨、移动与环境视效的制作。"
      },
      "tech": [
        "UE5",
        "Niagara",
        "Houdini",
        "HLSL",
        "Material Editor",
        "Perforce"
      ],
      "beats": {
        "en": [
          "Joined the Jedi team as VFX Artist Intern (May–August 2024), returned as Associate VFX Artist in June 2025",
          "Contributing to Force abilities, combat polish, traversal and environment VFX",
          "Working within AAA console frame budgets in Unreal Engine with Niagara and Houdini",
          "Carrying forward the visual language established across <em>Fallen Order</em> (2019) and <em>Survivor</em> (2023)"
        ],
        "ja": [
          "2024年5月〜8月にVFXアーティストインターンとしてJediチームに参加し、2025年6月にアソシエイトVFXアーティストとして復帰",
          "フォース能力、戦闘ポリッシュ、移動系および環境VFXを担当",
          "Unreal EngineでNiagaraとHoudiniを用い、AAAコンソール向けの厳格なフレーム予算内で制作",
          "<em>Fallen Order</em>（2019）と<em>Survivor</em>（2023）で確立されたビジュアルランゲージを継承"
        ],
        "zh": [
          "2024年5月至8月以视效美术实习生身份加入Respawn Entertainment的Jedi团队，并于2025年6月以副视效美术师身份重返团队",
          "参与原力技能、战斗打磨、移动与环境视效",
          "在Unreal Engine中运用Niagara与Houdini，严守AAA主机帧预算",
          "延续<em>Fallen Order</em>（2019）与<em>Survivor</em>（2023）确立的视觉语言"
        ]
      },
      "links": [
        {
          "label": {
            "en": "Fallen Order · Steam",
            "ja": "Fallen Order・Steam",
            "zh": "Fallen Order・Steam"
          },
          "href": "https://store.steampowered.com/app/1172380/STAR_WARS_Jedi_Fallen_Order/"
        },
        {
          "label": {
            "en": "Fallen Order · Trailer",
            "ja": "Fallen Order・トレーラー",
            "zh": "Fallen Order・预告片"
          },
          "href": "https://www.youtube.com/watch?v=0GLbwkfhYZk"
        },
        {
          "label": {
            "en": "Survivor · Steam",
            "ja": "Survivor・Steam",
            "zh": "Survivor・Steam"
          },
          "href": "https://store.steampowered.com/app/1774580/STAR_WARS_Jedi_Survivor/"
        },
        {
          "label": {
            "en": "Survivor · Trailer",
            "ja": "Survivor・トレーラー",
            "zh": "Survivor・预告片"
          },
          "href": "https://www.youtube.com/watch?v=VRaobDJjiec"
        }
      ],
      "sections": [
        {
          "title": {
            "en": "Role & Contribution",
            "ja": "役割と貢献",
            "zh": "角色与贡献"
          },
          "body": {
            "en": "I joined Respawn Entertainment's Jedi team as a <strong>VFX Artist Intern</strong> from May to August 2024, then returned to the team as <strong>Associate VFX Artist</strong> in June 2025. My work spans real-time effects across the series (Force abilities, combat polish, traversal, and environment VFX) while meeting the strict frame budgets AAA console releases demand.",
            "ja": "2024年5月から8月まで<strong>VFXアーティストインターン</strong>としてRespawn EntertainmentのJediチームに参加し、2025年6月に<strong>アソシエイトVFXアーティスト</strong>としてチームへ復帰しました。AAAコンソールタイトルが要求する厳格なフレーム予算のもと、フォース能力、戦闘ポリッシュ、移動系、環境VFXなど、シリーズ全体にわたるリアルタイムエフェクトワークに取り組んでいます。",
            "zh": "2024年5月至8月以<strong>视效美术实习生</strong>身份加入Respawn Entertainment的Jedi团队，2025年6月以<strong>副视效美术师</strong>身份重返团队。在AAA主机作品所要求的严格帧预算下，参与系列各类实时视效工作，涵盖原力技能、战斗打磨、移动与环境视效。"
          },
          "body2": {
            "en": "Specifics of my current work fall under NDA, though the franchise's existing entries, <em>Star Wars Jedi: Fallen Order</em> (2019) and <em>Star Wars Jedi: Survivor</em> (2023), establish the visual language and player expectations the team is building on.",
            "ja": "現在の業務内容の詳細はNDAの対象となりますが、シリーズの既存タイトルである<em>スター・ウォーズ ジェダイ：フォールン・オーダー</em>（2019）と<em>スター・ウォーズ ジェダイ：サバイバー</em>（2023）が、チームが構築を続けるビジュアルランゲージとプレイヤー体験の基盤となっています。",
            "zh": "当前工作的具体内容受NDA约束。系列既有作品<em>星球大战 绝地：陨落的武士团</em>（2019）与<em>星球大战 绝地：幸存者</em>（2023）已奠定视觉语言与玩家期待，团队正在此基础上继续构建。"
          }
        },
        {
          "title": {
            "en": "The Series",
            "ja": "シリーズ作品",
            "zh": "系列作品"
          },
          "items": [
            {
              "label": {
                "en": "Star Wars Jedi: Fallen Order (2019)",
                "ja": "スター・ウォーズ ジェダイ：フォールン・オーダー（2019）",
                "zh": "星球大战 绝地：陨落的武士团（2019）"
              },
              "text": {
                "en": "Cal Kestis's debut, a Souls-leaning lightsaber action game set in the wake of Order 66. (<a href=\"https://store.steampowered.com/app/1172380/STAR_WARS_Jedi_Fallen_Order/\" target=\"_blank\" rel=\"noreferrer\">Steam</a> · <a href=\"https://www.youtube.com/watch?v=0GLbwkfhYZk\" target=\"_blank\" rel=\"noreferrer\">Trailer</a>)",
                "ja": "カル・ケスティスのデビュー作。オーダー66の余波を舞台にした、ソウルライク寄りのライトセーバーアクション。（<a href=\"https://store.steampowered.com/app/1172380/STAR_WARS_Jedi_Fallen_Order/\" target=\"_blank\" rel=\"noreferrer\">Steam</a>・<a href=\"https://www.youtube.com/watch?v=0GLbwkfhYZk\" target=\"_blank\" rel=\"noreferrer\">トレーラー</a>）",
                "zh": "卡尔·凯斯帝斯的首作。故事发生于66号密令余波之中，偏魂系风格的光剑动作游戏。（<a href=\"https://store.steampowered.com/app/1172380/STAR_WARS_Jedi_Fallen_Order/\" target=\"_blank\" rel=\"noreferrer\">Steam</a>・<a href=\"https://www.youtube.com/watch?v=0GLbwkfhYZk\" target=\"_blank\" rel=\"noreferrer\">预告片</a>）"
              }
            },
            {
              "label": {
                "en": "Star Wars Jedi: Survivor (2023)",
                "ja": "スター・ウォーズ ジェダイ：サバイバー（2023）",
                "zh": "星球大战 绝地：幸存者（2023）"
              },
              "text": {
                "en": "The expanded sequel with five lightsaber stances, larger semi-open biomes, and a darker arc for Cal five years later. (<a href=\"https://store.steampowered.com/app/1774580/STAR_WARS_Jedi_Survivor/\" target=\"_blank\" rel=\"noreferrer\">Steam</a> · <a href=\"https://www.youtube.com/watch?v=VRaobDJjiec\" target=\"_blank\" rel=\"noreferrer\">Trailer</a>)",
                "ja": "拡張された続編。5種のライトセーバー型、より広大なセミオープンバイオーム、そして5年後のカルが歩むより暗いストーリー。（<a href=\"https://store.steampowered.com/app/1774580/STAR_WARS_Jedi_Survivor/\" target=\"_blank\" rel=\"noreferrer\">Steam</a>・<a href=\"https://www.youtube.com/watch?v=VRaobDJjiec\" target=\"_blank\" rel=\"noreferrer\">トレーラー</a>）",
                "zh": "扩展续作。五种光剑姿态、更大的半开放生物群落，以及五年后卡尔更为黑暗的故事弧线。（<a href=\"https://store.steampowered.com/app/1774580/STAR_WARS_Jedi_Survivor/\" target=\"_blank\" rel=\"noreferrer\">Steam</a>・<a href=\"https://www.youtube.com/watch?v=VRaobDJjiec\" target=\"_blank\" rel=\"noreferrer\">预告片</a>）"
              }
            }
          ]
        },
        {
          "title": {
            "en": "Series Visuals",
            "ja": "シリーズビジュアル",
            "zh": "系列视觉"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/jedi/animatedjen1.jpg",
              "w": 1920,
              "h": 1082,
              "caption": {
                "en": "<em>Survivor</em>, photo-mode capture by AnimatedJen",
                "ja": "<em>サバイバー</em>、フォトモードキャプチャ：AnimatedJen",
                "zh": "<em>幸存者</em>，AnimatedJen 摄影模式截图"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/jedi/animatedjen2.jpg",
              "w": 1920,
              "h": 1080,
              "caption": {
                "en": "<em>Survivor</em>, photo-mode capture by AnimatedJen",
                "ja": "<em>サバイバー</em>、フォトモードキャプチャ：AnimatedJen",
                "zh": "<em>幸存者</em>，AnimatedJen 摄影模式截图"
              }
            }
          ]
        }
      ],
      "thumb": "/assets/images/projects/jedi-thumb.jpg",
      "clip": "/assets/video/clips/jedi.mp4"
    },
    {
      "id": "changeling",
      "flagship": true,
      "title": {
        "en": "Changeling VR",
        "ja": "チェンジリング VR",
        "zh": "Changeling VR"
      },
      "role": {
        "en": "Lead Technical Artist",
        "ja": "リードテクニカルアーティスト",
        "zh": "首席技术美术师"
      },
      "period": "2023",
      "summary": {
        "en": "As Lead Technical Artist (summer co-op) on Changeling VR, a 300-person, 5-year RIT PCVR narrative mystery, I drove frame rate from 2.5–10 FPS to a stable 90–120 FPS, enabling the game's Steam Early Access release.",
        "ja": "300人・5年がかりのRIT PCVRナラティブミステリー『Changeling VR』にてリードテクニカルアーティスト（夏季コープ）を担当。フレームレートを2.5〜10FPSから安定した90〜120FPSへと引き上げ、Steam Early Accessリリースを実現しました。",
        "zh": "在300人参与、历时5年打造的RIT PCVR叙事解谜作品《Changeling VR》中担任首席技术美术师（暑期合作实习）。将帧率从2.5–10 FPS提升至稳定的90–120 FPS，使游戏得以在Steam Early Access发行。"
      },
      "tech": [
        "Unity",
        "URP",
        "Shader Graph",
        "HLSL",
        "C#"
      ],
      "beats": {
        "en": [
          "Drove frame rate from 2.5–10 FPS to 90–120 FPS, meeting the bar for a shippable PCVR experience",
          "Mass LOD generation and refinement, plus replacing costly materials with performant URP alternatives",
          "Static and dynamic light auditing and optimization across multiple levels",
          "Utility shaders (outlines, dissolves, a performance-tuned Kuwahara painterly filter) and documented art pipelines"
        ],
        "ja": [
          "フレームレートを2.5〜10FPSから90〜120FPSへ引き上げ、PCVRとして出荷可能な水準を達成",
          "大量LODの生成・調整、およびコストの高いマテリアルを高性能なURP代替へ置き換え",
          "複数レベルにわたる静的・動的ライトの監査と最適化",
          "ユーティリティシェーダー（アウトライン、ディゾルブ、パフォーマンスチューニング済みKuwahara絵画フィルター）と文書化されたアートパイプラインの整備"
        ],
        "zh": [
          "将帧率从2.5–10 FPS提升至90–120 FPS，达到可发行PCVR体验的标准",
          "大批量LOD生成与调整，并以高性能URP替代品替换高消耗材质",
          "跨多个关卡的静态与动态灯光审查与优化",
          "开发实用着色器（描边、溶解、经过性能调优的Kuwahara绘画滤镜），并建立文档化的美术管线"
        ]
      },
      "links": [
        {
          "label": {
            "en": "Site",
            "ja": "サイト",
            "zh": "网站"
          },
          "href": "https://www.changelingvr.com/"
        },
        {
          "label": {
            "en": "Steam",
            "ja": "Steam",
            "zh": "Steam"
          },
          "href": "https://store.steampowered.com/app/3182270/Changeling_VR/"
        }
      ],
      "sections": [
        {
          "title": {
            "en": "Performance Optimization",
            "ja": "パフォーマンス最適化",
            "zh": "性能优化"
          },
          "body": {
            "en": "As Lead Technical Artist, I was tasked with the asset and VFX optimization work that took the game from 2.5–10 FPS to a stable 90–120 FPS, a hard requirement for any viable PCVR experience. My contributions spanned mass LOD generation and refinement, auditing and swapping costly materials for performant URP alternatives, and static and dynamic light optimization across multiple levels, setting standards for the broader team to follow.",
            "ja": "リードテクニカルアーティストとして、ゲームを2.5〜10FPSから安定した90〜120FPSへと押し上げるアセットおよびVFX最適化を任されました。PCVRとして成立させるための必須条件です。大量LODの生成と調整、コストの高いマテリアルの高性能なURP代替への置き換え、複数レベルにわたる静的・動的ライトの最適化に取り組み、チーム全体が従うべき基準を策定しました。",
            "zh": "作为首席技术美术师，负责将游戏从2.5–10 FPS推向稳定90–120 FPS的资产与VFX优化工作——这是任何可行PCVR体验的硬性门槛。工作涵盖大批量LOD生成与调整、审查并以高性能URP替代品替换高消耗材质，以及跨多个关卡的静态与动态灯光优化，为整个团队制定了统一执行标准。"
          }
        },
        {
          "title": {
            "en": "Shaders & Art Pipeline",
            "ja": "シェーダーとアートパイプライン",
            "zh": "着色器与美术管线"
          },
          "body": {
            "en": "I developed a suite of utility shaders (outlines, dissolves, and a performance-tuned Kuwahara painterly filter) that kept the game's distinctive aesthetic intact within tight VR frame budgets. I also established and documented sustainable art pipelines for the team, preserving artistic integrity while bolstering technical performance.",
            "ja": "アウトライン、ディゾルブ、パフォーマンスチューニング済みKuwahara絵画フィルターなど、ユーティリティシェーダー群を開発。厳しいVRのフレーム予算内でゲーム独自の美学を保ちました。持続可能なアートパイプラインを確立・文書化し、芸術的整合性と技術的パフォーマンスを両立させました。",
            "zh": "开发了一套实用着色器——描边、溶解，以及经过性能调优的Kuwahara绘画滤镜——在严苛的VR帧预算内保留游戏独特的美学风格。同时为团队建立并文档化了可持续的美术管线，在提升技术表现的同时保障艺术完整性。"
          }
        },
        {
          "title": {
            "en": "About Changeling VR",
            "ja": "Changeling VRについて",
            "zh": "关于Changeling VR"
          },
          "body": {
            "en": "Changeling VR is a narrative mystery where 'players' step into the thoughts and memories of everyone they touch, unraveling what's wrong with a family's baby across seven distinct levels. Five years in the making with 300+ contributors from RIT's School of Interactive Games and Media, the game is published on Steam Early Access through RIT's MAGIC Spell Studios.",
            "ja": "『Changeling VR』は、触れた人物の思考と記憶へ入り込み、ある家族の赤ちゃんに何が起きているのかを7つのレベルにわたって解き明かすナラティブミステリーです。RITのインタラクティブゲーム・メディア学部から300人以上が参加し、5年をかけて制作されました。RITのMAGIC Spell StudiosよりSteam Early Accessにて公開されています。",
            "zh": "《Changeling VR》是一款叙事解谜游戏，玩家进入所触之人的思想与记忆，在七个独特关卡中揭开一个家庭婴儿身上的异常之谜。由RIT互动游戏与媒体学院300余名成员历时5年打造，通过RIT旗下MAGIC Spell Studios在Steam Early Access发行。"
          }
        },
        {
          "title": {
            "en": "Trailer",
            "ja": "トレーラー",
            "zh": "预告片"
          },
          "video": {
            "src": "/assets/video/projects/changeling/full-trailer.mp4",
            "poster": "/assets/images/projects/changeling-thumb.jpg",
            "w": 1280,
            "h": 720,
            "caption": {
              "en": "The official Changeling VR trailer.",
              "ja": "『Changeling VR』公式トレーラー。",
              "zh": "《Changeling VR》官方预告片。"
            }
          }
        },
        {
          "title": {
            "en": "Stills",
            "ja": "ゲーム画像",
            "zh": "游戏截图"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/changeling/couch-memory.jpg",
              "w": 1600,
              "h": 900,
              "caption": {
                "en": "Touching a character pulls the player into a desaturated memory of them, their iridescent ghost the only color in the room.",
                "ja": "登場人物に触れると、その脱色された記憶へと引き込まれる。虹色に輝くゴーストだけが部屋に色を残す。",
                "zh": "触碰角色会将玩家带入其去色的记忆——那道虹彩流转的虚影，是房间里唯一的颜色。"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/changeling/rocking-horse.jpg",
              "w": 1728,
              "h": 972,
              "caption": {
                "en": "A surreal dream-logic level with toys, knives, and dread.",
                "ja": "玩具、ナイフ、恐怖が入り混じる、夢の論理に支配されたシュールなレベル。",
                "zh": "一个梦境逻辑主导的超现实关卡，玩具、刀刃与恐惧交织其中。"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/changeling/street-tags.jpg",
              "w": 1920,
              "h": 1080,
              "caption": {
                "en": "A monochrome city street annotated with another character's tag-graffiti memories.",
                "ja": "別のキャラクターのタグ・グラフィティ的な記憶が書き込まれた、モノクロームの街並み。",
                "zh": "一条单色的城市街道，写满了另一位角色以涂鸦标签形式留下的记忆。"
              }
            }
          ]
        }
      ],
      "thumb": "/assets/images/projects/changeling-thumb.jpg",
      "clip": "/assets/video/clips/changeling.mp4"
    },
    {
      "id": "mushroom",
      "flagship": true,
      "title": {
        "en": "Mushroom Kid's Big Grass Sword",
        "ja": "キノコの子のくそデカ草剣",
        "zh": "蘑菇小子的超大草剑"
      },
      "role": {
        "en": "Environment / VFX / Tech Art",
        "ja": "環境・VFX・テクニカルアート",
        "zh": "环境/视效/技术美术"
      },
      "period": "2022-2024",
      "summary": {
        "en": "A narrative physics-based platformer that grew from a 48-hour jam into a Kickstarter-funded commercial release. As the Environment Artist, VFX Artist, and Technical Artist, I contributed significantly to the game's visual identity, staying with the team from the jam win through the funded Kickstarter before departing in May 2024 to join Respawn Entertainment.",
        "ja": "48時間のジャムからKickstarterで資金調達を果たした商業リリースへと成長したナラティブ物理系プラットフォーマー。環境アーティスト・VFXアーティスト・テクニカルアーティストとして、ゲームのビジュアルアイデンティティに大きく貢献しました。ジャム受賞からKickstarter成功まで携わり、2024年5月にRespawn Entertainmentへ入社するにあたりチームを離れました。",
        "zh": "从48小时Jam作品成长为Kickstarter全额资助商业发行的叙事物理横版游戏。以环境美术、视效美术与技术美术的身份，为游戏的视觉识别做出了重要贡献。从Jam获奖一路参与至Kickstarter成功，于2024年5月入职Respawn Entertainment后离开团队。"
      },
      "tech": [
        "Godot",
        "ShaderLang",
        "Aseprite",
        "Blender"
      ],
      "beats": {
        "en": [
          "Environment, VFX, and Tech Art work that makes up the bulk of the visual art in the current demo",
          "Best Visuals and Best Soundtrack at Game/Music Jam 2022, Grand Prize at RPI GameFest 2024",
          "Awarded $10,000 by the RIT Magic Maker Program to fund full production",
          "Kickstarter fully funded at $15,751 from 184 backers, with the demo live on Steam",
          "Departed May 2024 to join Respawn Entertainment as a VFX Artist Intern on the Jedi series"
        ],
        "ja": [
          "現行デモのビジュアルアートの大部分を占める環境アート・VFX・テクニカルアートを担当",
          "Game/Music Jam 2022でベストビジュアル賞・ベストサウンドトラック賞、RPI GameFest 2024でグランプリを受賞",
          "RIT Magic Maker Programより本格制作資金として10,000ドルを獲得",
          "Kickstarterで184人のバッカーから$15,751を調達し完全資金調達達成、デモはSteamで公開中",
          "2024年5月、Respawn EntertainmentのJediシリーズにVFX Artist Internとして入社するため離脱"
        ],
        "zh": [
          "环境、视效与技术美术工作，构成当前演示版视觉美术的主体",
          "荣获Game/Music Jam 2022最佳画面奖与最佳原声奖，以及RPI GameFest 2024大奖",
          "获RIT Magic Maker Program授予一万美元资金，用于正式制作",
          "Kickstarter获184位支持者共筹$15,751达成全额资助，演示版已在Steam上线",
          "2024年5月，以VFX Artist Intern身份加入Respawn Entertainment绝地系列后离开"
        ]
      },
      "links": [
        {
          "label": {
            "en": "Steam Demo",
            "ja": "Steamデモ",
            "zh": "Steam试玩版"
          },
          "href": "https://store.steampowered.com/app/2734380/Mushroom_Kids_Big_Grass_Sword_Demo/"
        },
        {
          "label": {
            "en": "Steam",
            "ja": "Steam",
            "zh": "Steam"
          },
          "href": "https://store.steampowered.com/app/2734360/Mushroom_Kids_Big_Grass_Sword/"
        },
        {
          "label": {
            "en": "Kickstarter",
            "ja": "Kickstarter",
            "zh": "Kickstarter"
          },
          "href": "https://www.kickstarter.com/projects/teambrokekids/mushroom-kids-big-grass-sword"
        },
        {
          "label": {
            "en": "itch.io",
            "ja": "itch.io",
            "zh": "itch.io"
          },
          "href": "https://fumpledump.itch.io/sword-of-the-morel"
        }
      ],
      "sections": [
        {
          "title": {
            "en": "Role & Contribution",
            "ja": "役割と貢献",
            "zh": "角色与贡献"
          },
          "body": {
            "en": "I joined as <strong>Background and Asset Artist</strong> during the 2022 game jam, developing the pixel art environments that defined the game's visual tone, the look that ultimately won the team Best Visuals.",
            "ja": "2022年のゲームジャムに<strong>背景・アセットアーティスト</strong>として参加し、ゲームのビジュアルトーンを決定づけるピクセルアート環境を制作しました。この画作りが、最終的にチームのベストビジュアル賞受賞へとつながりました。",
            "zh": "2022年游戏Jam期间以<strong>背景与美术资产制作师</strong>身份加入，开发了奠定游戏视觉基调的像素美术环境，正是这一视觉最终为团队赢得了最佳画面奖。"
          },
          "body2": {
            "en": "When the game entered funded production, I stepped into <strong>Environment Artist, VFX Artist, and Technical Artist</strong> roles, developing Godot shaders (god rays, fire effects, and post-processing) that carry through to the current demo. I left the team in May 2024 upon joining Respawn Entertainment, though I continued contributing background art and stayed close with the team through the Kickstarter launch.",
            "ja": "資金調達を経て本格制作フェーズに入ってからは<strong>環境アーティスト・VFXアーティスト・テクニカルアーティスト</strong>を兼任し、Godotでゴッドレイ、炎エフェクト、ポストプロセスなどのシェーダーを開発しました。これらは現行のデモにも受け継がれています。2024年5月にRespawn Entertainmentへ入社するにあたりチームを離れましたが、その後も背景アートの提供を続け、Kickstarterローンチまでチームと密に連携しました。",
            "zh": "游戏进入资助制作阶段后，转任<strong>环境美术、视效美术与技术美术</strong>，在Godot中开发了体积光、火焰效果与后处理着色器，这些成果延续至当前演示版。2024年5月加入Respawn Entertainment后离开团队，但仍持续提供背景美术，并在Kickstarter启动期间与团队保持紧密协作。"
          }
        },
        {
          "title": {
            "en": "Environment Art & VFX Samples",
            "ja": "環境アート・VFXサンプル",
            "zh": "环境美术与视效样品"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/conceptart2.png",
              "w": 740,
              "h": 437,
              "caption": {
                "en": "Color scripts and palette studies",
                "ja": "カラースクリプトとパレット研究",
                "zh": "色彩脚本与调色板研究"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/conceptart.png",
              "w": 1240,
              "h": 717,
              "caption": {
                "en": "Value sketches for background art",
                "ja": "背景アートの明暗スケッチ",
                "zh": "背景美术明暗草图"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/godrays.gif",
              "w": 1129,
              "h": 629,
              "caption": {
                "en": "God ray shader and post-processing applied to a background",
                "ja": "背景に適用したゴッドレイシェーダーとポストプロセス",
                "zh": "应用于背景的体积光着色器与后处理"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/fire1.gif",
              "w": 800,
              "h": 521,
              "caption": {
                "en": "Fire shader, early test",
                "ja": "炎シェーダー、初期テスト",
                "zh": "火焰着色器，初期测试"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/fire2.gif",
              "w": 694,
              "h": 355,
              "caption": {
                "en": "Fire shader, mid progress",
                "ja": "炎シェーダー、中間進捗",
                "zh": "火焰着色器，中期进展"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/fire3.gif",
              "w": 699,
              "h": 418,
              "caption": {
                "en": "Fire shader, final",
                "ja": "炎シェーダー、最終版",
                "zh": "火焰着色器，最终版"
              }
            }
          ]
        },
        {
          "title": {
            "en": "Awards & Recognition",
            "ja": "受賞と評価",
            "zh": "获奖与荣誉"
          },
          "body": {
            "en": "The jam build won <strong>Best Visuals</strong> and <strong>Best Soundtrack</strong> at Game/Music Jam 2022, receiving high praise at the 2023 RIT Student Game Showcase and Expo. The production build then took home the <strong>Grand Prize at RPI's GameFest 2024</strong>, validating the leap from jam project to full commercial game.",
            "ja": "ジャム版はGame/Music Jam 2022で<strong>ベストビジュアル賞</strong>と<strong>ベストサウンドトラック賞</strong>を受賞し、2023年のRIT Student Game Showcase and Expoでも高い評価を得ました。制作版はその後<strong>RPI GameFest 2024でグランプリ</strong>を獲得し、ジャム作品から本格的な商業ゲームへの飛躍を証明しました。",
            "zh": "Jam版本在Game/Music Jam 2022荣获<strong>最佳画面奖</strong>与<strong>最佳原声奖</strong>，并在2023年RIT Student Game Showcase and Expo上获得高度评价。制作版随后摘得<strong>RPI GameFest 2024大奖</strong>，印证了从Jam作品迈向完整商业游戏的跨越。"
          }
        },
        {
          "title": {
            "en": "Challenges & Solutions",
            "ja": "課題と解決策",
            "zh": "挑战与解决方案"
          },
          "body": {
            "en": "The jam's time constraints and resolution mismatches between level design and my sprites posed real integration challenges. Close communication with the team kept the assets cohesive and let us ship a visually unified game under pressure.",
            "ja": "ジャム特有の時間制約に加え、レベルデザインと私のスプライトとの解像度差が実際の統合上の課題となりました。チームとの緊密なコミュニケーションによってアセットの一貫性を保ち、プレッシャーの中でも視覚的にまとまったゲームを届けることができました。",
            "zh": "Jam的时间限制，加上关卡设计与我的精灵图之间的分辨率差异，带来了实实在在的整合挑战。与团队保持紧密沟通，让美术资产始终保持统一，在压力之下仍然交付了一款视觉一致的游戏。"
          }
        },
        {
          "title": {
            "en": "From Jam to Steam",
            "ja": "ジャムからSteamへ",
            "zh": "从Jam到Steam"
          },
          "body": {
            "en": "After the RIT Magic Maker Program's $10,000 seed funding, the team established <strong>Team Broke Kids LLC</strong> and continued pushing toward a full release. The Kickstarter campaign (April to June 2024) hit its $15,000 goal with 184 backers, raising $15,751 total. A demo is live on Steam now, with the full game actively in development.",
            "ja": "RIT Magic Maker Programから10,000ドルのシード資金を得たのち、チームは<strong>Team Broke Kids LLC</strong>を設立し、フルリリースへ向けた開発を継続しました。Kickstarterキャンペーン（2024年4月〜6月）は184人のバッカーから合計$15,751を調達し、目標額$15,000を達成。デモはSteamで公開中、フルゲームは現在も鋭意開発中です。",
            "zh": "获得RIT Magic Maker Program一万美元种子资金后，团队成立了<strong>Team Broke Kids LLC</strong>，继续推进完整发行。Kickstarter活动（2024年4月至6月）从184位支持者共筹得$15,751，达成$15,000目标。演示版现已在Steam上线，完整游戏正在积极开发中。"
          }
        },
        {
          "title": {
            "en": "Game Jam Samples",
            "ja": "ジャム版サンプル",
            "zh": "Jam版样品"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/cover.png",
              "w": 630,
              "h": 500,
              "alt": "Cover art — Mica sitting on a stump with his grass sword"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_podium.png",
              "w": 267,
              "h": 167,
              "alt": "The podium where the sword is first encountered"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_cave.png",
              "w": 1261,
              "h": 288,
              "alt": "Cave background"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_house1.png",
              "w": 260,
              "h": 201,
              "alt": "Village house built next to a tree"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_house3.png",
              "w": 260,
              "h": 150,
              "alt": "Village house built in tandem with a tree"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_tree.png",
              "w": 785,
              "h": 288,
              "alt": "Large tree sprite near the end of the game"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/dirt.png",
              "w": 256,
              "h": 320,
              "alt": "Dirt tile sprites"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_house2.png",
              "w": 141,
              "h": 129,
              "alt": "Village house built inside a tree stump"
            },
            {
              "type": "image",
              "src": "/assets/images/projects/mushroom/bg_rocks.png",
              "w": 483,
              "h": 236,
              "alt": "Rock wall background sprite"
            }
          ]
        }
      ],
      "thumb": "/assets/images/projects/mushroom-thumb.jpg",
      "clip": "/assets/video/clips/mushroom.mp4"
    },
    {
      "id": "flipnote",
      "flagship": false,
      "title": {
        "en": "Flipnote Shader (Unity/HLSL)",
        "ja": "うごくメモ帳シェーダー（Unity/HLSL）",
        "zh": "Flipnote着色器（Unity/HLSL）"
      },
      "role": {
        "en": "Solo R&D",
        "ja": "個人研究開発",
        "zh": "个人研发"
      },
      "period": {
        "en": "Ongoing",
        "ja": "進行中",
        "zh": "进行中"
      },
      "summary": {
        "en": "A Unity/HLSL shader that captures Flipnote Studio's visual style, using screenspace dithering, Sobel edge detection, and palette remapping in real-time.",
        "ja": "うごくメモ帳のビジュアルスタイルをリアルタイムで再現するUnity/HLSLシェーダー。スクリーンスペースディザリング、ソーベルエッジ検出、パレットリマップを実装しました。",
        "zh": "一套Unity/HLSL着色器，实时还原Flipnote Studio的视觉风格。实现了屏幕空间抖动、Sobel边缘检测与调色板重映射。"
      },
      "tech": [
        "Unity",
        "HLSL",
        "URP",
        "C#",
        "Python"
      ],
      "beats": {
        "en": [
          "Developed a Unity shader system that recreates Flipnote Studio's distinctive visual style",
          "Used Python to generate volumetric mapping textures for screenspace dithering with the 3DS color palette",
          "Implemented depth-normal edge detection with Sobel filtering, along with pseudo-noise for a hand-drawn feel",
          "Packaged the shader as a drag-and-drop post-processing effect compatible with any URP camera"
        ],
        "ja": [
          "うごくメモ帳の特徴的なビジュアルスタイルを再現するUnityシェーダーシステムを開発しました",
          "Pythonで3DSカラーパレット向けのボリューメトリックマッピングテクスチャを生成し、スクリーンスペースディザリングに使用しました",
          "ソーベルフィルタによる深度ノーマルエッジ検出を実装し、疑似ノイズを重ねて手描き風の質感を出しました",
          "任意のURPカメラに対応するドラッグ&ドロップ式ポストプロセスエフェクトとしてパッケージ化しました"
        ],
        "zh": [
          "开发了一套Unity着色器系统，再现Flipnote Studio标志性的视觉风格",
          "使用Python生成体积映射纹理，配合3DS调色板实现屏幕空间抖动",
          "以Sobel滤波实现深度法线边缘检测，叠加伪噪声营造手绘质感",
          "打包为即拖即用的后期处理效果，兼容任意URP相机"
        ]
      },
      "links": [
        {
          "label": {
            "en": "Process Journal",
            "ja": "制作ジャーナル",
            "zh": "制作日志"
          },
          "href": "https://snowy-engine-238.notion.site/100-Days-of-Tech-Art-94e362b1607e45029b795429b6d6c4f6"
        }
      ],
      "sections": [
        {
          "title": {
            "en": "Approach to Design",
            "ja": "デザインへのアプローチ",
            "zh": "设计思路"
          },
          "body": {
            "en": "The shader design process covered the following core techniques:",
            "ja": "シェーダーのデザインでは以下の主要な技術に取り組みました。",
            "zh": "着色器设计围绕以下几项核心技术展开："
          },
          "items": [
            {
              "label": {
                "en": "Screenspace Dithering",
                "ja": "スクリーンスペースディザリング",
                "zh": "屏幕空间抖动"
              },
              "text": {
                "en": "Using Python, I generated a volumetric mapping texture that finds the nearest visually equivalent shade from the 3DS color palette, pointing to the top left corner of an 8×8 dither cell. In the shader, pixel coordinates determine position within the cell, producing the dithering effect.",
                "ja": "Pythonで、3DSカラーパレットから視覚的に最も近い色を割り出し、8×8ディザセルの左上を指すボリューメトリックマッピングテクスチャを生成しました。シェーダー内ではピクセル座標がセル内の位置を決定し、ディザリング効果が生まれます。",
                "zh": "使用Python生成体积映射纹理，从3DS调色板中找出视觉上最相近的色相，并指向8×8抖动格的左上角。着色器中由像素坐标决定其在格内的位置，从而产生抖动效果。"
              }
            },
            {
              "label": {
                "en": "Depth-Normals",
                "ja": "深度ノーマル",
                "zh": "深度法线"
              },
              "text": {
                "en": "A combination of the scene's normal map and depth map, multiplied together to create a reliable method of outlining objects close to the camera.",
                "ja": "シーンのノーマルマップと深度マップを掛け合わせ、カメラに近いオブジェクトのアウトラインを安定して抽出します。",
                "zh": "将场景法线贴图与深度贴图相乘，稳定地提取靠近相机物体的轮廓。"
              }
            },
            {
              "label": {
                "en": "Edge Detection",
                "ja": "エッジ検出",
                "zh": "边缘检测"
              },
              "text": {
                "en": "Sobel edge detection applied to the depth-normal texture, convolving a kernel across the x and y axes of the image to isolate edges.",
                "ja": "深度ノーマルテクスチャにソーベルエッジ検出を適用します。画像のx軸・y軸方向にカーネルを畳み込み、エッジを分離します。",
                "zh": "对深度法线纹理应用Sobel边缘检测。沿图像x、y轴对卷积核进行卷积，分离出边缘。"
              }
            },
            {
              "label": {
                "en": "Noise-Accented Outline",
                "ja": "ノイズを効かせたアウトライン",
                "zh": "噪声化轮廓"
              },
              "text": {
                "en": "A pseudo-random number generator displaces outline samples, adding a 'sketchy', hand-drawn feel reminiscent of Flipnote's casual low-res aesthetic.",
                "ja": "疑似乱数ジェネレータでアウトラインのサンプル位置をずらし、うごくメモ帳のゆるい低解像度感を思わせる手描き風の質感を加えます。",
                "zh": "以伪随机数生成器对轮廓采样进行位移，增添几分Flipnote随性低分辨率美学的手绘味道。"
              }
            }
          ],
          "body2": {
            "en": "Despite the challenges of interfacing with Unity's built-in functions and parsing dense documentation, with help from peers and a lot of research, I learned a ton about shader programming at the base level.",
            "ja": "Unityの組み込み関数まわりの調整や、密度の高いドキュメントの読み解きには苦労しましたが、仲間の力を借り、地道にリサーチを重ねた結果、シェーダープログラミングの基礎について本当に多くのことを学べました。",
            "zh": "对接Unity内置函数、啃厚重的文档都不轻松，靠着同伴的帮助与大量查阅，把着色器编程的底层原理扎扎实实过了一遍。"
          }
        },
        {
          "title": {
            "en": "Visualizations & Previews",
            "ja": "ビジュアライゼーションとプレビュー",
            "zh": "可视化与预览"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/flipnote/Dithered_Colormaps.png",
              "w": 1416,
              "h": 1451,
              "caption": {
                "en": "Dithered representations of different color distance models using the 3DS color palette.",
                "ja": "3DSカラーパレットを用いた、複数の色距離モデルによるディザ表現。",
                "zh": "以3DS调色板呈现的不同色距模型抖动效果。"
              }
            },
            {
              "type": "video",
              "src": "/assets/video/projects/flipnote/3DS_crosssection.mp4",
              "w": 1646,
              "h": 1076,
              "caption": {
                "en": "A visualization of the volumetric mapping texture for the 3DS color palette.",
                "ja": "3DSカラーパレット用ボリューメトリックマッピングテクスチャのビジュアライゼーション。",
                "zh": "3DS调色板体积映射纹理的可视化。"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/flipnote/edgenoise.gif",
              "w": 800,
              "h": 450,
              "caption": {
                "en": "Edge dispersion created through noise, adding to the shader's 'sketchy' quality.",
                "ja": "ノイズによって生まれるエッジの分散。シェーダーのスケッチ感を引き上げてくれます。",
                "zh": "噪声带来的边缘分散，进一步强化了着色器的手绘感。"
              }
            }
          ]
        },
        {
          "title": {
            "en": "Optimization & Future Plans",
            "ja": "最適化と今後の計画",
            "zh": "优化与后续计划"
          },
          "body": {
            "en": "I identified a few potential performance improvements, most notably that merging the 'dither palette' with the volumetric texture sampled per fragment would reduce the number of sample calls, a significant area for performance gain. I also plan to explore less computationally expensive noise functions.",
            "ja": "いくつかのパフォーマンス改善の余地が見えてきました。特にディザパレットをフラグメントごとにサンプルされるボリューメトリックテクスチャに統合すれば、サンプル呼び出し回数を大きく減らせます。今後はより計算量の軽いノイズ関数も試してみたいと考えています。",
            "zh": "已经看到几处可优化的地方，尤其是把抖动调色板并入按片段采样的体积纹理，能显著减少采样调用次数。之后也想尝试计算开销更低的噪声函数。"
          }
        },
        {
          "title": {
            "en": "Application & Integration",
            "ja": "応用と統合",
            "zh": "应用与集成"
          },
          "body": {
            "en": "The shader is packaged as a Unity package file, so feel free to drop it into any project and apply it as a post-processing effect on any URP camera.",
            "ja": "シェーダーはUnityパッケージファイルとしてまとめてあります。任意のプロジェクトにドロップし、URPカメラのポストプロセスエフェクトとしてそのまま適用できます！",
            "zh": "着色器已封装为Unity包文件，拖入任意项目后，即可作为后期处理效果应用于任意URP相机。"
          },
          "links": [
            {
              "label": {
                "en": "Download .unitypackage",
                "ja": ".unitypackageをダウンロード",
                "zh": "下载 .unitypackage"
              },
              "href": "/assets/downloads/flipnoteshader.unitypackage"
            }
          ]
        },
        {
          "title": {
            "en": "Inspiration & Learning",
            "ja": "インスピレーションと学び",
            "zh": "启发与学习"
          },
          "body": {
            "en": "This project was an invaluable learning journey for me. Super cool creators like <a href=\"https://www.youtube.com/@Acerola_t\" target=\"_blank\" rel=\"noreferrer\">Acerola</a>, <a href=\"https://www.youtube.com/@Acegikmo\" target=\"_blank\" rel=\"noreferrer\">Freya Holmér</a>, and <a href=\"https://www.ronja-tutorials.com/\" target=\"_blank\" rel=\"noreferrer\">Ronja</a> were amazing introductions to this space. A wonderful fusion of technical exploration and nostalgic aesthetic, and I'm looking forward to pushing this further!",
            "ja": "このプロジェクトはかけがえのない学びの旅になりました。<a href=\"https://www.youtube.com/@Acerola_t\" target=\"_blank\" rel=\"noreferrer\">Acerola</a>、<a href=\"https://www.youtube.com/@Acegikmo\" target=\"_blank\" rel=\"noreferrer\">Freya Holmér</a>、<a href=\"https://www.ronja-tutorials.com/\" target=\"_blank\" rel=\"noreferrer\">Ronja</a>といった素敵なクリエイターの発信は、この分野への最高の入り口でした。技術的な探求とノスタルジックな美学の融合。ここからさらに踏み込んでいくのが楽しみです！",
            "zh": "这个项目是一段珍贵的学习旅程。<a href=\"https://www.youtube.com/@Acerola_t\" target=\"_blank\" rel=\"noreferrer\">Acerola</a>、<a href=\"https://www.youtube.com/@Acegikmo\" target=\"_blank\" rel=\"noreferrer\">Freya Holmér</a>与<a href=\"https://www.ronja-tutorials.com/\" target=\"_blank\" rel=\"noreferrer\">Ronja</a>这几位创作者，是我踏入这一领域的绝佳引路人。技术探索与怀旧美学在此融合。接下来还会继续把它推得更远！"
          }
        }
      ],
      "thumb": "/assets/images/projects/flipnote-thumb.gif",
      "clip": "/assets/video/clips/flipnote.mp4"
    },
    {
      "id": "jolyne",
      "flagship": false,
      "title": {
        "en": "Jolyne's Thread (Blender GN)",
        "ja": "徐倫の糸（Blenderジオメトリノード）",
        "zh": "徐伦之线（Blender几何节点）"
      },
      "role": {
        "en": "Solo R&D",
        "ja": "個人研究開発",
        "zh": "个人研发"
      },
      "period": {
        "en": "Ongoing",
        "ja": "進行中",
        "zh": "进行中"
      },
      "summary": {
        "en": "A JoJo-inspired procedural thread system I built in Blender's Geometry Nodes, letting artists and animators generate, tweak, and style Jolyne Cujoh style threads along any Bézier spline.",
        "ja": "『ジョジョの奇妙な冒険』の空条徐倫に着想を得た、Blenderのジオメトリノードによるプロシージャルな糸システム。あらゆるベジエスプラインに沿って、徐倫スタイルの糸をアーティストやアニメーターが自在に生成・調整・スタイリングできます。",
        "zh": "以《JOJO的奇妙冒险》中空条徐伦为灵感，在Blender几何节点中构建的程序化线条系统。让美术与动画师能够沿任意贝塞尔样条生成、调整并定制徐伦风格的线条效果。"
      },
      "tech": [
        "Blender",
        "Geometry Nodes",
        "Python"
      ],
      "beats": {
        "en": [
          "Built a fully procedural thread asset in Geometry Nodes that generates dynamically along any Bézier spline",
          "Exposed artist-facing controls for radius, graphic fidelity, text positioning, spacing, rotation, scaling, and animated noise values",
          "Developed a dynamic mesh that adapts in real-time to spline changes, with camera-aware thickness for consistent readability"
        ],
        "ja": [
          "ジオメトリノードで、あらゆるベジエスプラインに沿って動的に生成される完全プロシージャルな糸アセットを構築しました。",
          "半径、グラフィックの精細さ、テキストの位置、間隔、回転、スケール、アニメーションノイズ値まで、アーティスト向けのコントロールを一通り公開しました。",
          "スプラインの変更にリアルタイムで追従し、カメラに応じた太さで一貫した視認性を保つ動的メッシュを制作しました。"
        ],
        "zh": [
          "在几何节点中构建了完全程序化的线条资产，可沿任意贝塞尔样条动态生成。",
          "对外开放了半径、图形精度、文字定位、间距、旋转、缩放与动画噪波值等一系列美术可控参数。",
          "开发了随样条实时变化、并具备相机感知粗细的动态网格，以保持一致的可读性。"
        ]
      },
      "links": [
        {
          "label": {
            "en": "Process Journal",
            "ja": "制作ジャーナル",
            "zh": "制作日志"
          },
          "href": "https://snowy-engine-238.notion.site/100-Days-of-Tech-Art-94e362b1607e45029b795429b6d6c4f6"
        }
      ],
      "sections": [
        {
          "title": {
            "en": "Technical Implementation",
            "ja": "技術的な実装",
            "zh": "技术实现"
          },
          "body": {
            "en": "I put this together through a mix of techniques, aiming for a thread asset that stays visually consistent, adapts in real-time, and feels intuitive to the artists actually using it.",
            "ja": "視覚的な一貫性を保ちながらリアルタイムに追従し、なおかつ実際に使うアーティストが直感的に扱える糸アセットを目指して、複数の手法を組み合わせて仕上げました。",
            "zh": "为了打造一款视觉上保持一致、能实时响应、又能让实际使用的美术人员用得顺手的线条资产，我糅合了多种手法把它做出来。"
          },
          "items": [
            {
              "label": {
                "en": "Bézier Curves & Geometry Nodes",
                "ja": "ベジエ曲線とジオメトリノード",
                "zh": "贝塞尔曲线与几何节点"
              },
              "text": {
                "en": "Blender's geometry nodes drive the generation and manipulation of thread paths and procedural text along any Bézier spline.",
                "ja": "Blenderのジオメトリノードが、あらゆるベジエスプラインに沿った糸のパスとプロシージャルテキストの生成・操作を担っています。",
                "zh": "由Blender几何节点驱动线条路径与程序化文字沿任意贝塞尔样条的生成与操控。"
              }
            },
            {
              "label": {
                "en": "Dynamic Mesh Creation",
                "ja": "動的メッシュの生成",
                "zh": "动态网格构建"
              },
              "text": {
                "en": "The thread is a dynamic mesh that adapts in real-time to spline changes, holding visual consistency at any length or curvature.",
                "ja": "糸はスプラインの変化にリアルタイムで追従する動的メッシュとなっており、どんな長さや曲率でも視覚的な一貫性を保ちます。",
                "zh": "线条以动态网格的形式呈现，能实时响应样条变化，在任意长度和曲率下都保持视觉一致性。"
              }
            },
            {
              "label": {
                "en": "Interactivity & Control",
                "ja": "インタラクティビティとコントロール",
                "zh": "交互性与可控性"
              },
              "text": {
                "en": "An array of editable variables in Blender's node editor lets artists tune radius, graphic fidelity, and text settings (positioning, spacing, rotation, scaling, and animated noise values).",
                "ja": "Blenderのノードエディタ内に用意した多彩な編集可能変数によって、アーティストは半径、グラフィックの精細さ、テキスト設定（位置、間隔、回転、スケール、アニメーションノイズ値）まで自由に調整できます。",
                "zh": "Blender节点编辑器中的一系列可编辑变量，让美术人员能够调整半径、图形精度，以及文字设定（定位、间距、旋转、缩放与动画噪波值）。"
              }
            }
          ],
          "body2": {
            "en": "Hitting those standards meant breaking the problem into component parts, working through the vector math, and getting properly comfortable with Blender's node toolset.",
            "ja": "この基準を満たすには、問題を構成要素に分解し、ベクトル演算をきっちり詰め、そしてBlenderのノード群を本当に手に馴染ませることが必要でした。",
            "zh": "要达到这些标准，就得把问题拆成一个个组成部分，把向量数学一点点啃下来，并把Blender的节点工具彻底用熟。"
          }
        },
        {
          "title": {
            "en": "Visualizations",
            "ja": "ビジュアライゼーション",
            "zh": "可视化"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/jolyne/endcaps.gif",
              "w": 412,
              "h": 330,
              "caption": {
                "en": "Endcaps following the rotation and orientation of the rest of the thread.",
                "ja": "エンドキャップが糸本体の回転と向きに追従します。",
                "zh": "端盖跟随线条其余部分的旋转与朝向。"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/jolyne/text.gif",
              "w": 500,
              "h": 544,
              "caption": {
                "en": "What's possible with procedural text via artist-controlled parameters alone.",
                "ja": "アーティストが操れるパラメーターだけで、プロシージャルテキストがここまで表現できます。",
                "zh": "仅凭美术可控参数，程序化文字所能达到的效果。"
              }
            },
            {
              "type": "image",
              "src": "/assets/images/projects/jolyne/gradient.gif",
              "w": 708,
              "h": 774,
              "caption": {
                "en": "The impact of scrubbing a color ramp on the thread's texture.",
                "ja": "カラーランプをスクラブしたときの、糸のテクスチャへの影響。",
                "zh": "拖动色彩渐变对线条纹理产生的影响。"
              }
            }
          ]
        },
        {
          "title": {
            "en": "Future Plans",
            "ja": "今後の展開",
            "zh": "后续计划"
          },
          "body": {
            "en": "I'm planning to add another layer of abstraction so the thread itself follows a curve, which should make posing it feel much more intuitive for artists. I'd also like to improve the texture mapping algorithm for a nicer visual result.",
            "ja": "抽象化レイヤーをもう一段追加して、糸自体をカーブに沿わせる仕組みを入れる予定です。これでアーティストにとってポージングがずっと直感的になるはずです。テクスチャマッピングのアルゴリズムも磨いて、見た目をさらに引き上げたいところです。",
            "zh": "计划再加一层抽象，让线条本身沿曲线走，这样美术在摆姿势时会直观得多。同时会打磨纹理映射算法，把视觉效果再往上抬一档。"
          },
          "body2": {
            "en": "The biggest current constraint is that control point count has to stay fixed for the duration of an animation, and new points can only be appended at the end. The likely fix is a custom curve type that sidesteps this limitation entirely.",
            "ja": "現時点で一番大きな制約は、アニメーションの間コントロールポイントの数を固定しなければならず、新しいポイントは末尾にしか追加できないことです。おそらく、この制限を根本から回避するカスタムカーブタイプを自作するのが解決策になります。",
            "zh": "当前最大的约束是：动画期间控制点数量必须保持固定，新增点也只能追加到末尾。多半得靠自研一套自定义曲线类型，把这个限制彻底绕开。"
          }
        },
        {
          "title": {
            "en": "Download the Asset",
            "ja": "アセットのダウンロード",
            "zh": "下载资产"
          },
          "body": {
            "en": "Feel free to grab the asset and use it in your own projects!",
            "ja": "ぜひご自身のプロジェクトで自由に使ってみてください！",
            "zh": "欢迎下载，拿去用在自己的项目里！"
          },
          "links": [
            {
              "label": {
                "en": "Download JolyneThread.blend",
                "ja": "JolyneThread.blendをダウンロード",
                "zh": "下载 JolyneThread.blend"
              },
              "href": "/assets/downloads/JolyneThread.blend"
            }
          ]
        },
        {
          "title": {
            "en": "Going Forward",
            "ja": "これから",
            "zh": "展望"
          },
          "body": {
            "en": "This project was a proper deep dive into procedural asset generation, and pushed me to develop tools that genuinely serve the artists using them. I look forward to exploring further in the realms of asset generation and tool creation.",
            "ja": "このプロジェクトはプロシージャルアセット生成にがっつり踏み込む機会となり、使うアーティストのためになるツールを作る腕を鍛えてくれました。アセット生成とツール制作の領域を、これからさらに掘り下げていくのが楽しみです！",
            "zh": "这个项目让我真正扎进了程序化资产生成的领域，也逼着我做出能切实服务美术人员的工具。期待在资产生成与工具制作这一块继续往深里走。"
          },
          "gallery": [
            {
              "type": "image",
              "src": "/assets/images/projects/jolyne/threadnodes.png",
              "w": 4403,
              "h": 1088,
              "caption": {
                "en": "The geometry node network powering the thread asset.",
                "ja": "糸アセットを支えているジオメトリノードのネットワーク。",
                "zh": "驱动线条资产的几何节点网络。"
              }
            }
          ]
        }
      ],
      "thumb": "/assets/images/projects/jolyne-thumb.png",
      "clip": "/assets/video/clips/jolyne.mp4"
    }
  ]
}
