Blender-miHoYo-Shaders - Shaders for Blender attempting to replicate the shading of games developed by miHoYo

Overview

miHoYo Shaders for Blender 3.0 and above

Preview

Preview

preview.mp4
preview.mp4

Usage

  1. Download a release here.
  2. In a new project with your desired character mesh, append whatever materials the .blend file you downloaded will contain.
  3. Replace the original materials of the mesh with the materials from the .blend file you just appended.
  4. Use this script to import your textures.
  5. Constrain the empty object named Head Driver to the head bone of your character with a Child Of constraint.
  6. In the Global Material Properties panel, you may wonder what the Body Y and Hair Y values are supposed to be - those correspond to the ramp textures. Refer to this little infographic I made.
  7. I'll be making a video guide soon. If anyone wants to help out, that'd be appreciated.

Milestones

These shaders aren't meant to be 100% accurate - in fact they will most likely never be until someone blesses us with the decompiled shader code. Until then, what I only aim for is to replicate the in-game looks to the best of my ability.

Genshin Impact

  • Ramp texture implementation (done thanks to Manashiku)
  • Face shading
  • Metallic matcap function
  • Specular function (done with some inspiration from Aerthas' ArcSys shader)
  • Custom light/shadow settings for creative freedom
  • Stable release
  • Constant width rim lighting (until Blender implements real-time compositing/screen shaders, I don't see this feature happening anytime soon, for now have a simple NdotV rim light)
  • Constant width outlines (it's actually possible with Geometry Nodes, but it's far too non-intuitive for the average user to set up, waiting for Blender to implement actual vertex shaders)
  • Outline material

Honkai: Star Rail

  • Ramp texture implementation (done thanks to Manashiku)
  • Face shading
  • Specular function (done with some inspiration from Aerthas' ArcSys shader)
  • Custom light/shadow settings for creative freedom
  • Stable release
  • Constant width rim lighting (see above)
  • Constant width outlines (see above)
  • Outline material

Honkai Impact 3rd

  • Learn how to datamine assets from the game LOL someone please make a tool

Support

Rules

  • The GPL-3.0 License applies.
  • If you use this shader in your project (renders, animations), I'd appreciate being credited - you don't have to do it though.
  • If you use this shader as your main reference for your own shader, please give credit where its due.
  • Please don't redistribute the files, I'd appreciate it more if you linked this GitHub repo instead ^^

Special thanks

This wouldn't be possible if it weren't for ArcSys, Aerthas Veras, Manashiku, the folks over at 知乎专栏 and many more I simply can't cite who choose to share their knowledge and open-source their own shaders. For that, I'd like to give back to the community with what I've learned. A huge thanks to Zekium from Discord as well for contributing the script to automate the importing of textures. With that said, I hope you learn a thing or two. Enjoy!

You might also like...
A calculator developed in Python.
A calculator developed in Python.

Calculadora Uma simples calculadora... ( + − × ÷ ) 💻 Situação do projeto: Projeto finalizado ✔️ 🛠 Tecnologias: Python Tkinter (GUI) ⚙️ Pré-requisito

x-tools is a collection of tools developed in Python

x-tools X-tools is a collection of tools developed in Python Commands\

Arcpy Tool developed for ArcMap 10.x that checks DVOF points against TDS data and creates an output feature class as well as a check database.

DVOF_check_tool Arcpy Tool developed for ArcMap 10.x that checks DVOF points against TDS data and creates an output feature class as well as a check d

addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe

b3d_mocap_import addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe ==================VIBE================== To use

 A small Blender addon for changing an object's local orientation while in edit mode
A small Blender addon for changing an object's local orientation while in edit mode

A small Blender addon for changing an object's local orientation while in edit mode.

Enhanced version of blender's bvh add-on with more settings supported. The bvh's rest pose should have the same handedness as the armature while could use a different up/forward definiton.
Enhanced version of blender's bvh add-on with more settings supported. The bvh's rest pose should have the same handedness as the armature while could use a different up/forward definiton.

Enhanced bvh add-on (importer/exporter) for blender Enhanced bvh add-on (importer/exporter) for blender Enhanced bvh importer Enhanced bvh exporter Ho

A simple armature retargeting tool for Blender

Simple-Retarget-Tool-Blender A simple armature retargeting tool for Blender Update V2: Set Rest Pose to easily apply rest pose. Preset Import/Export.

Add-In for Blender to automatically save files when rendering
Add-In for Blender to automatically save files when rendering

Autosave - Render: Automatically save .blend, .png and readme.txt files when rendering with Blender Purpose This Blender Add-On provides an easy way t

Expose multicam options in the Blender VSE headers.
Expose multicam options in the Blender VSE headers.

Multicam Expose multicam options in the Blender VSE headers. Install Download space_sequencer.py and swap it with the one that comes with the Blender

Comments
  • feat: Add Setup Wizard (Initial Release)

    feat: Add Setup Wizard (Initial Release)

    Initial Release/Beta Test for the Setup Wizard Tool

    • Added a Setup Wizard Tool (a handful of new setup scripts) to help streamline the import character process
    • Please read the README.md to get a quick understanding of the Setup Wizard Tool
    • I can explain the design and components (in more detail) for this tool to any reviewers

    Open to any and all feedback, suggestions, comments, etc.

    ~~(I realize there are print statements littered here and there...I can clean them up or we can keep them in case we need to troubleshoot issues down the line)~~ Debug print statements should be mostly cleaned up

    Design

    The idea behind the design of this tool is to make it easy to add new components (steps) without breaking other components (steps). We can do this by decoupling each component and making them call a common module (import_order.py) which acts as an invoker that invokes the next step in the process.

    The decoupling of the components also allows us to easily re-arrange steps in the workflow as needed (see config.json). It also makes each component have a single responsibility and reduces the chances that changes in one component will impact another component.

    Flow goes clockwise in diagram:

    1. genshin_setup_wizard
    2. import_order
    3. genshin_import_materials
    4. import_order
    5. genshin_import_charcter_model
    6. import_order

    . . . (and so on)

    (Crude Design Diagram of Setup Wizard Tool flow, a few new components have been added since this diagram was created) crude_design_diagram

    opened by michael-gh1 2
  • The third epic rewrite

    The third epic rewrite

    I think I've finally learned enough programming to tell you all that right now, the Blender shader is incredibly spaghetti and horribly thought out. This third full rewrite should hopefully improve how the shader is structured.

    Some major changes I'll be making:

    • Face shading and main (body/hair) shading will now be merged in one nodegroup. Having the two different shaders in two separate nodegroups is incredibly painful to maintain. I have no idea why I made this decision and hopefully I've learned enough not to make the same mistakes.
    • Taking off the ability to use environment lighting. Genshin's shader was never meant to take in environment lighting. The characters are meant to be lit with one directional light especially for the face shading. As to why I'm removing it, it's just really dumb in my view and adds unnecessary options for the user. Unfortunately, Blender doesn't let us call any form of a shadow pass in the fragment shader. Maybe I can do that with Goo Engine leading us to the next change....
    • We're switching over to Goo Engine. I hope any of you don't use Cycles. Goo Engine has a lot of NPR features that will be incredibly useful for many of us. I'm specifically migrating the shader to it for the depth-based rim lighting.
    • Adding other outputs for custom render passes/AOV passes. If you play around with compositing in Photoshop and similar software, then you're gonna love this change. I plan to rewrite the shader in such a way that it will be very intuitive to integrate with compositing. Some custom output sockets include the lit factor, the emission factor, and maybe more?

    That's pretty much it. I don't know when or if I'll even do this but I wanted to let those people actively using this shader know that huge changes are eventually coming and I hope this future update makes the shader easier for everyone to use. Honestly, I don't even know how this project got to 400 stars. I'm really thankful for the people using it and I'm very sorry that I've been neglecting this project. To be frank I have started hating visual scripting and nodes as a whole (lol), something about looking at them just discourages me and I don't know why. Blender, please add GLSL support owo

    enhancement to do 
    opened by festivize 0
Releases(genshin-v0.8)
Owner
Matsuri
A little festive.
Matsuri
Python API for HotBits random data generator

HotBits Python API Python API for HotBits random data generator. Description This project is random data generator. It uses is HotBits API web service

Filip Š 2 Sep 11, 2020
Validate UC alumni identifier numbers with Python 3.

UC number validator Validate UC alumni identifier numbers with Python 3. Getting started Install the library with: pip install -U ucnumber Usage from

Open Source eUC 1 Jul 07, 2021
A quick experiment to demonstrate Metamath formula parsing, where the grammar is embedded in a few additional 'syntax axioms'.

Warning: Hacked-up code ahead. (But it seems to work...) What it does This demonstrates an idea which I posted about several times on the Metamath mai

Marnix Klooster 1 Oct 21, 2021
This is a small Panel applet for the Budgie Desktop to display the battery charge of a connected Bluetooth device.

BudgieBluetoothBattery This is a small Panel applet for the Budgie Desktop to display the battery charge of a connected Bluetooth device. It uses the

Konstantin Köhring 7 Dec 05, 2022
Quanser Labs Robotic Arm With Python

Quanser-Labs-Robotic-Arm As a team, we programmed a Robotic-Arm in Python on the

1 Jul 11, 2022
Python Osmium Examples

Python Osmium Examples This is a set (currently of size 1) of examples showing practical usage of PyOsmium, a thin wrapper around the osmium library.

Martijn van Exel 1 Jan 26, 2022
Notes on the Deep Learning book from Ian Goodfellow, Yoshua Bengio and Aaron Courville (2016)

The Deep Learning Book - Goodfellow, I., Bengio, Y., and Courville, A. (2016) This content is part of a series following the chapter 2 on linear algeb

hadrienj 1.7k Jan 07, 2023
A parallel branch-and-bound engine for Python.

pybnb A parallel branch-and-bound engine for Python. This software is copyright (c) by Gabriel A. Hackebeil (gabe.hacke

Gabriel Hackebeil 52 Nov 12, 2022
B-Pkg is a simple tool in python for installing all basic package in termux

Basic-Pkg 👉🏻 Basic-Pkg 👈🏻 B-Pkg is a simple tool in python for installing all basic package in termux This is my first tool, I hope you will like

Macgaiver 3 Oct 21, 2021
All exercises done during the Python 3 course in the Video Course (World 1, 2 and 3)

Python3-cursoemvideo-exercises - All exercises done during the Python 3 course in the Video Course (World 1, 2 and 3)

Renan Barbosa 3 Jan 17, 2022
Prometheus exporter for chess.com player data

chess-exporter Prometheus exporter for chess.com player data implemented via chess.com's published data API and Prometheus Python Client Example use c

Mário Uhrík 7 Feb 28, 2022
Student Result Management System Project in tkinter created based on python, tkinter, and SQLITE3 Database

Student-Result-Management-System This Student Result Management System Project in tkinter created based on python, tkinter, and SQLITE3 Database. The

Ravi Chauhan 2 Aug 03, 2022
Neptune client library - integrate your Python scripts with Neptune

Lightweight experiment tracking tool for AI/ML individuals and teams. Fits any workflow. Neptune is a lightweight experiment logging/tracking tool tha

neptune.ai 353 Jan 04, 2023
Just some mtk tool for exploitation, reading/writing flash and doing crazy stuff

Just some mtk tool for exploitation, reading/writing flash and doing crazy stuff. For linux, a patched kernel is needed (see Setup folder) (except for read/write flash). For windows, you need to inst

Bjoern Kerler 1.1k Dec 31, 2022
Group P-11's submission for the University of Waterloo's 2021 Engineering Competition (Programming section).

P-11-WEC2021 Group P-11's submission for the University of Waterloo's 2021 Engineering Competition (Programming section). Part I Compute typing time f

TRISTAN PARRY 1 May 14, 2022
pgvector support for Python

pgvector-python pgvector support for Python Great for online recommendations 🎉 Supports Django, SQLAlchemy, Psycopg 2, Psycopg 3, and asyncpg Install

Andrew Kane 37 Dec 20, 2022
This Python3 script will monitor Upwork RSS feed and then email you the results.

Upwork RSS Parser This Python3 script will monitor Upwork RSS feed and then email you the results. Table of Contents General Info Technologies Used Fe

Chris 5 Nov 29, 2021
Labspy06 With Python

Labspy06 Profil Nama : Nafal mumtaz fuadi Nim : 312110457 Kelas : T1.21.A.2 Latihan 1 Ubahlah kode dibawah ini menjadi fungsi menggunakan lambda impor

Mas Nafal 1 Dec 12, 2021
Replite - An embeddable REPL powered by JupyterLite

replite An embeddable REPL, powered by JupyterLite. Usage To embed the code cons

Jeremy Tuloup 47 Nov 09, 2022
Djangoblog - A blogging site where people can make their accout and write blogs and read other author's blogs

This a blogging site where people can make their accout and write blogs and read other author's blogs.

1 Jan 26, 2022