06-14-2022, 11:32 AM
(05-31-2022, 10:52 PM)agnos Wrote: [ -> ]how can I get 3dsmax for free?is there another program to extract fbx from trmdl?
3ds Max has a free student edition.
(05-31-2022, 10:52 PM)agnos Wrote: [ -> ]how can I get 3dsmax for free?is there another program to extract fbx from trmdl?
(06-16-2022, 10:18 PM)Amalgam Wildcard Wrote: [ -> ]There's still no way to export the SwSh animations is there? I keep periodically checking back here to see if there's any updates xD
struct LayerData {
color col;
float power;
float metallic;
float emission;
};
shader monsterShader(
color basecolor = color(1.0, 1.0, 1.0),
float basebleed = 0.0,
color color1 = color(1.0, 0.0, 0.0),
float power1 = 0.0,
float metallic1 = 0.0,
float emission1 = 1.0,
color color2 = color(0.0, 1.0, 0.0),
float power2 = 0.0,
float metallic2 = 0.0,
float emission2 = 1.0,
color color3 = color(0.0, 0.0, 1.0),
float power3 = 0.0,
float metallic3 = 0.0,
float emission3 = 1.0,
color color4 = color(1.0, 0.0, 1.0),
float power4 = 0.0,
float metallic4 = 0.0,
float emission4 = 1.0,
output color out_diffuse = color(1.0, 1.0, 1.0),
output float out_metallic = 0.0,
output float out_emission = 1.0
)
{
LayerData layers[4] = {
LayerData(color1, power1, metallic1, emission1),
LayerData(color2, power2, metallic2, emission2),
LayerData(color3, power3, metallic3, emission3),
LayerData(color4, power4, metallic4, emission4)
};
// Only white parts of the base layer are getting changed
if (1.0 == basecolor.r == basecolor.g == basecolor.b) {
// try to find the color that should lay under the actual palette
// I don't know if this is the method, probably not, but it seems to look better so
color tint = layers[0].col;
for (int i = 1; i < arraylength(layers); i++) {
tint = mix(tint, layers[i].col, layers[i].power);
}
out_diffuse = tint;
// now mix the color layers normally on top
for (int i = 0; i < arraylength(layers); i++) {
out_diffuse = mix(out_diffuse, layers[i].col, layers[i].power);
}
// eye mask, I'm certain it ain't just this but I'm fine with it for now
out_diffuse = mix(out_diffuse, basecolor, basebleed);
}
else {
out_diffuse = basecolor;
}
//todo
out_metallic = 0.0;
out_emission = 1.0;
}
(06-25-2022, 09:53 PM)snowdream Wrote: [ -> ]I don't know if what I'm about to say is helpful or not, but here goes:
I've been determined to learn 3D the past month, with one of my goals being to get some of the Switch models that weren't already posted in the Sword/Shield or Arceus sections up and rigged all nice in Blender. Most of it was obviously easy enough, I guess. After I spent some time getting used to how Blender worked and learning what the heck a UV even was, I dumped the games and used the maxscript to get myself FBXes of the pokemon I wanted (thank you by the way). My 3D experience might only add up to being a month's worth of fiddling, but I am a programmer, so seeing that I needed to read the material information to manually set up some parameters myself wasn't much of a bother either. Open VSC's hex view, copy paste some floats, cool, everything's going great.
At least, it was until I realized that simply mixing the colors... well, didn't cut it.
Besides the alpha mask, any place the other colors connected basically looked screwed, with the color from the base layer appearing around basically everything. It was less noticeable in some areas than others (especially with the off-white that this model tends to use), but it's present everywhere, and makes the fur look hideous on this one, so I needed to fix it. At first I thought maybe there was something RTB did in the script which I was missing, but nah, it showed up in 3max too. I couldn't find anything by reading back through this thread a few dozen pages, and I guessed I wasn't gonna get a response by asking RTB about it directly, so I had to figure it out myself. Fun, considering I had no idea what was going on.ignore the screwiness around the nose and eyes I probably messed up when I did a merge by distance but it's okay 'cuz my main focus was getting my node group to work so that I could reuse it with any pokemon later, maybe write a script to read the material information into it so I don't have to
Blender's node editor still confuses me and makes me sad, so I needed to use regular old not-GLSL to actually do it. Sorry.
Basically, I mixed the colors twice. Once to sort of create a 'tint' underneath instead of just using a simple base color, and the second time mixing the colors normally. Is that the right way to do it? I dunno, but it looks good enough for me to be happy with it and move on to other things for now. Maybe someone who actually knows what technique was used will figure it out completely meantime.Code:struct LayerData {
color col;
float power;
float metallic;
float emission;
};
shader monsterShader(
color basecolor = color(1.0, 1.0, 1.0),
float basebleed = 0.0,
color color1 = color(1.0, 0.0, 0.0),
float power1 = 0.0,
float metallic1 = 0.0,
float emission1 = 1.0,
color color2 = color(0.0, 1.0, 0.0),
float power2 = 0.0,
float metallic2 = 0.0,
float emission2 = 1.0,
color color3 = color(0.0, 0.0, 1.0),
float power3 = 0.0,
float metallic3 = 0.0,
float emission3 = 1.0,
color color4 = color(1.0, 0.0, 1.0),
float power4 = 0.0,
float metallic4 = 0.0,
float emission4 = 1.0,
output color out_diffuse = color(1.0, 1.0, 1.0),
output float out_metallic = 0.0,
output float out_emission = 1.0
)
{
LayerData layers[4] = {
LayerData(color1, power1, metallic1, emission1),
LayerData(color2, power2, metallic2, emission2),
LayerData(color3, power3, metallic3, emission3),
LayerData(color4, power4, metallic4, emission4)
};
// Only white parts of the base layer are getting changed
if (1.0 == basecolor.r == basecolor.g == basecolor.b) {
// try to find the color that should lay under the actual palette
// I don't know if this is the method, probably not, but it seems to look better so
color tint = layers[0].col;
for (int i = 1; i < arraylength(layers); i++) {
tint = mix(tint, layers[i].col, layers[i].power);
}
out_diffuse = tint;
// now mix the color layers normally on top
for (int i = 0; i < arraylength(layers); i++) {
out_diffuse = mix(out_diffuse, layers[i].col, layers[i].power);
}
// eye mask, I'm certain it ain't just this but I'm fine with it for now
out_diffuse = mix(out_diffuse, basecolor, basebleed);
}
else {
out_diffuse = basecolor;
}
//todo
out_metallic = 0.0;
out_emission = 1.0;
}
(06-25-2022, 09:53 PM)snowdream Wrote: [ -> ]I don't know if what I'm about to say is helpful or not, but here goes:
I've been determined to learn 3D the past month, with one of my goals being to get some of the Switch models that weren't already posted in the Sword/Shield or Arceus sections up and rigged all nice in Blender. Most of it was obviously easy enough, I guess. After I spent some time getting used to how Blender worked and learning what the heck a UV even was, I dumped the games and used the maxscript to get myself FBXes of the pokemon I wanted (thank you by the way). My 3D experience might only add up to being a month's worth of fiddling, but I am a programmer, so seeing that I needed to read the material information to manually set up some parameters myself wasn't much of a bother either. Open VSC's hex view, copy paste some floats, cool, everything's going great.
At least, it was until I realized that simply mixing the colors... well, didn't cut it.
Besides the alpha mask, any place the other colors connected basically looked screwed, with the color from the base layer appearing around basically everything. It was less noticeable in some areas than others (especially with the off-white that this model tends to use), but it's present everywhere, and makes the fur look hideous on this one, so I needed to fix it. At first I thought maybe there was something RTB did in the script which I was missing, but nah, it showed up in 3max too. I couldn't find anything by reading back through this thread a few dozen pages, and I guessed I wasn't gonna get a response by asking RTB about it directly, so I had to figure it out myself. Fun, considering I had no idea what was going on.ignore the screwiness around the nose and eyes I probably messed up when I did a merge by distance but it's okay 'cuz my main focus was getting my node group to work so that I could reuse it with any pokemon later, maybe write a script to read the material information into it so I don't have to
Blender's node editor still confuses me and makes me sad, so I needed to use regular old not-GLSL to actually do it. Sorry.
Basically, I mixed the colors twice. Once to sort of create a 'tint' underneath instead of just using a simple base color, and the second time mixing the colors normally. Is that the right way to do it? I dunno, but it looks good enough for me to be happy with it and move on to other things for now. Maybe someone who actually knows what technique was used will figure it out completely meantime.Code:struct LayerData {
color col;
float power;
float metallic;
float emission;
};
shader monsterShader(
color basecolor = color(1.0, 1.0, 1.0),
float basebleed = 0.0,
color color1 = color(1.0, 0.0, 0.0),
float power1 = 0.0,
float metallic1 = 0.0,
float emission1 = 1.0,
color color2 = color(0.0, 1.0, 0.0),
float power2 = 0.0,
float metallic2 = 0.0,
float emission2 = 1.0,
color color3 = color(0.0, 0.0, 1.0),
float power3 = 0.0,
float metallic3 = 0.0,
float emission3 = 1.0,
color color4 = color(1.0, 0.0, 1.0),
float power4 = 0.0,
float metallic4 = 0.0,
float emission4 = 1.0,
output color out_diffuse = color(1.0, 1.0, 1.0),
output float out_metallic = 0.0,
output float out_emission = 1.0
)
{
LayerData layers[4] = {
LayerData(color1, power1, metallic1, emission1),
LayerData(color2, power2, metallic2, emission2),
LayerData(color3, power3, metallic3, emission3),
LayerData(color4, power4, metallic4, emission4)
};
// Only white parts of the base layer are getting changed
if (1.0 == basecolor.r == basecolor.g == basecolor.b) {
// try to find the color that should lay under the actual palette
// I don't know if this is the method, probably not, but it seems to look better so
color tint = layers[0].col;
for (int i = 1; i < arraylength(layers); i++) {
tint = mix(tint, layers[i].col, layers[i].power);
}
out_diffuse = tint;
// now mix the color layers normally on top
for (int i = 0; i < arraylength(layers); i++) {
out_diffuse = mix(out_diffuse, layers[i].col, layers[i].power);
}
// eye mask, I'm certain it ain't just this but I'm fine with it for now
out_diffuse = mix(out_diffuse, basecolor, basebleed);
}
else {
out_diffuse = basecolor;
}
//todo
out_metallic = 0.0;
out_emission = 1.0;
}
(07-03-2022, 11:51 AM)Gugyugubah Wrote: [ -> ]Is there any way to import the XY amie/SM running animations in Blender?
(07-03-2022, 06:24 PM)Nidoking Wrote: [ -> ]Hey, should the Pokémon Mystery Dungeon spinoffs be added on the page?
I got to ripping them now, but I know how to rip them. But for the people checking out the page, they likely don't.
Pokémon Mystery Dungeon Gates To Infinity and Super Mystery Dungeon: unFARC (needed to extract the files) and SPICA (Model Ripper)
Pokémon Mystery Dungeon Rescue Team DX: AssetStudio
(07-18-2022, 11:28 PM)stormygaret15 Wrote: [ -> ]Hi, sorry for breaking the discussion but my hisuian pokemon rips from pokemon home has been approved. I have included animations in the fbx. Just a heads up Also I want to thank barncastle for figuring out the encryption files.
[*snip*, keep down the clutter by not quoting the submission icons repeatedly, please. -- RTB]