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
A python script that will automate the boring task of login to the captive portal again and again

A python script that will automate the boring task of login to the captive portal again and again

Rakib Hasan 2 Feb 09, 2022
A simple script that can watch a list of directories for change and does some action

plot_watcher A simple script that can watch a list of directories and does some action when a specific kind of change happens In its current implement

Charaf Errachidi 12 Sep 10, 2021
A basic tool to generate Hydrogen drum machine kits.

Generate Hydrogen Kit A basic tool to generate drumkit.xml files for Hydrogen drum machine. Saves a bit of time when making kits. Supply it with a nam

Luna Langton 2 Nov 28, 2021
p5 is a Python package based on the core ideas of Processing.

p5 p5 is a Python library that provides high level drawing functionality to help you quickly create simulations and interactive art using Python. It c

p5py 645 Jan 04, 2023
This code extracts line width of phonons from specular energy density (SED) calculated with LAMMPS.

This code extracts line width of phonons from specular energy density (SED) calculated with LAMMPS.

Masato Ohnishi 3 Jun 15, 2022
HatAsm - a HatSploit native powerful assembler and disassembler that provides support for all common architectures

HatAsm - a HatSploit native powerful assembler and disassembler that provides support for all common architectures.

EntySec 8 Nov 09, 2022
Aoc 2021 kedro playground with python

AOC 2021 Overview This is your new Kedro project, which was generated using Kedro 0.17.5. Take a look at the Kedro documentation to get started. Rules

1 Dec 20, 2021
Quick script for automatically extracting syscall numbers for an OS

Syscalls-Extractor Quick script for automatically extracting syscall numbers for an OS $ python3 .\syscalls-extractor.py --help usage: syscalls-extrac

m0rv4i 54 Feb 10, 2022
Мой первый калькулятор!!!!!!

my_first_calculator Первый калькулятор созданный мною на питоне Версия калькулятора: 0.0.4 Как скачать? TERMUX Для скрипта нужен питон, скачиваем pkg

Lesha Russkiyov 2 Dec 29, 2021
A pairs trade is a market neutral trading strategy enabling traders to profit from virtually any market conditions.

A pairs trade is a market neutral trading strategy enabling traders to profit from virtually any market conditions. This strategy is categorized as a statistical arbitrage and convergence trading str

Kanupriya Anand 13 Nov 27, 2022
This is an implementation of PEP 557, Data Classes.

This is an implementation of PEP 557, Data Classes. It is a backport for Python 3.6. Because dataclasses will be included in Python 3.7, any discussio

Eric V. Smith 561 Dec 06, 2022
1 May 12, 2022
A stupid obfuscation thing

StupidObfuscation A stupid obfuscation thing How it works The obfuscator takes a string, splits into pieces of one, then, using the table from letter.

Echo 2 May 03, 2022
Odoo modules related to website/webshop

Website Apps related to Odoo it's website/webshop features: webshop_public_prices: allow configuring to hide or show product prices and add to cart bu

Yenthe Van Ginneken 9 Nov 04, 2022
Collection of functions for working with interlaced content in VapourSynth.

vsfieldkit Collection of functions for working with interlaced content in VapourSynth. It does not have any hard dependencies outside of VapourSynth.

Justin Turner Arthur 11 May 27, 2022
tidevice can be used to communicate with iPhone device

h 该工具能够用于与iOS设备进行通信, 提供以下功能 截图 获取手机信息 ipa包的安装和卸载 根据bundleID 启动和停止应用 列出安装应用信息 模拟Xcode运行XCTest,常用的如启动WebDriverAgent测试

Alibaba 1.8k Dec 30, 2022
The purpose of this code base is to add a specified signal-to-noise ratio noise from MUSAN dataset to a pure speech signal and to generate far-field speech data using room impulse response data from BUT [email protected] Reverb Database.

Add_noise_and_rir_to_speech The purpose of this code base is to add a specified signal-to-noise ratio noise from MUSAN dataset to a pure speech signal

Yunqi Chen 7 Oct 30, 2022
Module for working with the site dnevnik.ru with python

dnevnikru Module for working with the site dnevnik.ru with python Dnevnik object accepts login and password from the dnevnik.ru account Methods: homew

Aleksandr 21 Nov 21, 2022
Click2call for asterisk with python

Click2call para Asterisk com Python Este projeto disponibiliza uma API construíd

Benedito Marques 1 Jan 17, 2022
apysc is the Python frontend library to create html and js file, that has ActionScript 3 (as3)-like interface.

apysc apysc is the Python frontend library to create HTML and js files, that has ActionScript 3 (as3)-like interface. Notes: Currently developing and

simonritchie 17 Dec 14, 2022