From 3e51eeb000a59c9148951c520adc3a53b7af2c6e Mon Sep 17 00:00:00 2001 From: Michael <8632035+michael-gh1@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:02:10 -0700 Subject: [PATCH 1/5] feat: support Coat material in HSR --- setup_wizard/domain/shader_material_names.py | 3 +++ .../game_default_material_replacers.py | 5 +++++ setup_wizard/texture_import_setup/texture_importer_types.py | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/setup_wizard/domain/shader_material_names.py b/setup_wizard/domain/shader_material_names.py index 0bfa2c8..a8bb09e 100644 --- a/setup_wizard/domain/shader_material_names.py +++ b/setup_wizard/domain/shader_material_names.py @@ -27,6 +27,7 @@ class ShaderMaterialNames: WEAPON_TRANS = '' # Serval HANDBAG = '' # Sampo KENDAMA = '' # Sparkle + COAT = '' # Feixiao # HSR: StellarToon BASE = '' BASE_OUTLINES = '' @@ -91,6 +92,7 @@ class Nya222HonkaiStarRailShaderMaterialNames(ShaderMaterialNames): WEAPON02 = f'{MATERIAL_PREFIX}Weapon02' HANDBAG = f'{MATERIAL_PREFIX}Handbag' KENDAMA = f'{MATERIAL_PREFIX}Kendama' # Sparkle + COAT = f'{MATERIAL_PREFIX}Coat' # Feixiao class StellarToonShaderMaterialNames(ShaderMaterialNames): @@ -123,6 +125,7 @@ class StellarToonShaderMaterialNames(ShaderMaterialNames): WEAPON_TRANS = f'{MATERIAL_PREFIX}Weapon_Trans' HANDBAG = f'{MATERIAL_PREFIX}Handbag' KENDAMA = f'{MATERIAL_PREFIX}Kendama' # Sparkle + COAT = f'{MATERIAL_PREFIX}Coat' # Feixiao class JaredNytsPunishingGrayRavenShaderMaterialNames(ShaderMaterialNames): diff --git a/setup_wizard/replace_default_materials_setup/game_default_material_replacers.py b/setup_wizard/replace_default_materials_setup/game_default_material_replacers.py index bf73922..f4cc6c5 100644 --- a/setup_wizard/replace_default_materials_setup/game_default_material_replacers.py +++ b/setup_wizard/replace_default_materials_setup/game_default_material_replacers.py @@ -243,6 +243,9 @@ def replace_default_materials(self): if mesh_body_part_name == 'Body2_Trans': body_material = self.create_body_trans_material(mesh, self.shader_material_names.BODY2_TRANS) material_name = body_material.name + if 'Coat' in mesh_body_part_name: + body_material = self.create_body_material(mesh, self.shader_material_names.COAT) + material_name = body_material.name if 'Weapon' in mesh_body_part_name: weapon_material = self.create_weapon_materials(mesh_body_part_name) @@ -285,6 +288,8 @@ def find_body_part_name(self, material_name): Expected Format Search: Search for body part name at expected location, at the end of the material name (ex. 'Body') ''' def __expected_format_body_part_name_search(self, material_name): + if material_name.endswith('_S') or material_name.endswith('_D'): + return material_name.split('_')[-2] return material_name.split('_')[-1] ''' diff --git a/setup_wizard/texture_import_setup/texture_importer_types.py b/setup_wizard/texture_import_setup/texture_importer_types.py index b805617..bd1c384 100644 --- a/setup_wizard/texture_import_setup/texture_importer_types.py +++ b/setup_wizard/texture_import_setup/texture_importer_types.py @@ -755,6 +755,7 @@ def import_textures(self, directory): body3_material = bpy.data.materials.get(self.material_names.BODY3) body_trans_material = bpy.data.materials.get(self.material_names.BODY_TRANS) body2_trans_material = bpy.data.materials.get(self.material_names.BODY2_TRANS) + coat_material = bpy.data.materials.get(self.material_names.COAT) weapon_material = bpy.data.materials.get(self.material_names.WEAPON) weapon1_material = bpy.data.materials.get(self.material_names.WEAPON1) weapon01_material = bpy.data.materials.get(self.material_names.WEAPON01) @@ -866,6 +867,11 @@ def import_textures(self, directory): elif self.is_texture_identifiers_in_texture_name(['Body'], file): # Must be AFTER Body1/Body2 self.set_stocking_texture(TextureType.BODY, body_material, img) + elif self.is_texture_identifiers_in_texture_name(['Coat', 'Color'], file): + self.set_diffuse_texture(TextureType.BODY, coat_material, img) + elif self.is_texture_identifiers_in_texture_name(['Coat', 'LightMap'], file): + self.set_lightmap_texture(TextureType.BODY, coat_material, img) + elif self.is_texture_identifiers_in_texture_name(['Face', 'Color'], file): self.set_diffuse_texture(TextureType.FACE, face_material, img) From 636e46c3d0d654af06172dacfbf51748211c0f94 Mon Sep 17 00:00:00 2001 From: Michael <8632035+michael-gh1@users.noreply.github.com> Date: Wed, 4 Sep 2024 14:37:38 -0700 Subject: [PATCH 2/5] chore: update README.md, fix tutorial links and screenshots --- assets/genshin_tab.png | Bin 0 -> 26490 bytes assets/pgr_tab.png | Bin 0 -> 32027 bytes assets/star_rail_tab.png | Bin 0 -> 19212 bytes setup_wizard/README.md | 19 +++++++------------ 4 files changed, 7 insertions(+), 12 deletions(-) create mode 100644 assets/genshin_tab.png create mode 100644 assets/pgr_tab.png create mode 100644 assets/star_rail_tab.png diff --git a/assets/genshin_tab.png b/assets/genshin_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..20aaf6c3541a2e2f79c01d62dc73dc86c7215e3f GIT binary patch literal 26490 zcmce;byQUE+b)iZFz5h7NQVO-Ktf?a=@5ocQY58AN?J;C6mS@%L}>}>l9FzvM(OU5 z9J+gmv*)AVT4$a2ea~6z_xpnd!|Xl#+0TBS`@Zh$y6y>nqN+fAgYE_%9v<=IN3u_W z-z|7}SHU0x;IBOYYoCB$S6rSd$lw)rGpqnF@U5g(r19`dB5t0UUI$(iIX!yjf`>=a zjQhEQcFcK>hi66lSXNr|mC?o&w$WG4cgFb=?Dum%a{oiwu%Lgeph|+aznN{ieSOyS z6V3b9nv^UoEID`5T65Ir9;k!4wAB4&Zoi`%Y_YCuZT7o>T9G1PdfbF&&dwIzui zxjZ%Qx#(&<5u$J9YxzY2@v`tw_MV()Dy^M9C@f96JV}|+$&kz@bNha{A`!^@@2Z$ zDHAyS{?`f&%m$U$`~BA=_O;qM9lu4L7x2(X)8gFc*Pe$<9FC4PULIXG2+C^pniLZ~ zr@%KwVyBN9f-)G9G4Cn@kbrBg;sU@} zoIZcvLL6;fOsyZ!N2HtwU2Zdv^D3o!gW+Hj%Dv9lhO}nt37%+T^;l!Sll7%fjt)Mj z11ZT8i=1ll=l#6rPviZv&*pe9=GJr7d{@`GjZYM@mqI6TTRnb;LMFD5aPLfEy&i?uPwvo^=F z`)Y{O0jreDGt9)HIWuM_RqcrsBs57#$A&ti&W7(1ixno7=<3;82 z^%tjW`T@3synZ_&`Vtek#Z<6QZS3Q`=9zr9z|qriI#eXMw-Rla;@basqpsbI3M2SI zIXb`F;ohc4Bi5c)#$3Q)0lOR9D31L_C?$+NpSe6Azc8%eCjtiUz&1m zr-Ti)5>Jngz|Ea^{!y6Fv@o_eNOBPAgc%~3Ic^iOG{%mPSR&5Q2yyRk*O>Uck7{Qm zusab5aqM?ezh1Aoob;Z{Q{&6E^%#8z8`9ua%v(l{Yv{p7$AKV;bs=3P8?m(oB-Dnked`;J2<&>Wn$MgzHpPA1 zrgX~(BUS*9GV<*fUHhUP)L`%W+@oe7N$=CyO3H=JgnJPJ1GI-RUo7I?#)B^{PT7B%M0iE`IRd56lCG>jQ@QwPN<}bHNFN>$5CLC(* z54VG)>NXHt-ZK+)qhZeJQxFSS;BLm{MC18{AUUK2S+m>DJ<-KtDWt_{ceKdWOx)?l z@d$|$YF=Q?Ae2~^E@05W6Pga=V{-~~E@VDmRw&Ju*sv)$8&H#~pAuf|P;yfK9F91& zLI`@#-ZU2WKAUHrLHcg2T#v16I4H2EbW7&-nZ0RGi8|B}vLI{wG;_8zCe(P+HFitK z0Os8nVl)_@8?bvS_`srTQKYdi@JV!L=Sah0xk_)injyR_qDDB@J9R(|ljxEVsU~qS z$ZmvorD_leJRFG;CAMD@P1;hsSWru#3U%_Gh$F8l8lNivaTLfQo=V&P<8$ay9Y$gU zD-I8A%N{L6^cU7tdq^lvy@Ah!z`it z+yg}~A_?;SrV%4=dt2F=2jR#w$IFezu8Uu!7oQI%9l8l6x8GE#^(<5&KMM7y_#TdJ z5RknwcR-m}U|(J?M_lAgeKR<+0|}{1&PA%lI~>MaC69#*tl;*oyGDkFlu$<)`&7T((N^_8Jq?3%dN>pz*-TcJ2=+Q$oXl+4h!a(4{go#q4V|^Q` zb-oc>=t$2P7RfU{RWUEBJTZ>xi|})u(3T%8;0S4)D+XU-?=9^XxQ6OnPJIJL&^1dE ze>oz7@eNB|VlL~Z@Fo}Ud5C1_^y%^94KsL0s%v0nr0J zUOlHvlg2x;j}Gf`D*}_9_*^bx2+>0mwlxMTYmu$Wp-@rLj8d{UDG$bgh zF_3EQF;TdYmtXi|qFaq4BuhDUhm&LiGSRByRzkO)U|VRD*8AD7940e)d2!?@G_+lK z6sgVI{8wLoOBaiQM1bj}f$lXCLU>%$TNAiupk-hjzwEtAp}>{TLBm^!ORS1hAuDFj zHyP^Ccz!7O_6f*%S3-J~ne_MWaJhCgS_X;hchk8j8i$o-Y98t?8;F!1_<%i4OV z!}<>V^R#r4+~~bYNP)VF#Qtr%rfZI%k-@gsPv+z`(=E+0^eW4Nkd>qnkf{+fiyIHP zFP6T(RCGciG*E`J8(!vB{R2agz!3yR4XA{>R7;Y+UBx_Wc6n>-mOhl^bTHWNw6Pn{ z1W6L)E4om-T#+jODq&tV+p<_Q*mnY74s`TNHRscM7x~#yBfVN&J-Mv?vVI0z?;a*= zmDdysRyTx)(ws1HH~Y-gI~!nO*;bG_typW9v>{qi`N4g>9x1JfM;+UJo1OD?Mknn$ z6|SpGB8v13WJu6`I@l645tMc`^xo?UHZ#DyKk(ZF*-1NUUf+y^DUs9t1|??nQl^Wf zTbO+17A{kNYWPWwWl0gm-t&zLUM61b7@-r=^iAJ%?&_YZeB-6Wn{vMTxd0e9ks6(S z!X9V#i-A1xnRKvChSt_{G}hKB>7+qMA}TY~8g9SH&|X&Lh(MRwCyw~7*eOV+pxndV zBi6!QpM<;mPWkg(yep@_+LvGLR7HEQ7e<|%$`E9a%^)IM*izTdI52!B;_DN!w?Cm( zy(6(o;pWDKcBwfoth=KzzDzt-mSdg~;#0!xT;SY2%8ZHRJybF`?i~?mZ%3!q8H^Y( zu@Hl}N8kcY&g+W!E4o~*2 zwGz&|*$v=oR0sgRz3auwISLn{$9wFW9_&Bg(fJ#qJv+OF19NhJAM)#AWUDa@3=@9x z|M%Pd#IwFV9K*ktA9ye2^>Z-0QRJu?3->;7!p3`GQn=xe!f)zL z_q6)e1DO&InFdxn+ zsB9C3M>*FWb4rMc>Jy_hDtZMUoxTcIzldVC!^XK=Mb@^2`z-G3B0Zj}A<7(*9OkH1 z9s{$KaL$%>GWMsg)c`Xi?cEF^s+5XtwErSRDkIPLC|>ziHt?*JZWAc-d8uhpwcvW}Nw(D-iGD*M2KUo`MD zBdZg1HGk#3FBL;c*CUAa=nDxELq0G}mjHOMwfy)XW4+XMBIA9BbmY0rmkHh%f*<(; za^LS~NyvlK{mI%A99!-^ED>+HXP*(WM+^tYNL%~7Go-(orNERyBqo0)3nDEx{GpUM zzYbJ>ud~`XCZjSYz&Im=0yZvye{InfHphqmQCHW3#;jQX>oGS;2Sir!8w;F*bH_`& zSWOm#IPAF?(|&G=osZ?Pi4XQXyU(p68(k4m!eU6%lx^O=d)7B%!8b|*j8}Z|q+@u(MHi8h%-`C09`Z-smn*i19 zzqmYRzMNl|CiMa;Eb`@$ZZ3`IzN)xSzYnLOts~bnY%wWTj%#|HjPu?5G?RF~XnbLD)8KFvE$L2U?xc(RKp-y;zd-%U zH$Goo_rH11I@Km`f9=;BpuSjFkMPpWpTGf`v23aHl`$(R>=@P2WAR+B9{1%A;+D!= zwR!E=PK*G6U2&{Q`s&*?%O3CPJrt?Hl`;yq|IR%E994;@#c}efG~ijz96fPnQMx$g8D3 zOq!|FW=emn&Mu!Yb6PO-qW&`Fd@Q9)azB-{D;by)rl&z4RYh$MTY3FTe5q9j8RGjE z-0FHRtI!gg??vm*7I_`t%w~=MnrFUzrN8uR+_os`e24jRXI$le=65+@wXIh}uM*dG zN3z_EHA&Rpvhi}>{mD`JtHYs;Y5ab(>--Vo@@V3s2ywoq@{sAr^u=K%Gk;h6B6+C| zG>X?uH2vU2PQgl^0LH~f-Y3#{zB}pEOk6N>G?kNAd1N@Q)36&|%3WAB_g)mTvu1pG zDtOBWS1Wn{R5I!huVqS?Pf6*`UVT#j#(TBOR(L*Cz%u1@FuS6=ktFMW6$;pDzNR43 z2^r(fx6njv&*fRq1O_O(2OVkzod#5x_rEyo;}#jakJ+GY0upkjWPI9B)heDPs9tC* z=*S@s`9S8sa(dR}nefziftA_DtlU0~7!#|?)Kpd=xtcQ-b*;X9#p;alky-&0exXX( ztEOPZdHBlDs5UIUtg4)+9;)d0GOzHgs#4@P=;<>XyeqBDx z(Za=#`6Y66i1FFnm@}Gj1UxI&M;;K=1-TXp`NTA{zx1`^o^8`|$1R)psDlbw3qAQs ztqVxHQEV}*Aq~s!oo1N_%75jh&Obq*2j4)IoA>t*tC`T}XZ9!j$h=){sgXC(tnt@l zh9B1+(5+~O3O8Wfjc#es8OQ?BBbnBpw$o5WEl)h3{iYDUEz`Pu?FmzH*Y|=5%t;$4 zhM3GO&I%-vtq$dT7g&Wo1E)%y)kFMLbJAh#(EKXe-LT4; z%4>&$FLg!B_noYRqIA@7g9&8dmPFoxcUJO(2=LLUrCd#MkZw2xlI}cSK97#V>qR;5Awt5u31DWl>XhTUguU`%qJ@qb>=5 z3uO>e9L>H^&vMO@TGd(fNX~&LRytlA;8{b^l+2xe_8aFJ_Za#|#4`htx_VJcF&FNA z_Y{MugNRz@+Q=#Q6J*yY`pMt9_EQ*NFpVkh?`!%^bl)x5I@IxGG0y0+Ks)Ck zR4GOt@FLbd3bg3?qWZp}TJfEg&lkEd#%zBcv>q5X%FvVpGt;se{tn#j??|tEDXpfi z)BL|odkLB3`y`$C|Z z$qbIU;@kHuvysaehvJ?RUx_}iPQg}>^<1p?kPs-nEzIhC{U;R(0m(#1Q*;B!KBLjl zvkUR7(Zq)o`;TIyjRb&rTgxx|1uUuz8zq$;Y^XEap#1xP_-64_tD`2xs>|=0^38E6 z4amdbE0;=x{_9k_KtjBFI`Ok+5%|9XquU^rm|%;EQwDHf{|A&Prz!@_!7CsWyPubG zx6MEauy2mVTHJvY4OHkzS^{kFMgr~*N02#O4`|leqE)?rr)_%p?EA&=QC(K5+ zhJwd7&df;|IGHF+t%M&q=zTB{cw+Tle+8JsqVp|TsfgeMR)*T%cZVThG^OVt4cJ}r z_W+`4Wvp9(%9Fke%%?aB08$Cr{ia}0RtIG>IG{Nb$kV`sPz29b-L5u8b^>%Ef>477 znkWky}Emp1VTCk3xCZGhy^4Tkb` zL#rH_pjUnTO?sA*teD!P7R+64 znVq!Qa3owIbwhMk8$_v-?(F;uluS8wAZ34?&qub93(@< zZgl+0*~^DCfQ%(zIXXDzJ-)W!OOWUn43*c#ZU?WU2KgM@L$l|1uKx8xgVR|F$0b&b zP%zd4Jeoe}m=k`dN0c=1r%C9dUIvAIxAk}Y_Ws9^yc+U~(>(o)dr4|Yr=)J%$9FB= zm8U}UL_hfWwp)Nk95PG^+yut?@HG_bg(81%S8f5>mg%$ck%nP;!jNOn9CpfuNdN7H zcp-~7$vrZ!!P0gu)+MAa?)CMUk9_!0+DPRBRF_BF-T?1+KK#frQkmMN1l#eiPeSE? zgxX0z>fxl)2$q9;!M}-=-3)*+!USSP`I5^gK4*J~gTJ9x(>sqhb>kv>?K|?rS6|?l zs0LVg>>cEm_GvIdH^RWf#iay^Ya1!Pf?-DKw}9Qw4GT1#S`~QqD>O2N?TnEnyf!lH zS%^FciQ@cd6am>_jS9I}lT+YBkyhRlP*6VABrbm!>BIw0H9*JRUfNbp)fxGu&;Bk) zRqA}dVqM1(q&p)m?1>Hjc)LK%N>iOMy{+f0v#0DFWGe9bLBagl&eVegWO0{pKP-te zsa3_m!ytuBed3O>sQvSLVN508jgJdnjHg|-=prPsyk4F(f@J6wOoa`l8|p1t-Y z*2rsR{e#jy8x4AF7@a(5CRm17*{Rd~hG|}^U3%1FeiOvYq5g{(-kp<}U0lKB9gfco6E8%O~;Ue6l_%{IVb^Fd0FyWx!hL zYR;OQZ|FvK%LAHtTL09=h?>6#CNr<`r3K>m-T7LeN)OACIGLph-dqR(Em&gJ$(mrT zyQTRj0<3Y#5VoD;dFH;=TSPxt?(RHXd-mEUu2rov@D!(SNW4!lTJDRUJvFPoQ(tiq zN81#|&Ex>rU8RuGVbZ8}AGm8FqVq+ifFx$!jK))(wAwwL?PIG)Qc!LR88_He3~bt- zF&+LmKe@dU9CLP9OW5fsYE#b4t{H2J5=*#UN)G3f1_g40W*S~41ENMqIlWEfj$NW0 zB*Lgyt?)M9%mLE5Q!2@m}21LBy`!Gl#T}B z;Sp)S#jzPgEb=&sJ6vumu?J?O9Q?(Uaipm?E4gChqfm;_?$Jgy=bsoJ4BfZ(;>y~# zp?%g|ZbX~RtNf8cKx-_R_Nq`~aqu-+3L&xZlQKuHBzyE+RgZ!ELh$|Y#jol2mU}*S ztVYN&njtc}R-$+fGY)7mp<5MUlzw!AFFoA_!pt6`Pi>di>TLdXp{L5y%SeZ|Z6Q2F zeFaO_1B|#;99rjua3TPGP|B#3Tqj?a^Gh#5;4R(1k7!1B4L2Cw*=3*o^`tE1FjqP9Km;gQ zacQ`Ol#hRM%kPN0_5IFFU41IygjRyeTh6>oPQ%|3awO#5Vf1%Zq^C_jKZ)pg7P)kU zNAvs!e1foxay<7%Ew1?B>4M<<6%k7Kx}R~z+J~4k?{=ELyK1jbbUOlMg3qgWFd+y)GO(_am-O>u5G_P(ayN7~8-n$Q|z2jiOm=0-bn_ zBo6%R-gD2K4p&;DnGt7<{oMgXEt_}G_I9)fm5n4 zVhVh#8PXn*0+m?fRD-wBD7J~^5omy1`t@}tif(y)(k;swK&Z4^dFy)usF#wpfNVB# z^XMu>Y6%u$Lz>94`_sG(GR@Y_8S#>VqFs)+dZfts#YaWFA7<3u{GsnFv%%6R|CnIr z#VwT!yfuyY4|ei!`dTHQu*~qX&jMMEJPm!HM&LYIq(KJd(YLZrm^vuh-n9>TmGQQG zyd37%p~iZi!N>;R?tovoHf-54~ouKBG={Gb_?XBc>ZQehLMEFl-Z#^AkPQmUaUl1VEg z29OSFj?P7)U&Dimxh10oebHjmeY-2JW${?~Q5L9TQ5|1P+Fp~p@r>M`Do05u5EC%r z_X@inbcs0}3+BD}wLWWQ`~cf{=^v&Q+2vYsu%U$13 z+^OI4Et1=EDg{d5ckFg;J3nbS5}jmjrgef3Lwa897vBYUMoZVEQTxwY-v+dz=E6r--~JCr2$Omw1H);WF>a%scf-HhQJkcvYhB{-I4{`8&yC>kJni?hyWZ5%SbZcm z)#BJYgxGG^jMNv#L&4J5%xuW&Q14{JjV~6B9mv3MI|hl80G0CYcA4tW`rtmcn?8M> zQy;^G@R__f3CHiu&UiYWFF?`$1|;9f(@(N#ROyDVZSMgRvL!jGnS(!u;Hpq)?Fl&b zjdHwCJ8NhrCY&$uB`q8HJHC9vCx@EcgC|)}l-bhU!)-Fu6OCVW=59Qy!4*3d&ziqtY9ImlG-w zGa}zliy!0kU?IO3V)7XlsVb+Rn3aPi1ftoOHkP)NGs{A{n<%5nls{$+WL=fecWKgm zgoTT4a9&L(>FAjqe@2+Oaoy&yUI8Jclz}FfV~V zm>kT(l6IzY-baivr?hNT-)>M~!m{$tCOlo-@?~l>Q#^2*thn#A`NBI1xt(Z!p}Ku5 zE3&`ETK#)x%a-JtNobjuH^FT^^t#Xx)L|u*reB2JaG{d-K5M~Car5=1y3kbc%Bg)1 z(>bp?Zm|t|;401Wn@3*19M5EzCt$7K6No*OoR$~JnTyU)x!|^nxX|t0<4|$Q(jV9@ z4a^Ship#U1iv13mi6#1!9VMFY^w+s~&=#vgJrKSy=qt1PNzl6GH^Bpd!KAm}uwPab zn-T2WFYkr+J;dD1+vDn~wnrbmz@q4(pynC;ys}&1GCP?4)p7QjW9cyWym1E{1E?f` z51MrSD~m#-B`T9^{L~RdSIuC5D9F zk26bu*ZyWL?u_dXevd205`>kv8~JYZ;dd(iK&*aKO5oPS&`o$#;-nvT<1W*CCxNtM zqIc0f1FR{JAV$wCrw~QE`jR614x=*h9G-pwKd<(@O&?^GmdZY z>h>KK*)&6~Nly$UWIX}K(Xsx1Kf+knZ4;zvVj7;O+BEu#RDYjn);V!)(xt~f752aq za1vF#Ca8r43f_b-yejXeF0rGI=Js7UAml_k-PIar4enhM2lC~xC2FI^op|=Ram%6j z5qS$nZ7uw$M7JJ~_fag!N9y=HsorSRnW1t@u8&#kyKDK`ROD=dYB^-CcqNTR9~&K3 zwOE<%1{_n~V(mX18H&BzXk_>cPkjd;kHQGO%#L72A2Jp>-oEqZ9Op^NudHdU7k>KlH{rsD996L!frRJ29aVG~CPf@KkKxEr_F^uo ze5aU-;5%kQi(3_~s;hfIzSy!w$IIgrVd2NJboJR@Dnp#pH;*_+w=YkPFY{X^wX~D{ zp2HWulGUH$Tq|WD3V8@DwN-})IC3!EgfRkZwqUVW>R~~{!CMoaGEKfmvj;srB zT8YYE!L`8@)o8VX9JRL_;YmbAKNqHc2&nBo^%1Rk9v-Z;48__y}Xex2?0I9~m-`WIiZXu#`C)B9VVHpn= zypv(>5bI-DZFit;v^f-=jj`g<;3b_A3Ad+dLd}WXE*udUc+8PhW&zrGYIvk}xv%DU z9Z51TxvCyPhkOJelTjPoG{ot}-9w4q_2d4oRiYc*E_!{K;|a-|mZN10tWW2nbkeJg zpBR!^LYU0HTg@;3o8yx80+D3N%Zp3vMuA0zAw+|`PyCXPlx(LR$0;=!JbiNPE{U0u0$ zQ2m>+RIR9_76CrFwnx2JVG!p>nw;^h2=fjezr_zTdvfBM`U#4RG?7qoC!LWE&tOhk zR+e+3s7~Q#$Ylx}z1a~Wj+LO^61)NHZ0=%l6%tUpVkQL}pFwbZ;9>@`2Qpw{jK?5ntygQCpsfg|IW{%{$!vDs&{ZszqQ8b-4o^M|^808p2}F*xe-zm1~*Vg>)dIaD_fTGyqOSwLgTL)ekk{|ra> z^@F8EQ$dT8te^?>Ihpv{1t6_9@PLb?9a8#$e>_Gd_?! zY!s6cd+&*5%d=Z9oQ)aJu{f5Acfm3HOQ_d6d*Ld}OW*5MG|r}&kG})I9x;r!!Zw1w z8!}y(AKu(mJ2AC6ERzoeCz&Ql+#{-!xHT%@2xy&cV#Hk;36{iA7un|x8*MR3EUVms zVR%=_C~y07YIv~iLETHY5B^#;<8h;~>OLcQ)Nf#PfntFtn7I7%Ytyejmy zGZY3Z-%)2?i>ooZDur@3EtSj$I9`CDbf=go=K!Z#{l&vVrSpjN1cyRfrC8ooMNSV@ zOraldzz2e$Et>pt@6KC%PFJ!kX$qZH2cj704_5Pw9H6X3a`Au{a7zEgOKB(Cp?0HU z3?~l87~8Qe)`llVxdFCVyK-s4K-;in+P?gVs$zuNZ$O|V)Z$=Xdl(3%d8pgQ5TWVF zkrTJ&%$ixMGU`y_>hDK%g?1p<4rJymP+)x-l`Wom{iaJg(f#f*wEQh$W$ZFzH1}D( z?QIt1d-m@0bt|db%*y(YUkyCUqz8qPq5fpl74q1-EcYc_e}_f6eZPu>*I+10dlJNQ zn_OyyUpDSGJ&Tvf$w8owp_>-AuoJjgZveOcmI7bX0zEXb^j+8unch$ID#{YF^#hjY z)jfcm#_r|m{&cwLti8ytT!9HHZ!p>lNW?gqgbn#k)x5Sw#H>6)k+0PzJ82kS2IR$3 zUwu;YiSz6XXNGdnv;gj>xibK$2sP(w`Csd12im-YAbXn+OVm|{aPnitgF8_+UT_H0 zD*TD_CLg}~Mg|YdN2w8ymbX((e{z2(Wc0C}4)NBKq4!4lhGiUGT>Em#{-e1luj9}l z@sJ#0d6bt3614$AakfP37p(I`-NK)Re})Z!~<`XT2u7FUVl)3{O{ zjG)EKyQ@_nzYfAL3}(ov-Ms?^F*r5kIeh(s)Wu68%gMzoheV)i%t4;1X$oKH-tIBe zMBu%M`39^j2{ut-eA$^%h~)<>f+4?~_8>B=DCGQP^89Ec=GKaf?*_B8DfOT2(hn~A z0z|G*dVHbVAQhJi3D#vC^J?8i{P4)rLqj{G=MlY) zzZ_=0LyjS0%em9)f!(ZXHwgkP z)PK_`0ICBYe)zxUjXd}Q8>w`zA86j9`+a)-6)zGPzQC)Sd0aW!d4OR67Z3s0h)4^h z6L540KLuisM*M9T6clHcEx+_LxHYJuW&PWgpvnG&!3<5Y4t`PSE2b)=GJyFw2 z{r->G^$)-bfIh$g^lv@}p|1c;XANC68T)6j2KnF+>K~2fzd)!W;kndfzVe?-l3JV! zbmeKKjYr5_+z{{oEuwM5WPjY^E%SaegJ8qbtv1NG=|}Uz z!jOMLM7a{f(jTCXuKk+aV;Pwo2r`-9VYkER@N0q79Y?>tPx^JAAzp5sw)qob*Tjm} zb886t!{YM2;lHB+H>}0MtkyD;%s+V(XN0URk-UD36>LWJh#T#7i%+-46CKCha%;lZ zK=Vp(=xspjeQvBnfciV8#O1GX{K<^;W|bv|@aKWj?;1FeI^Qb4X^{l@< z(J}@lQ)oF~Krf&28s|b#=@fFmAz)ovo&E#j{{X1^!e2TLS)VTasp~%52l2%P@U>X5 z@tw#{vg4g(g=-;;RRX=->II|~G`A%Y7O0&3-G`yOS{BR;z(81j4FSm@>i6)vCXtF;m@4-TzYB{lb%hgUQU*XO$*(O)IlRs^Va{pUap|{agN7 z1-3>}%B*mc`Rm_#LbwG&MOuPetVNw)fx4p_wFM&%K5zJ>eazO{6T!rDUS^XA$J0Qg zB8AfvN41mpT0AB+EEJNit_pXw&fw-fQDfgW6>TdhjIx%f6&L2D?rlj z6D$K8XQ^vCA^*ne3imwn3wK4nkJr#LvGg`HJl9<7nMBYhM6n03)_?D@BOpR%rQOYbN6s#PzKx(iR91=Qo%U!$m^I;d zRQOvt{kPZu9cBCczhA7Ufbnp)X_iP8o8YF7w$J>C8J-@ZPO)A!-aOAA+>#uZN7kl=>3@8u$VJb=o{! zN9g*Mi@|Kk2RIvfWB#YxJwZ}uvtz*=$-Zw$$|0_qY0zN^1F#)#SfT|zY$t8pY{e-cx~cD$X1^R38-a`M>2wu_x+(a z1LnsKOZi(H-aWMO_08x`X&2*MpKoKF6azL0FaraQ=AR73!@>jzUGP$Ww$QNA$*XbyqGYu5vJ6 z5zc;iZEtlO&}OR^S(VYswMNHH)D*p1vX)G}VIy0BKlrb~{i#AA}Z zH`fn}5We(oEn(z*s-hYaZ87YX=UhL2*UdAuGQ11OxQgY}{q;HGl{d2G?&c_&2=>>p z_OmYcPbX$B4##M%68qYn(|@tAc4e^2>@7YNew^x*)xEM*v*PgOY;V=XFDc^WFGbI& zqLIMlspZ+R%pw74?UANY{G3WH%l#&G-YXvuy1{X4pTi_rkCP{84{Z?j5*oFtZZ8>q zeHmjV$NSv}6_T1E)JCsn*HcM-t@9hb@+w7N==2$+k>s-qHHXy?&DppMfSBbA^h>%@oxG2Z_^GX2?PMmA> z_P6YF)BB$BDJQP6@p}G@fx6yXwQLlmt{Owldl#a={-Ga?>6(apdwY-RMnpkK!~nhq zXqNq;tUtjrZeG!9Tv|3u(g7(_Y^(|5aCj0$jJTQG9Xxr{ERUpxwJ>kxMyd!qUkTF% z;NCN#K#8~irMIR=Q*bI8GH%~6wIy^b51gu6$O&YGZ6PK%zPIW#cA$-Iz%nvHA>N`s#Zyq~l22ROGI0%TFwJzCSP_Kn=HmR|%p+ziLcG zy4U`(F&2TP6TJ+~epu9Aap*2hKKN1)RL@;h_tJgR8D0MAZa0@{0)gjew`)^)C&@dZ zR`(+zrVUVCSJkUK9XDV+c>(uvU0xGiLAqbO+!x!;>7b;ukWZ1hMFJYDl&9y)CYy!# zOi?+pwg6SzGX!(-n*$nwPLgJ-n?c_pP}imrZ-FG5(p}rih6XUJT3KdUgE#Uifs3B5 zd>jJFcfQ*kcC@s;HD|RQ+5{19%vC^7 zak2{&`sSB%D7NWsyg4YcVRe-y?30KV;mQ)@+7Y)#JyukS!?$t9V`VXf-=&@gE~-(W zp(as2H07*uJD=v~fN`k{?bzuax@1-KrGA^+Vs5lec4WNtDQE1dj@!eiAx9-@&x$_~ zMM)sg)P>{H4L%OAVO`d@iIwpBY!%XNevLA-|McV=`Zgqz`Sx60dp#u&E~!0~+9RNa z@k3-B#aFtVG)xFSrAZYBV;>LSe^oYatGXI=-V>&F3cwQrIldpZ1IvCQTHOFLDD?33~bAaq{_> z6AU4!=PtPEj?zEsd7>~K9^b$}_;?HtXEp!dbydKdeGDIUxcDGU^W}zDMu%ciJg{F4 zX`75qd`UFGhu2)=-2UFehO}2Naw-@VNC@(gBr7GN!#D?!E&SVMZ8cz~?2Gxzh_frD zH!G[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 literal 0 HcmV?d00001 diff --git a/assets/pgr_tab.png b/assets/pgr_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..7f90c11bc565f9e41a709da47d86f4b7107498d8 GIT binary patch literal 32027 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 literal 0 HcmV?d00001 diff --git a/assets/star_rail_tab.png b/assets/star_rail_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4c768afa7d79a30b45257c13915c5d525a028a GIT binary patch literal 19212 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 UC0eMnM*si-07*qoM6N<$f)_S~j{pDw literal 0 HcmV?d00001 diff --git a/setup_wizard/README.md b/setup_wizard/README.md index d15a51a..0d3fda1 100644 --- a/setup_wizard/README.md +++ b/setup_wizard/README.md @@ -6,6 +6,7 @@ The goal of this tool is to streamline the character setup process. Whether it's **Important**: This tool is intended to be used with: * Festivity's Genshin Impact Shader, found here: https://github.com/festivize/Blender-miHoYo-Shaders +* Festivity's Honkai: Star Rail Shader, found here: https://github.com/festivities/Blender-StellarToon * Nya222's Honkai: Star Rail Shader, found here: https://discord.com/channels/894925535870865498/1127604826885328926 (Omatsuri Discord Server) * JaredNyts' Punishing: Gray Raven Shader, found here: https://discord.com/channels/894925535870865498/1186597049198727259 (Omatsuri Discord Server) @@ -26,21 +27,15 @@ The goal of this tool is to streamline the character setup process. Whether it's ## Tutorials/Screenshots ### Screenshot of the Tool -![alt text](https://cdn.discordapp.com/attachments/890116796034711595/1014970456572436530/unknown.png) +![alt text](/assets/genshin_tab.png) +![alt text](/assets/star_rail_tab.png) +![alt text](/assets/pgr_tab.png) ### Tutorials -Download Tutorials: -- Installation and "One Click" Simplified Setup (First Time Setup, No Cached Data) - - https://cdn.discordapp.com/attachments/1015585109639974922/1015585432026763284/SetupWizardUI_v1-0_Installation_and_Simplified_Setup.mp4 -- 4 Step Menu: Basic Setup (First Time Setup, No Cached Data) - - https://cdn.discordapp.com/attachments/1015585109639974922/1015587153058746499/SetupWizardUI_v1-0_Basic_Setup_-_No_Cache.mp4 -- 4 Step Menu: Basic Setup (Post-First Time Setup, with Cached Data) - - https://cdn.discordapp.com/attachments/1015585109639974922/1015746432482943057/SetupWizardUI_v1-0_Basic_Setup_with_Cache.mp4 -- Advanced Setup (Post-First Time Setup, with Cached Data) - - https://cdn.discordapp.com/attachments/1015585109639974922/1015587532362223698/SetupWizardUI_v1-0_Advanced_Setup_with_Cache.mp4 - - +A few kind souls have created some video tutorials (for educational purposes, not officially endorsed) +* (Micchi — Genshin Impact-focused) https://youtu.be/S7mFQveRNcc +* (fnoji — Honkia Star Rail-focused) https://www.youtube.com/watch?v=QY37vbfrLh4 From 30fcc0103098da041418eec6658282f1aef5224a Mon Sep 17 00:00:00 2001 From: Michael <8632035+michael-gh1@users.noreply.github.com> Date: Wed, 4 Sep 2024 15:18:23 -0700 Subject: [PATCH 3/5] fix: Light Vectors not created on Brows - an issue when not joining meshes together --- setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py b/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py index 36a3985..c6c6a5d 100644 --- a/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py +++ b/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py @@ -73,6 +73,9 @@ 'Clothes', ] +meshes_to_create_light_vectors_on = meshes_to_create_geometry_nodes_on + [ + 'Brow' +] class GameGeometryNodesSetupFactory: def create(game_type: GameType, blender_operator: Operator, context: Context): @@ -289,7 +292,7 @@ def setup_geometry_nodes(self): # character_armature = [obj for obj in bpy.data.objects if obj.type == 'ARMATURE'][0] # Expecting 1 armature in scene # character_armature_mesh_names = [obj.name for obj in character_armature.children if obj.type == 'MESH'] - for mesh_name in meshes_to_create_geometry_nodes_on: # It is important that this is created and placed before Outlines!! + for mesh_name in meshes_to_create_light_vectors_on: # It is important that this is created and placed before Outlines!! for object_name, object_data in bpy.context.scene.objects.items(): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): self.create_light_vectors_modifier(f'{object_name}{BODY_PART_SUFFIX}') From db6d84eea35f00399501dc4487502b6b9c6cd25a Mon Sep 17 00:00:00 2001 From: Michael <8632035+michael-gh1@users.noreply.github.com> Date: Wed, 4 Sep 2024 15:20:14 -0700 Subject: [PATCH 4/5] refactor: separate outline mesh list based on game - then combine them together into one list like before --- .../geometry_nodes_setups.py | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py b/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py index c6c6a5d..8dd2245 100644 --- a/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py +++ b/setup_wizard/geometry_nodes_setup/geometry_nodes_setups.py @@ -46,7 +46,7 @@ NAME_OF_OUTLINE_4_MASK_INPUT: NAME_OF_OUTLINE_4_MATERIAL_INPUT } -meshes_to_create_geometry_nodes_on = [ +gi_meshes_to_create_outlines_on = [ 'Body', 'Face', 'Face_Eye', @@ -61,19 +61,28 @@ 'Wriothesley_Gauntlet_R_Model', 'Screw', # Aranara 'Hat', # Aranara - # HSR +] + +hsr_meshes_to_create_outlines_on = [ 'Hair', 'Weapon', 'Weapon01', 'Weapon02', - # PGR +] + +pgr_meshes_to_create_outlines_on = [ 'Down', 'Upper', 'Cloth', 'Clothes', ] -meshes_to_create_light_vectors_on = meshes_to_create_geometry_nodes_on + [ +meshes_to_create_outlines_on = \ + gi_meshes_to_create_outlines_on + \ + hsr_meshes_to_create_outlines_on + \ + pgr_meshes_to_create_outlines_on + +meshes_to_create_light_vectors_on = meshes_to_create_outlines_on + [ 'Brow' ] @@ -246,7 +255,7 @@ def __init__(self, blender_operator, context): def setup_geometry_nodes(self): self.clone_outlines(self.material_names) - for mesh_name in meshes_to_create_geometry_nodes_on: + for mesh_name in meshes_to_create_outlines_on: for object_name, object_data in bpy.context.scene.objects.items(): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): self.create_geometry_nodes_modifier(f'{object_name}{BODY_PART_SUFFIX}') @@ -296,7 +305,7 @@ def setup_geometry_nodes(self): for object_name, object_data in bpy.context.scene.objects.items(): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): self.create_light_vectors_modifier(f'{object_name}{BODY_PART_SUFFIX}') - for mesh_name in meshes_to_create_geometry_nodes_on: + for mesh_name in meshes_to_create_outlines_on: for object_name, object_data in bpy.context.scene.objects.items(): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): self.create_geometry_nodes_modifier(f'{object_name}{BODY_PART_SUFFIX}') @@ -387,7 +396,7 @@ def __init__(self, blender_operator, context, material_names, outline_node_group def setup_geometry_nodes(self): self.clone_outlines(self.material_names) - for mesh_name in meshes_to_create_geometry_nodes_on: + for mesh_name in meshes_to_create_outlines_on: for object_name, object_data in bpy.context.scene.objects.items(): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): self.create_geometry_nodes_modifier(f'{object_name}{BODY_PART_SUFFIX}') @@ -436,7 +445,7 @@ def setup_geometry_nodes(self): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): light_vectors_modifier = self.create_light_vectors_modifier(f'{object_name}{BODY_PART_SUFFIX}') self.__set_light_vectors_default_output_attributes(light_vectors_modifier) - for mesh_name in meshes_to_create_geometry_nodes_on: + for mesh_name in meshes_to_create_outlines_on: for object_name, object_data in bpy.context.scene.objects.items(): if object_data.type == 'MESH' and (mesh_name == object_name or f'_{mesh_name}' in object_name): self.create_geometry_nodes_modifier(f'{object_name}{BODY_PART_SUFFIX}') From 08c7221cf11583443acc54c1ffdf92c4211a88cf Mon Sep 17 00:00:00 2001 From: Michael <8632035+michael-gh1@users.noreply.github.com> Date: Wed, 4 Sep 2024 20:52:58 -0700 Subject: [PATCH 5/5] chore: bump Character Setup Wizard addon (2.6.2) --- setup_wizard/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup_wizard/__init__.py b/setup_wizard/__init__.py index 9cb9666..fff03d3 100644 --- a/setup_wizard/__init__.py +++ b/setup_wizard/__init__.py @@ -1,7 +1,7 @@ bl_info = { "name": "HoYoverse Setup Wizard", "author": "Mken, OctavoPE, Enthralpy", - "version": (2, 6, 1), + "version": (2, 6, 2), "blender": (3, 3, 0), "location": "3D View > Sidebar > Genshin Impact / Honkai Star Rail / Punishing Gray Raven", "description": "An addon to streamline the character model setup process when using Festivity, Nya222's or JaredNyts' Shaders",