Jump to content

Recommended Posts

Posted
1 hour ago, xenodoax said:

We're on our way. I was able to follow the thread you've set up for us @minazuki / @fitzgerald4 and modified the g1m texture for the lingerie suit in Blender to remove the bra, then used fdata tools to re-insert into game. Your method works!

Anyone had a chance to modify those skins yet?

 image.thumb.png.8d8de157eaa265c68e88ed321927f3ea.png

you modified the G1M models?

Posted
12 minutes ago, Haise Sasaki said:

you modified the G1M models?


Yes - using the g1m tools I was able to import vb/ib into Blender for a specific g1m and make modifications. Here's an example where I've attempted to remove the skirt on the bikini with skirt for slender bodies. It worked, but there are some minor deformations to the body mesh where the weights didn't align perfectly. What we need now is a nude body template with default weights, what was called the Square Bikini mod for XVV. And also nude skins to place on the body. Then we can improve that template incrementally.

Looks like we will need two because this game has two body types for every outfit.

It appears we've figured out how to modify textures and meshes though using the tools at our disposal so far. 💥

image.thumb.png.ba8b956e7b7212522a00b95782865aec.png

Posted (edited)

Hold the phone. Have we been blessed? What are these!? Fully built bodies? I just spotted these in the g1m contents.
Check out these g1m's for building body mesh weight template:

c48edad9 - pictured below
bcea6c57
16a61601

image.thumb.png.8c028ec2fbfe1718b24198a1e0faeb31.png image.thumb.png.fb50a19c34feafb01334af7959cfaedb.png

Edited by xenodoax
Posted
7 minutes ago, xenodoax said:


Yes - using the g1m tools I was able to import vb/ib into Blender for a specific g1m and make modifications. Here's an example where I've attempted to remove the skirt on the bikini with skirt for slender bodies. It worked, but there are some minor deformations to the body mesh where the weights didn't align perfectly. What we need now is a nude body template with default weights, what was called the Square Bikini mod for XVV. And also nude skins to place on the body. Then we can improve that template incrementally.

Looks like we will need two because this game has two body types for every outfit.

It appears we've figured out how to modify textures and meshes though using the tools at our disposal so far. 💥

image.thumb.png.ba8b956e7b7212522a00b95782865aec.png

i found in the files a nude base, 4 specifically in which all of them have the same UVs and the differences are only size, some finger positioning and one of them having the head mesh

Posted
2 minutes ago, xenodoax said:

Hold the phone. Have we been blessed? What are these!? Fully built bodies? I just spotted these in the g1m contents.
Check out these g1m's for building body mesh weight template:

c48edad9 - pictured below
bcea6c57
16a61601

image.thumb.png.8c028ec2fbfe1718b24198a1e0faeb31.png image.thumb.png.fb50a19c34feafb01334af7959cfaedb.png

7ce546e8out
16a61601out
bcea6c57out

c48edad9out

Posted
2 minutes ago, Haise Sasaki said:

7ce546e8out
16a61601out
bcea6c57out

c48edad9out


I am actually stunned those are in here. That's like, throwing us a huge favor.

Posted
1 minute ago, xenodoax said:


I am actually stunned those are in here. That's like, throwing us a huge favor.

still not that much if modding them is a tedious task, and the posibility that we dont know if the game has mutliple meshes of the same costumes for the girls, and we still have no guess in what normal map, specular and even base color they use

Posted
6 minutes ago, Haise Sasaki said:

still not that much if modding them is a tedious task, and the posibility that we dont know if the game has mutliple meshes of the same costumes for the girls, and we still have no guess in what normal map, specular and even base color they use


If you're referring to the skin textures' base color, we can find what skin texture goes for which girl by using Ninja Ripper and comparing the output to the texture list we've compiled.

It appears that there are multiple meshes per costume, but it's not that extreme. When I removed the bra on the lingerie, it did so for a handful of the color variations, and skipped a couple.

Posted

Cheat Engine Table for Ver. 1.03 Update

Added to edit Girls Interest, You should lock the value for unlock the scenario route. (Red cross checkbox in Cheat Engine)

Removed the unknown address

 

Download in original post

 

Posted

Tamaki Default Outfit without Acrylic Nails

Preview.jpg.f8c290dfcab72fa17c56aa600cea98c1.jpg

Simple mesh mod to remove all the acrylic nails (fingers and toes)

 

Download

Tamaki Default Outfit without Acrylic Nails.7z

 

 

 

BTW

There were some issues when I removed some part of the mesh, it seemed to be a weight problem, but I can't fix it by transfer weight with the original mesh.

It might be necessary to paint the weight manually, but I am not very familiar with this.

