Open-source project
Hoyotoon/HoyoToon avatar
Hoyotoon/HoyoToon

HoyoToon: a Unity shader that reproduces Hoyoverse style shading for datamined assets

Shader for Unity (Built-in Rendering Pipeline) attempting to replicate the shading of miHoYo developed games. This is for datamined assets, not custom-made ones nor the MMD variants.

745 stars86 forksC#GPL-3.0

At a glance

What is it?
HoyoToon is a C# and shader package for the Unity Built-in Render Pipeline that tries to reproduce the shading of miHoYo and Hoyoverse games, covering Genshin Impact, Honkai Impact, Honkai Star Rail, Zenless Zone Zero and Wuthering Waves. It installs through VRChat Creator Companion, a Unity package or the package manager, and it targets datamined assets rather than custom ones.
Who is it for?
Adopt HoyoToon if you build Unity scenes with datamined assets from Hoyoverse games and want their characteristic toon shading without rebuilding the lighting setup by hand, since the package covers five titles and ships the setup scripts and an auto updater. Do not adopt it for hand made models or MMD style variants, which the package description explicitly excludes, and note the manifest declares a unity floor of 2019.4, the minimum editor version.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 74 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A shading replica, scoped to datamined assets and the Built-in Pipeline

HoyoToon is a shader for Unity, written in C# with the shader assets themselves, whose stated goal is to replicate the shading style of the games miHoYo developed. The package description is unusually precise about its scope, and the precision is worth repeating because it defines both the use case and the limit.

It is for the Built-in Rendering Pipeline, not the newer ones, and it is aimed at datamined assets, meaning models extracted from the original games, not custom made ones and not the MMD variants. That is a sensible boundary for a shader that reproduces a specific material and lighting model: the point is that a model extracted from Genshin Impact should look like it did in the game, and a model the artist made will not have the same material setup to begin with.

The feature list names the games covered. Genshin Impact is supported, weapons included, along with Honkai Impact in both Part 1 and Part 2, Honkai Star Rail, Zenless Zone Zero and Wuthering Waves. The shader is based on the latest version of each game, which is a moving target and explains the release cadence. Both real time and baked lighting are supported, there is support for stencils and self cast shadows, and the package includes visual effects shaders of the kind used for Paimon, Dainlief, Asmoday and Skirk, plus scripts for automated setup and an auto updater for the shader and its scripts.

Three install paths, and the one that suits a VRChat workflow

HoyoToon can be installed in three ways, and the choice is mostly about which toolchain you already have in your project.

The VRChat Creator Companion path is the one built for the platform the project is most used on. You open the VPM package listing, press Add to VCC, then open your creator companion and select the project you want HoyoToon in, press Manage Project, and at the bottom of the window you click the + button on the HoyoToon option. You then open your Unity project to a freshly installed HoyoToon.

The Unity Package route is the manual one. Go to the GitHub releases page, download the Unity Package, drag it into your open Unity editor and import it. That is the whole procedure, and it is the route to take if you are not in a VRChat workflow but still want the package.

The Unity Package Manager route is the one that keeps the package updated in the normal Unity way. Open your project, press Window and then Package Manager, click the + button, and add the Git URL of the repository. Unity then installs HoyoToon for you.

The repository tree shows the shape of the deliverable either way, with Shaders/ for the shader assets, Scripts/ for the automation, Resources/ for supporting files, and a package.json plus a .meta file for every directory, which is the Unity convention for a package laid out as a local path inside a project, at .\Packages\com.meliverse.hoyotoon.

The package manifest declares its Unity version, its dependencies and its licence pointer

The package.json is the most informative file in the repository, and it is a Unity package manifest rather than an npm one.

The name is com.meliverse.hoyotoon and the display name is HoyoToon, with the version at 5.2.7 matching the latest release. The unity field reads 2019.4, which is the minimum editor version the package supports, and the type is Shader. The localPath field points at .\Packages\com.meliverse.hoyotoon, which is how the package knows where it sits inside a project.

The dependencies list is short, with com.unity.nuget.newtonsoft-json at 2.0.2 and com.unity.editorcoroutines at 1.0.0, and the gitDependencies and vpmDependencies objects are both empty, which confirms that the shader itself pulls in nothing and the two dependencies are the whole footprint. The editor coroutines dependency is what lets the setup scripts run across frames without freezing the editor, which is what a script that touches a lot of materials needs.

The manifest also records where things live outside the repository: a documentation URL at docs.hoyotoon.com, a changelog URL pointing at the latest release, a licences URL pointing at the LICENSE file in the repository, and a homepage at hoyotoon.com with the author listed as Meliodas and Manashiku. The README points out that the HoyoToon Shader License applies, which is a separate licence document from the repository licence, and the repository itself is marked GPL-3.0. If you plan to redistribute the shader inside a project you publish, read that shader licence rather than assuming the repository licence settles it.

