Announcement

Collapse
No announcement yet.

The 3D Modelling Discussion Thread

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #46
    Using Meta for symetrical work

    Originally posted by wallygreenberg View Post
    Can i ask metasequoia questions here? Related to AG3.

    Say I've exported an mqo file and I'm trying to edit it for the purposes of creating an xdiff file. The mqo file consists of hadaka, hadakaL, hadakaR, chikuL, and chikuR. ie, I'm adjusting the shape of the model's breasts. So far I'm mostly using the magnet command.

    1) Is there a way to use the magnet but specify a vertex and a start and end point so that making adjustments can be more repeatable? I ask this because I still don't know how to adjust the left and right sides of an object identically so they are symmetrical

    2) Is there a way to select overlapping vertices from 2 different objects at the same time? ie, the hadakaL and chikuL objects are supposed to always overlap, correct? How can I keep them joined so if I adjust one, the other also adjusts?

    Thank you for your patience.
    Meta is an awesome app for modling meshes only [no bone support - pity] and has an option for symetry side to side - warning it does really strange things to verticies not matched on either side [makes them look like pointy shards going off in the opposite direction] and therefore should only be used for small changes before clean-ups - well worth the effort though if modding meshes which were created using symetrical sides...
    As always please give to all the HF and other modders out there..
    They make it easier for us all to join them on their thrones of knowledge.

    for the girls and for the guys.
    Regards Colin

    Comment


    • #47
      I have a procedure to do this, but the resulting positions are unprecise. And I dont know where it comes from.

      Try this:
      1. Join the breast submeshes with the body submesh by drag 'n dropping them onto the body mesh.
      2. Use the Magnet with the Symmetry option.
      3. Export to a new MQO file.
      4. Use a text editor on orignal and new mqo file.
      5. In new MQO file search for the joined body submesh.
      6. In the vertex section select the original number of vertex postions of the body submesh.
      7. Copy these positions into the original MQO and replace the positions of the body submesh.
      8. In the new MQO start a new selection at next line and select the number vertices positions equal to the breast submesh you joined first.
      9. Copy these positions into the original MQO and replace the positions of the first joined breast submesh.
      10. In the new MQO select the rest positions (of the breast submesh you joined second).
      11. Copy these positions into the original MQO and replace the positions of the second joined breast submesh.


      As long as you dont delete or insert any vertex and just use the magnet, move or scale Metaseq leaves the vertices on the same indices.

      Comment


      • #48
        Originally posted by enimaroah View Post
        I have a procedure to do this, but the resulting positions are unprecise. And I dont know where it comes from.

        Try this:
        1. Join the breast submeshes with the body submesh by drag 'n dropping them onto the body mesh.
        2. Use the Magnet with the Symmetry option.
        3. Export to a new MQO file.
        4. Use a text editor on orignal and new mqo file.
        5. In new MQO file search for the joined body submesh.
        6. In the vertex section select the original number of vertex postions of the body submesh.
        7. Copy these positions into the original MQO and replace the positions of the body submesh.
        8. In the new MQO start a new selection at next line and select the number vertices positions equal to the breast submesh you joined first.
        9. Copy these positions into the original MQO and replace the positions of the first joined breast submesh.
        10. In the new MQO select the rest positions (of the breast submesh you joined second).
        11. Copy these positions into the original MQO and replace the positions of the second joined breast submesh.


        As long as you dont delete or insert any vertex and just use the magnet, move or scale Metaseq leaves the vertices on the same indices.
        Thanks, that makes a lot of sense! When you say drag/drop the breast submesh with the body submesh, do you mean... export the breast/body submeshes as separate mqo's, opening the body submesh in metasequoia, and then dragging/dropping the breast submeshes into metasequoia? Because when I do that, it still shows the breast submeshes as separate objects from the body (and L and R as separate from each other). Shouldn't the breast and body submeshes all be one object by that point?

        Thanks.

        Comment


        • #49
          Originally posted by wallygreenberg View Post
          Thanks, that makes a lot of sense! When you say drag/drop the breast submesh with the body submesh, do you mean... export the breast/body submeshes as separate mqo's, opening the body submesh in metasequoia, and then dragging/dropping the breast submeshes into metasequoia? Because when I do that, it still shows the breast submeshes as separate objects from the body (and L and R as separate from each other). Shouldn't the breast and body submeshes all be one object by that point?

          Thanks.
          No no, drag 'n drop is
          1. click the submesh in the Object Panel and hold the mouse key
          2. then move the mouse onto the body submesh
          3. and only then release the mouse key.

          Alternatively you could use Object Panel / Merge all visible, but I dont know which order Metaseq then uses. Better use drag 'n drop.

          Yes, the result is that you have only one submesh. This makes it a bit inconvenient to seperate the vertices later, but the procedure is required in order to use the Magnet on these vertices.
          Attached Files

          Comment


          • #50
            Originally posted by wallygreenberg View Post
            Can i ask metasequoia questions here? Related to AG3.

            Say I've exported an mqo file and I'm trying to edit it for the purposes of creating an xdiff file. The mqo file consists of hadaka, hadakaL, hadakaR, chikuL, and chikuR. ie, I'm adjusting the shape of the model's breasts. So far I'm mostly using the magnet command.

            1) Is there a way to use the magnet but specify a vertex and a start and end point so that making adjustments can be more repeatable? I ask this because I still don't know how to adjust the left and right sides of an object identically so they are symmetrical

            2) Is there a way to select overlapping vertices from 2 different objects at the same time? ie, the hadakaL and chikuL objects are supposed to always overlap, correct? How can I keep them joined so if I adjust one, the other also adjusts?

            Thank you for your patience.
            There is a very easy way of working around that problem.
            Drop every sub object into one object in meta. Join near vertices with distance 0 in meta.
            Save the file as mqo (base file). Open that file again in meta and adjust to your liking using magnets or whatever.
            When finished save the file as adjusted mqo.
            Then create the xdiff file based on your base (joined) mqo file and the adjusted one.
            Use that xdiff file on the original not joined mqo (or the pp/xx file directly). That's the way I have been doing things for years.
            It is much easier and faster than any copy replace in a text editor.

            edit: You can also change only one side of the model in meta and use the create sym object funtion of the morpher afterwards to recreate symmetry in your mqo file.
            To do that in meta, freeze/lock e.g. all the vertices on the left side of your model and onyl adjust the right side.
            The sym function of meta is only useable if your object does have complete 100% symmetry, which the illusion models don't always have. You can also fix this using the sym function of the morpher.
            Last edited by darkhound; 03-11-2013, 09:47 AM.
            HF-Modding/Translation Club Member

            Comment


            • #51
              Theres an 'easy way' to share animations between illusion games, for example using ppd anims on ag3 characters? They have almost the same skeleton.
              All of the retargeting info i found talks about biped generic, but i want to use the animations on non generic bones too.
              Right now i have working the generic stuff but not some 'special' animations of the ass for example and have to decide between :
              -More 'sucky' animations.
              -Stick with one game and his anims.

              The idea is to use better animations with the large base of ag3 models.

              Example :

              Clothed model is from ppd
              Naked from ag3
              Anims from ppd

              Last edited by zeroday; 03-24-2013, 02:38 PM.

              Comment


              • #52
                The retargeting for male chars in Maya was similar and produced good looking adaptions. Unfortunately, the baked animation keyframes lost quality and either had Euler flips or made limbs tremble.

                I also found no way to retarget non HIK-chains, but it depends on the structure of the skeleton if you really need to retarget them. Instead of retargeting you could integrate the bones into your target skeleton and copy the keyframes. I even made this in one step and moved them together.

                Comment


                • #53
                  Yup i thought too merging bones.
                  Keep in mind that 1 week ago i didnt even know what is a bone im ultra noob, just getting the basics to use animations in a game.
                  Can you explain a bit the basics on integrating the bones / where to get info/tutorial or what i should google?

                  AG3 :



                  PPD :





                  As u can see the skeletons are pretty much identical there isnt a way to map bones or something like that?
                  Last edited by zeroday; 03-24-2013, 06:30 PM.

                  Comment


                  • #54
                    You should start from scratch to learn that. Beginning in the middle of the story is not a good idea. I posted a tutorial for Maya which shows how create a skin a while ago. You should search for something equivalent for Max.
                    Keep an eye on the Outliner to see the creation of the skeleton during the process. Also important is the Component Editor to understand what kind of data a skin is made of.

                    Comment


                    • #55
                      This set of tutorials is intended for beginners, but you should be familar with terms of the glossary (link in my signature). Some aspects will not be explained and it is therefore incomplete.

                      Copying some meshes from an XX into another XX.

                      How to copy an XX entirely and use it in another game can be seen here.

                      The selected meshes I choose are unskinned to keep it simple. So this procedure can be used for items or parts of maps. How will you know if your selected mesh is simple as that? See the Skinned box in the upper right corner of the mesh editor? It tells you if a mesh is skinned or not.

                      After selection of a mesh click Goto Frame. This will navigate you to the mesh's hosting frame called Mesh Frame.
                      [ATTACH]238601[/ATTACH]
                      Open a Workspace from the menu or by pressing Ctrl-W. Now you see that I have used Goto Frame several times and the ObjectTree shows several meshes. If you want to keep the structure like that drag a parent frame like n_hide_A into the workspace.
                      [ATTACH]238602[/ATTACH]
                      The new root is a xxFrame which means that you see a (part of a) hierarchy of an XX unit. But it is not a copy. It is a reference to that frame. If you close the XX's editor window (labeled map02.xx in the example) the frame will be removed from the workspace. So keep the editor open!
                      Go to the mesh list and click into open space to hide all meshes.
                      [ATTACH]259222[/ATTACH]

                      On to your destination: navigate in the ObjectTree of the target XX to your destination parent frame. It is always the parent you have to choose when you drop something from the workspace into the ObjectTree!
                      [ATTACH]259213[/ATTACH]
                      In this example the parent frame is map_00_00 and n_hide_A will be a child of map_00_00 afterwards.

                      [ATTACH]238604[/ATTACH]
                      It's in, but it doesn't look like before although I used Append Missing Materials And Textures!?
                      Materials and Textures already present in a destination XX will not be overwritten. Delete them manually before this operation or use the workspace for copying.
                      [ATTACH]238605[/ATTACH]
                      You can drag each single material and texture into the workspace or all objects of that category by dragging their parent node (Materials or Textures). Use the same procedure for merging them into the destination XX. xxTexture and xxMaterial will merge all objects of that category respectively. Begin with the textures! This will ensure that materials reference existing textures and you will get no warning about invalid (or external) textures. When materials and textures are dragged into the destination XX then they will overwrite existing ones.

                      [ATTACH]238607[/ATTACH]
                      Select your copied meshes in the destination XX.
                      Last edited by enimaroah; 05-10-2014, 10:02 AM.

                      Comment


                      • #56
                        Copying some meshes having bones from an XX into another.

                        This tutorial merges a strand of hair into another haircut. As example I choose hair from PPD. "Short (Blunt)" in prpr_99_04.pp/cw_hair_okappa_02_07.xx is the destination haircut. And I add cw_O_hairfront_twinL_00_00 from prpr_00_00.pp/cw_hair_05_02.xx to it.

                        You should have read the first tutorial! Some things will be not explained here again.
                        1. Prepare a workspace which contains the textures, materials from cw_O_hairfront_twinL_00_00.
                        2. Unfold the cw_O_hairfront_twinL_00_00 completely and click on a bone. Then click Goto Frame.
                        3. Repeat this with other bones of this mesh and note the parent frame! It's always N_J_ponyhair.
                        4. Drag N_J_ponyhair into the workspace.
                        5. Finally drag the mesh frame of cw_O_hairfront_twinL_00_00. It is important to drag the frame and not the "Mesh" node.
                          And this is how the correct workspace would look like:
                          [ATTACH]239183[/ATTACH]
                        6. Now change to the destination XX and drag everything from the workspace into the Object Tree.
                        7. N_J_ponyhair was originally a child of SCEENE_ROOT and therefore you'll drop it on SCEENE_ROOT. The default Merge operation is fine.
                        8. cw_O_hairfront_twinL_00_00 was a child of N_hair. Do like you just did for the N_J_ponyhair.

                        [ATTACH]239184[/ATTACH]

                        What problems remain? The new part of hair will be stiff. The physics for the hair is configured in the destination's KYS unit. But that's another tutorial

                        Comment


                        • #57
                          This tutorial complements and completes the one above. What once was KYS is now BPS.

                          Get the BPStool1.1 and decode both units having the same name as the XX units:

                          CMD> BPStool /decode cw_hair_okappa_02_07.bps > cw_hair_okappa_02_07.bps.txt
                          CMD> BPStool /decode cw_hair_05_02.bps > cw_hair_05_02.bps.txt

                          Which frames have we copied over from cw_hair_05_02? Expand N_J_ponyhair in the Object Tree: all of them below and including N_J_ponyhair. They are nicely lined up in cw_hair_05_02.bps.txt, but even if they were scattered we would have to take them: N_J_ponyhair, J_syokkakuhair_twin_F_top, J_syokkakuhair_twinFL_00, J_syokkakuhair_twinFL_01, J_syokkakuhair_twinFL_02, J_syokkakuhair_twinFR_00, J_syokkakuhair_twinFR_01, J_syokkakuhair_twinFR_02.

                          Copy the full block of these eight to the end of bones already present in cw_hair_okappa_02_07.bps.txt, directy behind the last bone J_hair_oka_BR_01. Mind the empty lines, the structure of the text file is NOT flexible! I marked the inserted block red and abbreviated everything.
                          Code:
                          ...
                             i1
                             bone: J_hair_oka_BR_01
                             0, -0.12, 0, 0, 0, 0, 1, 0.08, 1, x0002, i-4, xFF00, x01, 0.12, 0.8, 0.8, 0.8, 0.001, 0.001, x01, -9.8
                             Resistance: 0.2, 0.2, 0.2, x0002, 0, 0, 0, -0.01745329, -0.01745329, -0.01745329, 0, 0, 0, 0, 0, 0
                             Extention4: x00
                          
                             i0
                             bone: N_J_ponyhair
                             0, 0, 0, 0, 0, 0, 1, 1, 1, x0002, i-4, xFF00, x01, 0.25, 0, 0.5, 0.85, 0.001, 0.001, x01, -9.8
                             Resistance: 0.7, 0.7, 0.7, x0001, 0, 0, 0, -0.01745329, -0.01745329, -0.01745329, 0, 0, 0, 0, 0, 0
                             Extention4: x00
                          ...
                             i1
                             bone: J_syokkakuhair_twinFR_02
                             0, -0.2, 0, 0, 0, 0, 1, 0.3, 1, x0002, i-4, xFF00, x01, 0.075, 8, 0.8, 0.8, 0.001, 0.001, x01, -9.8
                             Resistance: 0.2, 0.2, 0.2, x0002, 0, 0, 0, -0.01745329, -0.01745329, -0.01745329, 0, 0, 0, 0, 0, 0
                             Extention4: x00
                          
                          numData1: 25
                          ...
                          Now we copy the Data1 entries from the cw_hair_05_02.bps.txt. Note the second and third column! These are indices of the bones we just copyied! We only need the lines which include the copied indices. Eight bones in a line beginning with the first: So the range is 0 - 7. And the interesting Data1 lines are the first seven:
                          Code:
                          ...
                             i0, i0, i1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0.001, 0.001, 0.001
                          ...
                             i0, i6, i7, 0, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0.001, 0.001, 0.001
                          This block could be copied anywhere inside our destination Data1 section, but simplicity we append it like the block for the bones.

                          Attention! This time we have to correct the inserted block, because the new bones have new indices! We had 19 bones before, so the first new bone gets index 19.
                          Code:
                          ...
                             i0, i17, i18, 0, 0.12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0.001, 0.001, 0.001
                          
                          
                             i0, i19, i20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0.001, 0.001, 0.001
                          ...
                             i0, i25, i26, 0, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0.001, 0.001, 0.001
                          
                          
                          number of zeros (2*numBones + 29*numData1): 560
                          Fine! We are nearly done. The number of bones and Data1 entries have to be corrected to (19+8) 27 and (18+7) 25 respectively and the number of zeros at the end has to be set to 779.

                          CMD> BPStool /encode cw_hair_okappa_02_07.bps < cw_hair_okappa_02_07.bps.txt
                          Attached Files

                          Comment


                          • #58
                            Quick question,

                            I know using the the sB3UGS tool you can easily add in a new mesh and use the copy nearest bone option to rig it automatically.
                            However the copying doesn't always weight the verts nicely.

                            If I export the mesh from the tool as FBX, I can get the bones quite easility into blender. But when I re export as an fbx, the bones break (the bone parents re arrange themselves).
                            Any ideas on how to fix this bone issue?

                            Comment


                            • #59
                              Originally posted by trueidiot13 View Post
                              Quick question,

                              I know using the the sB3UGS tool you can easily add in a new mesh and use the copy nearest bone option to rig it automatically.
                              However the copying doesn't always weight the verts nicely.
                              The bone-copy-nearest option does NOT rig automatically! It uses the weights of the nearest vertex. If the nearest vertex is too far away you will get unsatisfying results.

                              Originally posted by trueidiot13 View Post
                              If I export the mesh from the tool as FBX, I can get the bones quite easility into blender. But when I re export as an fbx, the bones break (the bone parents re arrange themselves).
                              Any ideas on how to fix this bone issue?
                              Did they solve the licence problem with Autodesk? I doubt that Autodesk would make easy for Blender.

                              Which FBX exporter are you using? This one has some comments about eventually needed conversions. How does your FBX file look when watched in the free Autodesk FBX Converter?

                              Comment


                              • #60
                                I'm using this importer:
                                http://blenderfbx.render.jp/

                                The import works fine I believe, as you can see in fbxImport.jpg.
                                Now when I export using the BOS exporter, the armature goes all weird. (I re-imported into blender to see it, fbxBoxExport.jpg).
                                And when I import it into SB3UGS I can see the mesh explode as of a result.

                                Now if I export using the standard fbx exporter it parents and bones with no parents to the first bone (the doted lines in fbxBasicExport.jpg show the parentage, which all now point to the origin).
                                It seems the exporter doesn't like having more than one bone having no parents.
                                With the standard exporter, the rotation, position and scale of each bone is maintained.
                                However, with the new parents, if I import it into SB3UGS, the bones no longer deform around thier own axism but rather the axis of the new parent.

                                Hmm, so looks like I'll need to update the original exporter to not reparent them if no parent is found....
                                Attached Files

                                Comment

                                Working...
                                X