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
Set named timers for cooking, watering plants, brewing tea and more.

Timer Set named timers for cooking, watering plants, brewing tea and more. About Use Mycroft when your hands are messy or you need more that the one t

OpenVoiceOS 3 Nov 02, 2022
Malicious Document IoC Extractor is a collection of scripts that helps extracting IoCs from various maldoc families.

MDIExtractor Malicious Document IoC Extractor (MDIExtractor) is a collection of scripts that helps extracting IoCs from various maldoc families. Prere

Malwrologist 14 Nov 25, 2022
A python script to run any executable and pass test cases to it's stdin and compare stdout with correct output.

quera_testcase_checker A python script to run any executable and pass test cases to it's stdin and compare stdout with correct output. proper way to u

k3y1 1 Nov 15, 2021
Our Ping Pong Project of numerical analysis, 2nd year IC B2 INSA Toulouse

Ping Pong Project The objective of this project was to determine the moment of impact of the ball with the ground. To do this, we used different model

0 Jan 02, 2022
An extensive password manager built using Python, multiple implementations. Something to meet everyone's taste.

An awesome open-sourced password manager! Explore the docs » View Demo · Report Bug · Request Feature 🐍 Python Password Manager 🔐 An extensive passw

Sam R 7 Sep 28, 2021
Notebooks for computing approximations to the prime counting function using Riemann's formula.

Notebooks for computing approximations to the prime counting function using Riemann's formula.

Tom White 2 Aug 02, 2022
A basic animation modding workflow for FFXIV

AnimAssist Provides a quick and easy way to mod animations in FFXIV. You will need: Before anything, the VC++2012 32-bit Redist from here. Havok will

liam 37 Dec 16, 2022
Minterpy - Multidimensional interpolation in Python.

minterpy is an open-source Python package for a multivariate generalization of the classical Newton and Lagrange interpolation schemes as well as related tasks.

Center for Advanced Systems Understanding 18 Jan 06, 2023
Script em python, utilizando PySimpleGUI, para a geração de arquivo txt a ser importado no sistema de Bilhetagem Eletrônica da RioCard, no Estado do Rio de Janeiro.

pedido-vt-riocard Script em python, utilizando PySimpleGUI, para a geração de arquivo txt a ser importado no sistema de Bilhetagem Eletrônica da RioCa

Carlos Bruno Gomes 1 Dec 01, 2021
PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld.

PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld. The grid is partitioned into several rooms, and each room contains a plate and a clos

Autonomous Agents Research Group (University of Edinburgh) 6 Dec 03, 2022
My Analysis of the VC4 Assembly Code from the RPI4

My Analysis of the VC4 Assembly Code from the RPI4

Nicholas Starke 31 Jul 13, 2022
A novel dual model approach for categorization of unbalanced skin lesion image classes (Presented technical paper 📃)

A novel dual model approach for categorization of unbalanced skin lesion image classes (Presented technical paper 📃)

1 Jan 19, 2022
AKSWINPOSTINIT -- AKS Windows node post provisioning initialization

AKSWINPOSTINIT -- AKS Windows node post provisioning initialization Features This is a tool that provides one-time powershell script initilization for

Ping He 3 Nov 25, 2021
HiSim - House Infrastructure Simulator

HiSim is a Python package for simulation and analysis of household scenarios using modern components as alternative to fossil fuel based ones.

FZJ-IEK3 17 Dec 17, 2022
A 3D Slicer Extension to view data from the flywheel heirarchy

flywheel-connect A 3D Slicer Extension to view, select, and download images from a Flywheel instance to 3D Slicer and storing Slicer outputs back to F

4 Nov 05, 2022
Repls goes to sleep due to inactivity, but to keep it awake, simply host a webserver and ping it.

Repls goes to sleep due to inactivity, but to keep it awake, simply host a webserver and ping it. This repo will help you make a webserver with a bit of console controls.

2 Mar 01, 2022
An app to help people apply for admissions on schools/hostels

Admission-helper About An app to help people apply for admissions on schools/hostels This app is a rewrite of Admission-helper-beta-v5.8.9 and I impor

Advik 3 Apr 24, 2022
This is a a CSMA/CA simulator written in Python based on simulator of the same type

This is a a CSMA/CA simulator written in Python based on simulator of the same type found the link https://github.com/StevenSLXie/CSMA-Simulator with

M. Ismail 4 Nov 22, 2022
Fofa asset consolidation script

资产收集+C段整理二合一 基于fofa资产搜索引擎进行资产收集,快速检索目标条件下的IP,URL以及标题,适用于资产较多时对模糊资产的快速检索,新增C段整理功能,整理出

白泽Sec安全实验室 36 Dec 01, 2022
《practical python programming》的中文翻译

欢迎光临 大约 25 年前,当我第一次学习 Python 时,发现 Python 竟然可以被高效地应用到各种混乱的工作项目上,我立即被震惊了。15 年前,我自己也将这种乐趣教授给别人。教学的结果就是本课程——一门实用的学习 Python的课程。

编程人 125 Dec 17, 2022