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
Sailwind Mod Manager

Sailwind Mod Manager The Sailwind Mod Manager is an open source mod manager for the Sailwind community. It currently allows you to browse and download

Max 3 Jul 15, 2022
Something like Asteroids but not really, done in CircuitPython

CircuitPython Staroids Something like Asteroids, done in CircuitPython. Works with FunHouse, MacroPad, Pybadge, EdgeBadge, CLUE, and Pygamer. circuitp

Tod E. Kurt 14 May 31, 2022
VacationCycleLogicBackEnd - Vacation Cycle Logic BackEnd With Python

Vacation Cycle Logic BackEnd Getting Started Existing virtualenv If your project

Mohamed Gamal 0 Jan 03, 2022
A simple API to upload notes or files to KBFS

This API can be used to upload either secure notes or files to a secure KeybaseFS folder.

Dakota Brown 1 Oct 08, 2021
Find all solutions to SUBSET-SUM, including negative, positive, and repeating numbers

subsetsum The subsetsum Python module can enumerate all combinations within a list of integers which sums to a specific value. It works for both negat

Trevor Phillips 9 May 27, 2022
A random cat fact python module

A random cat fact python module

Fayas Noushad 4 Nov 28, 2021
- Auto join teams teams ( from calendar invite )

Auto Join Teams Meetings Requirements: Python 3.7 or higher Latest Google Chrome This script automatically logins to your account and joins the meetin

Prajin Khadka 10 Aug 20, 2022
Fithub is a website application for athletes and fitness enthusiasts of all ages and experience levels.

Fithub is a website application for athletes and fitness enthusiasts of all ages and experience levels. Our website allows users to easily search, filter, and sort our comprehensive database of over

Andrew Wu 1 Dec 13, 2021
Code repo for the book "Feature Engineering for Machine Learning," by Alice Zheng and Amanda Casari, O'Reilly 2018

feature-engineering-book This repo accompanies "Feature Engineering for Machine Learning," by Alice Zheng and Amanda Casari. O'Reilly, 2018. The repo

Alice Zheng 1.3k Dec 30, 2022
Algo próximo do ARP

ArpPY Algo parecido com o ARP-Scan. Dependencias O script necessita no mínimo ter o Python versão 3.x instalado e ter o sockets instalado. Executando

Feh's 3 Jan 18, 2022
Comprehensive Python Cheatsheet

Comprehensive Python Cheatsheet

Jure Šorn 31.3k Dec 30, 2022
Myrepo - A tool to create your own Arch Linux repository

myrepo A (experimental) tool to create your own Arch Linux repository Example We

Anton Hvornum 5 Feb 19, 2022
ioztat is a storage load analysis tool for OpenZFS

ioztat is a storage load analysis tool for OpenZFS. It provides iostat-like statistics at an individual dataset/zvol level.

Jim Salter 116 Nov 25, 2022
An Airflow operator to call the main function from the dbt-core Python package

airflow-dbt-python An Airflow operator to call the main function from the dbt-core Python package Motivation Airflow running in a managed environment

Tomás Farías Santana 93 Jan 08, 2023
Manjaro CN Repository

Manjaro CN Repository Automatically built packages based on archlinuxcn/repo and manjarocn/docker. Install Add manjarocn to /etc/pacman.conf: Please m

Manjaro CN 28 Jun 26, 2022
Demo Python project using Conda and Poetry

Conda Poetry This is a demonstration of how Conda and Poetry can be used in a Python project for dev dependency management and production deployment.

Ryan Allen 2 Apr 26, 2022
CircuitPython Driver for Adafruit 24LC32 I2C EEPROM Breakout 32Kbit / 4 KB

Introduction CircuitPython driver for Adafruit 24LC32 I2C EEPROM Breakout Dependencies This driver depends on: Adafruit CircuitPython Bus Device Regis

Adafruit Industries 4 Oct 03, 2022
Anki cards generator for Leetcode

Leetcode Anki card generator Summary By running this script you'll be able to generate Anki cards with all the leetcode problems. I personally use it

Pavel Safronov 150 Dec 25, 2022
Sardana integration into the Jupyter ecosystem.

sardana-jupyter Sardana integration into the Jupyter ecosystem.

Marc Espín 1 Dec 23, 2021
Set of tools to analyze Tinynuke samples

tinynuke-toolset You'll find in that repository a set of tools and scripts I developped to analyze Tinynuke samples. Dll extractor: script used to ext

Heat Miser 14 Aug 18, 2022