Misaki-without-sleeves.thumb.jpg.c1e72750ccf8ec7c603c7406731dd597.jpg

Posted (edited)

# How to inject new mesh into target submesh

 

https://github.com/eArmada8/gust_stuff/wiki/Transferring-a-costume-from-one-character-or-game-to-another

 

Using the Python script below (which is based on the tutorial at the URL above) you can inject any new mesh into target submesh in Blender.

I’m sure someone will eventually extend JOINT_PALETTES to remove the bone limit per submesh, but until then, this script can be workaround.

 

This script takes any new full body mesh (assuming you've already finished the weights and UVs) and injects only the faces that match the vertex groups of the target submesh.

 

import bpy
import bmesh

def inject_new_mesh(source_obj_name, target_obj_names):
    """
    Transfers faces from a source object to each target object
    if all vertex weight groups of each face exist in the target.
    
    Arguments:
      source_obj_name (str): The name of the source object.
      target_obj_names (list): A list of target object names.
    """
    src_obj = bpy.data.objects.get(source_obj_name)
    if src_obj is None:
        raise ValueError("Source object " + source_obj_name + " not found.")
    bpy.ops.object.select_all(action="DESELECT")
    src_obj.select_set(True)
    bpy.context.view_layer.objects.active = src_obj
    bpy.ops.object.duplicate()
    copy_obj = bpy.context.active_object
    copy_obj.name = source_obj_name + "_copy_will_be_empty"
    
    if not copy_obj.data.has_custom_normals:
        copy_obj.data.use_auto_smooth = True

    for target_name in target_obj_names:
        tgt_obj = bpy.data.objects.get(target_name)
        if tgt_obj is None:
            raise ValueError("Target object " + target_name + " not found.")
        tgt_group_names = {g.name for g in tgt_obj.vertex_groups}
        
        bpy.ops.object.select_all(action="DESELECT")
        bpy.context.view_layer.objects.active = copy_obj
        copy_obj.select_set(True)
        bpy.ops.object.mode_set(mode="EDIT")
        bpy.ops.mesh.select_mode(type="FACE")
        
        bm = bmesh.from_edit_mesh(copy_obj.data)
        bm.faces.ensure_lookup_table()
        
        for f in bm.faces:
            f.select = False

        for face in bm.faces:
            transfer_face = True
            for vert in face.verts:
                groups = copy_obj.data.vertices[vert.index].groups
                for g in groups:
                    group_name = copy_obj.vertex_groups[g.group].name
                    if group_name not in tgt_group_names:
                        transfer_face = False
                        break
                if not transfer_face:
                    break
            if transfer_face:
                face.select = True
        
        bmesh.update_edit_mesh(copy_obj.data)
        
        bpy.ops.object.mode_set(mode="OBJECT")
        
        before_objects = set(bpy.data.objects)
        bpy.ops.object.select_all(action="DESELECT")
        copy_obj.select_set(True)
        bpy.context.view_layer.objects.active = copy_obj
        bpy.ops.object.mode_set(mode="EDIT")
        bpy.ops.mesh.separate(type="SELECTED")
        bpy.ops.object.mode_set(mode="OBJECT")
        after_objects = set(bpy.data.objects)
        new_objs = list(after_objects - before_objects)
        
        if not new_objs:
            continue
        temp_obj = new_objs[0]
        
        bpy.ops.object.select_all(action="DESELECT")
        tgt_obj.select_set(True)
        bpy.context.view_layer.objects.active = tgt_obj
        temp_obj.select_set(True)
        bpy.ops.object.join()

        bpy.ops.object.select_all(action="DESELECT")
        tgt_obj.select_set(True)
        bpy.context.view_layer.objects.active = tgt_obj
        bpy.ops.object.mode_set(mode="OBJECT")
        bpy.ops.object.select_all(action="DESELECT")
        tgt_obj.select_set(True)
        src_obj.select_set(True)
        bpy.context.view_layer.objects.active = src_obj
        bpy.ops.object.data_transfer(data_type="CUSTOM_NORMAL")

    bpy.ops.object.select_all(action="DESELECT")
    bpy.context.view_layer.objects.active = copy_obj
    copy_obj.select_set(True)
    if len(copy_obj.data.polygons) > 0:
        print("Warning: Some faces remain in the copy object that were not transferred to any target.")
    else:
        print("Success")

# example
inject_new_mesh("your_object", [f"{to}.vb" for to in [1, 2, 3, 4, 5, 6, 7, 8, 41]])

 

Edited by fitzgerald4
Posted

I'm going to post this in hopes that one of you guys who has learned DOA6 / Atelier modding can help us old XVV guys out.
The weight transfer methods that we've tried just aren't working. We can get close, but just not quite there.

Pictured below is a modified g1m (218461fb.g1m) I've attempted to make where the weights are just not quite right.
In Blender, the hips for this g1m are segmented out into mesh 2, 3, and 5. 
Meshes 2 and 3 do not have an indentation where I'm removing the clothing.
Meshes 2 and 3 build the hips. Mesh 3 is the right hip - which we will be focusing on in this post.
Mesh 5 contains the indented mesh where the clothing was (before I removed it). By the way, removing clothing in this game is exceptionally simple. The body weights however are not.

image.png.7f833a89f86bcbae8efbc6854f3f93cc.png

image.png.e764801833bc28bb12e7e7630be72fee.png

So anyway, mesh 5 is what I would like to mod so I can remove this indentation and make the body appear smooth where the clothing used to be.

The way I would this if this were XVV, is use the Square Bikini nude body template. Since we don't have that, I'm attempting to use the full body mesh in the g1m files that we found - this one is a perfect match for this suit --> 7ce546e8.g1m.

When using that body template to patch the hole after clearing mesh 5's indentation, the weights just are not exactly right in game.
Someone with more knowledge on weights in DOA6 and Atelier - I hope you can help us with this problem.

Thank you!image.png?ex=67f5808f&is=67f42f0f&hm=d442a3806fda972fffa36080c3a2b96d38510cbc608f6ff73bcb5f52080cd3c7&=

Posted
54 minutes ago, xenodoax said:

I'm going to post this in hopes that one of you guys who has learned DOA6 / Atelier modding can help us old XVV guys out.
The weight transfer methods that we've tried just aren't working. We can get close, but just not quite there.

Pictured below is a modified g1m (218461fb.g1m) I've attempted to make where the weights are just not quite right.
In Blender, the hips for this g1m are segmented out into mesh 2, 3, and 5. 
Meshes 2 and 3 do not have an indentation where I'm removing the clothing.
Meshes 2 and 3 build the hips. Mesh 3 is the right hip - which we will be focusing on in this post.
Mesh 5 contains the indented mesh where the clothing was (before I removed it). By the way, removing clothing in this game is exceptionally simple. The body weights however are not.

image.png.7f833a89f86bcbae8efbc6854f3f93cc.png

image.png.e764801833bc28bb12e7e7630be72fee.png

So anyway, mesh 5 is what I would like to mod so I can remove this indentation and make the body appear smooth where the clothing used to be.

The way I would this if this were XVV, is use the Square Bikini nude body template. Since we don't have that, I'm attempting to use the full body mesh in the g1m files that we found - this one is a perfect match for this suit --> 7ce546e8.g1m.

When using that body template to patch the hole after clearing mesh 5's indentation, the weights just are not exactly right in game.
Someone with more knowledge on weights in DOA6 and Atelier - I hope you can help us with this problem.

Thank you!image.png?ex=67f5808f&is=67f42f0f&hm=d442a3806fda972fffa36080c3a2b96d38510cbc608f6ff73bcb5f52080cd3c7&=

you cant merge and then separate the mesh parts?

Posted
54 minutes ago, Haise Sasaki said:

you cant merge and then separate the mesh parts?


What is meant by "separate the mesh parts"?
In this working case, I was simply joining/merging the nude body template meshes onto the mesh 5 which had the indentations removed first, and snapping the vertices on the patched mesh to the meshes 2 and 3 that border mesh 5.

Posted (edited)

idk about vertex weights but i did some more kidsobjdb digging:
 

  

Spoiler
0x6A9EDEDE is some costume model idc
 
0x01F91D38 is the Object::3D::Displayset::Model in Character Editor,

this thing cross-references (use grep or equivalent to search the filedata directly. AlexXsWx wrote some find_binary_sequence.py that i use but he said there's probably a better implementation) to: 


 ac415c0e.kidsobjdb - i think a model specific kodb? it's not like the mud files from doa 6, parent object name hash has 10 other crossreferences that i'll make another post about if there's anything interesting. 

CE1CommonResource.motor.kidsobjdb - lots of shit in these i think it's part of the chain you'd need to modify to fully add new costumes/textures/wet layers but i haven't gone through that for doa 6 yet so it might not actually be possible, and you'd need to hack the main menu stuff which probably nobody will do. 

eedeab81.kidsobjdb - this might be a character specific one? it has two database objects, one of which has an ascii string in a
ColorVariationNameArray
: COS_SOK_100_01COS_SOK_100_02COS_SOK_100_03COS_SOK_100_04COS_SOK_100_05COS_SOK_100_06

Field_Common.character.level.kidsobjdb - seems like another initializer for the objects, idk. object name is the same as in a1c315c0e

 

Edited by doctor_science
Posted

xml.ziphere's all the decoded kidsobjdbs if you're brave enough to look at xml docs but not brave enough for command line tools i guess. not every prop name is known (to me) and some of these files are just ascii characters
 

Posted (edited)

Hey guys - it seems some knowledge transfer is necessary for us to continue moving forward with modding this game. This is DOAXVV Prism, but it sure seems like the engine is much more similar to DOA6/Atelier. I have precisely zero experience modding DOA6/Atelier - but I know someone reading this thread does. We need your help. The meshes are segmented in Blender when importing from g1m_tools in a way that doesn't make any clear sense and methods that work to modify meshes with XVV simply do not work with Prism. We end up with seams and destroyed bodies because we don't understand the weights/mesh system.

Also - what are kidsobjdbs? That's what I mean by knowledge transfer - we need a crash course basically on how DOA6 was modded because we've spent years modding XVV and this is not the same beast whatsoever.

 

This is the problem in need of solving:

https://www.loverslab.com/topic/238458-prism/page/8/#findComment-6997771

If we're serious about unlocking this game, we need the knowledge transfer.

Thank you

Edited by xenodoax
Add link to earlier post
Posted

I think this is the ib/vb import/export problem.

Just import and export ib/vb in blender (Nothing touched).

Then back to the game, it will have seams there.

Do-Nothing.jpg.7d657a824059559ee6fff868b3f8d7f8.jpg

Posted
10 minutes ago, minazuki said:

I think this is the ib/vb import/export problem.

Just import and export ib/vb in blender (Nothing touched).

Then back to the game, it will have seams there.

Do-Nothing.jpg.7d657a824059559ee6fff868b3f8d7f8.jpg

 

interesting. I didn't think to do this simple test. I went straight into trying to make major modifications to the body meshes and was heartbroken by the result.

 

If there are seams on a simple re-export of the vanilla mesh, then that seems to indicate something may be wrong with the mesh export processing script in Blender.

 

Can you try that test again and make sure the weights are normalized before exporting? I've seen a bug in Blender where even though you normalize all, it doesn't actually export as normalized. Try deleting the mesh from the project, re-import, then normalize all, then export again.

Posted

Just a quick question for those who have already played through the story.....where chronologically does this game take place? I know the Xtreme games don't have a strict story but if you had to place it somewhere, is it after DOAX3 and VV? Or does it take place after DOAX3 but run congruent with Venus Vacation? Etc?

Posted
1 hour ago, xenodoax said:

 

interesting. I didn't think to do this simple test. I went straight into trying to make major modifications to the body meshes and was heartbroken by the result.

 

If there are seams on a simple re-export of the vanilla mesh, then that seems to indicate something may be wrong with the mesh export processing script in Blender.

 

Can you try that test again and make sure the weights are normalized before exporting? I've seen a bug in Blender where even though you normalize all, it doesn't actually export as normalized. Try deleting the mesh from the project, re-import, then normalize all, then export again.

i think we're going to need updated tools and ways to get files if we want to mod this thing

Posted
59 minutes ago, The Heavy Lobster said:

Just a quick question for those who have already played through the story.....where chronologically does this game take place? I know the Xtreme games don't have a strict story but if you had to place it somewhere, is it after DOAX3 and VV? Or does it take place after DOAX3 but run congruent with Venus Vacation? Etc?

 

Think of this game as basically living a perpetual vacation loop with the girls on the island. It has a set narrative and there are choices you can make that lead to different outcomes. But the replayability comes in accruing fans for the girls and unlocking more suits. The suits are tame compared to VV. 

 

As far as "when" in the timeline? Hard to say, because there is no real sense of time. This is basically living in the shoes of the owner for a vacation, then you repeat the loop.

Posted
23 minutes ago, Haise Sasaki said:

i think we're going to need updated tools and ways to get files if we want to mod this thing

 

We can already get the files out and mod them, as I've demonstrated earlier. But we need to understand the weight system or there's no hope.

Posted
1 hour ago, xenodoax said:

 

We can already get the files out and mod them, as I've demonstrated earlier. But we need to understand the weight system or there's no hope.

could it be ingame they're limited by a vertex weight limit that the tool doesnt take into account when exporting/importing?

 

Posted
1 hour ago, Haise Sasaki said:

could it be ingame they're limited by a vertex weight limit that the tool doesnt take into account when exporting/importing?

 


Absolutely a possibility.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   1 member

×
×
  • Create New...