Built-in Pipeline only, which is the constraint that decides who can use it

The single most consequential technical fact about HoyoToon is that it targets Unity's Built-in Rendering Pipeline. Every other feature in the list sits on top of that foundation, and the pipeline choice determines whether the package can be used at all.

Unity has shipped newer render pipelines, and a project that has already migrated to one of them cannot simply drop in a Built-in Pipeline shader and expect it to work, because the lighting and rendering hooks a Built-in shader relies on are not present. Projects that were built from scratch in the last few years are increasingly unlikely to be on the Built-in Pipeline, so the audience for this package is skewed towards existing projects and towards the VRChat world, where the Built-in Pipeline remains the common case.

The declared unity 2019.4 floor compounds that. That is an editor version from 2019, and it tells you the minimum the package supports rather than the version it was written for, but it does confirm the era the code targets.

The other side of the constraint is what the shader actually does. Reproducing a game's look is not a single trick, it is a stack: how light wraps around a surface, how the outline is drawn, how the ramp maps light onto colour, how specular highlights are shaped. Doing that properly is why the package needs a full set of shaders rather than a material preset, and why the setup scripts exist to wire the right shader onto the right material and renderer on an extracted model.

A shader that has to keep pace with five live games

The release history explains the shape of the project better than any feature list can.

The listed versions are 5.2.7 from 2026-01-12, 5.2.6 from 2026-01-02 and 5.2.5 from 2025-10-29. The patch cadence within a series is frequent, with two releases ten days apart in the January 2026 pair, which is what you would expect from a package that has to track visual changes in games that update regularly. The claim that the shader is based on the latest version of each game is a commitment that can only be kept by shipping updates, and the minor version number is where those changes land.

The last push was on 2026-08-10, which is over two months before the current date, and the repository is not archived. So the code is still there and the licence file is present, but no new release has been cut since January. For a package whose whole value is matching a moving target, that gap is the thing to weigh, and it is also why the auto updater and the automated setup scripts are listed as features rather than afterthoughts: a shader that has to be re-pointed at a new game version needs the update path to be frictionless.

Support is community based, through a Discord server, a GitHub issue tracker, and the accounts of the people the project credits. The contributing section asks for pull requests and says the maintainers will do their best to review and merge them as soon as possible, which is a polite way of describing volunteer review capacity.

Editorial conclusion

Adopt HoyoToon if you build Unity scenes with datamined assets from Hoyoverse games and want their characteristic toon shading without rebuilding the lighting setup by hand, since the package covers five titles and ships the setup scripts and an auto updater. Do not adopt it for hand made models or MMD style variants, which the package description explicitly excludes, and note the manifest declares a unity floor of 2019.4, the minimum editor version. Before you commit, read the separate HoyoToon Shader License rather than assuming the repository licence covers your use, and decide which install method fits your pipeline, since VRChat Creator Companion, a Unity package and the package manager produce different folder layouts.

Frequently asked questions

What is HoyoToon and which games does it support?

HoyoToon is a Unity shader for the Built-in Rendering Pipeline that aims to reproduce the shading style of Hoyoverse games. It supports Genshin Impact including weapons, Honkai Impact in Part 1 and Part 2, Honkai Star Rail, Zenless Zone Zero and Wuthering Waves, with both real time and baked lighting, stencil and self cast shadow support.

How do I install HoyoToon in Unity?

There are three ways. Through VRChat Creator Companion, by adding the VPM package listing and pressing the + button on HoyoToon in Manage Project. As a Unity Package, by downloading it from the GitHub releases page and dragging it into the open editor. Or through the Unity Package Manager, by opening Window then Package Manager, clicking the + button and adding the repository URL.

Can HoyoToon be used with custom made models or MMD assets?

No. The package description states it is for datamined assets, not custom made ones nor the MMD variants, because the goal is to reproduce the original shading of the extracted models rather than to provide a general stylised shader for any model.

Which Unity versions does HoyoToon support?

The package manifest declares a unity field of 2019.4, which is the minimum editor version, and the type as Shader. The shader targets Unity's Built-in Rendering Pipeline, so a project already migrated to one of the newer pipelines is not a candidate.

What licence applies to HoyoToon?

The repository is marked GPL-3.0, and the README states that the HoyoToon Shader License applies and links to the LICENSE file in the repository. The manifest separately points at a licences URL for the shader licence, so check that document before redistributing the shader in a project you publish.

Official sources

  1. Hoyotoon/HoyoToon on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/hoyotoon-hoyotoon.svg)](https://hysenlabs.com/projects/hoyotoon-hoyotoon)

Was this useful?