Jump to content

Archangel35757

Members
  • Posts

    2,351
  • Joined

  • Last visited

Everything posted by Archangel35757

  1. I discussed cloth implementation with Xycaleth. He suggested I add it as a request on OpenJK github: https://github.com/Razish/OpenJK/issues/291 In my request I posted some research papers and cloth simulation videos showing the research results (clip#3 is amazing!). We think the best way to implement cloth would be to create a cloth Shader... which would identify the object as a cloth object. Cloth simulation would be handled on the client side (thus it would work for both SP and MP). Also, by using a cloth shader it should not break legacy models. I think the cloth physics could be handled by a new class for cloth objects and its class methods-- perhaps Xycaleth could expound on how he thinks it could be implemented. Until cloth physics is implemented... you fake it by having additional bones for cloth. You use the cloth simulation feature in your 3D application to bake the cloth motion onto the cloth bones. Then you tweak the cloth bones' animation by copying their first frame to the end to make the cloth animation loop. EDIT: Cloth simulation results-- http://graphics.snu.ac.kr/%7Ekjchoi/cloth.htm
  2. Could you use the hit map (see SoF2 documentation) to generate some flame sprites or EFX?
  3. @@DT85 Sorry for the delay on the biped Xtra bone position output fix... it's been a crazy busy week and I've got to travel this next week. For now I think you're fine to press on with your animations using the custom user property "writeBipedPosData" and I'll get you an updated exporter when I get back next week.
  4. @@DT85 Which do you like better: "writeBipObjPosData" or "writeBipXtraPosData" or "writeBipedPosData" ??? I'm changing the code now.
  5. Go ahead and create the User Defined property called "writeBipObjPosData" and set it equal to "true" and I'll email you a revised plugin to try. So it would look like: writeBipObjPosData = true Then in the Maxscript Listener test your new custom property by using the "getUserProp" method as follows: getUserProp <node> writeBipObjPosData It should return the value "true" that you defined. Repeat this on a standard biped object and see that it returns "undefined."
  6. @@DT85 Rather than mess with the bone property... we could just create a user defined property for each Xtra Biped facial object. Example given: writePosData = true Then in the plugin code I can check for this "writePosData" custom property using the SDK method "GetUserPropBool( )" and if it is found in a biped object... write out the position keys.
  7. He is using a shadow rig with Dummies for the JA bones-- except for the facial bones. He just wanted the facial bones to be these Xtra Biped objects so that their animation is saved in the .bip file. It's totally doable-- just need to distinguish these Xtra objects from standard biped objects.
  8. If turning on the bone property causes problems, then we could just as easily create a custom property. We just need a distinct method for distinguishing these Xtra biped objects from standard ones.
  9. Ok... that's the issue. They are Biped Objects, and by default only the Biped root object gets its position transforms exported, whereas all of its child bones are rotations only. I've not really worked much with Bipeds... will you explain how you added these extra biped bones to the head? They don't seem to be in 3ds Max 8. What version of 3ds Max are you using? What version of 3ds Max added these "new" Xtras biped objects? We need to come up with a method for distinguishing these Biped Xtra objects versus the standard biped objects... so as to enable position keys only for them. Edit: I think I have a simple solution... would it negatively impact your biped facial setup if you turn on the Max Bone property for these Biped Xtra facial objects? This would make the xtra biped objects act like Max Bones. In the plugin code I could then test the biped objects to see if the bone property is true or false and if true then export out position keys. By default Biped Objects would test false unless this property is specifically set to ON for a biped object (just like any other non-bone object). So please go into the "Animation>BoneTools" menu and turn on the bone property for these facial xtras. Then do a 3dsMax test animation and save to .BIP and see if this causes you any problems. If not, then I think this is the cleanest solution-- but I'm open to other ideas.
  10. That doesn't make sense... position & rotation should be exported for all Max Bones and Helpers. Are your facial bones biped objects with biped controllers? Or are they Max Bones/Helpers? What transform controller are they using?
  11. Thanks, I'll take a look at it... but in this situation I'm talking about the floating point errors due to the coordinate transformation from 3ds Max to XSI. What @@DT85 was saying is that on export the dotXSI matrix values for the bones are slightly off out in the 5th or 6th decimal place or so... the reason for this is because in the matrix transormation from 3dsMax to XSI coordinates the value of PI/2 in the XSIFTK is defined as a double and yet the matrix data type is a float. So this type casting from Double-to-Float for the value of PI/2 is causing some round-off error in the matrix math. And it is possible to do this coordinate transformation while avoiding this specific truncation problem. Below is a depiction of World Space as defined in both 3dsMax and Softimage|XSI. As you can see... the two coordinate systems differ only by a 90 degree rotation about the X-axis. In my exporter fixes... I did the following 3 matrix multiplications for the coordinate transformation from 3dsMax to XSI (shown below using MathCAD symbolic math). But you will notice that the same can be achieved purely by row/column manipulations-- preserving exact values. So in my next Beta version, I will try the row/column manipulation and avoid the truncation errors from Double-to-Float casting.
  12. The flex modifier should also work... but it has some particulars in setting it up. So the spring controllers are achieving the results you want? I look forward to your next video... I'm sure you can find plenty of reference material online.
  13. First, are you using the Beta R1 exporter? If not, then please try that first. Otherwise, so these additional bones you've added to the biped hierarchy... what is their transform controller? Is it the standard PRS? Or do they have biped controllers? Edit: Also, please explain your flex modifier setup.
  14. The error is introduced during the coordinate transformation due to truncation from double to float on the rotation part of the matrix. There's an alternative method I can use to do the coordinate transformation that should not introduce any errors. I'll try that for the next Beta version. But on the current exporter, the error is so small it is within the tolerance allowance and does not require the -ignorebaseposedeviation switch. So if I do nothing it's still good as-is.
  15. I was thinking it might be useful for keeping track of the original 3ds max file from which the dotXSI file was made.
  16. To all the users of the new dotXSI exporter for 3dsMax... how many of you ever open these dotXSI ASCII files in a text editor to look at them? If you have, then you will recall at the top of the file in the "SI_FILEINFO" template section there is a field for Project Name. Would it be useful to put the original 3dsMax Scene File Name here?
  17. @@Pande: The dotXSI exporter for 3dsMax works in all aspects for JK/JA. I've never used Blender and never will. To each his own... but like Minilogo said-- this thread is for 3dsMax.
  18. So if you have multiple nodes in your scene that you want to export out as ROF, it generates a ROF file for each object-- which makes since. So you could do like I say, for example, and bind Dummy Nodes to the legs of an AT-AT Walker (or whatever...) and export out the ROFs for a walk-cycle... then you could build the legs from brush objects and use these ROFs to drive the walk-cycle. Wouldn't this allow the player (either on foot or flying a T-47) to be able to run/fly under or between the brush object legs??? Since they wouldn't have collision bounding boxes like models??? I'm going to need the assistance of a proficient mapper and scripter to help me beta test this ROFF exporter-- I don't have time to learn everything (mapping, scripting, etc. :wacko: ) ...so do I have any volunteers?
  19. So from what I've gathered by studying the available ROFF source code... is that there are two versions: 1 and 2. ROFFs also have a Note Track feature... however, only Version 2 supports Note Tracks-- thus I will only make a ROFF2 exporter. There are at least two types of Note Tracks that can be embedded in the ROF file that the game code makes use of: (1) effects and (2) sounds. There doesn't appear to be a max number on these Note Tracks... and so, if I'm reading the code correclty, for each frame of animation you can play both effects and sounds. So I imagine one could use these to add more realism to a brush/model entity's scripted animation... say engine glow, or trailing fire and smoke with debris chunks while playing appropriate sounds... any effects or sound FX really. ***I think*** you could even have them cease for any number of frames you want... (i.e., have a sputtering engine or something). I'm certainly going to have to study the ROFF system deeper to figure out how these are added... I suspect I could use the Note Track that exists in 3ds Max that would allow me to make any kind of notes I want on any frame... so I just need to specify the "effect" or "sound" in accordance with the mapping/scripting manuals-- now I just need to go find where that is...
  20. In looking at the source code pertaining to ROFFs... they currently have a hard-coded limit of 32 in a Level.
  21. And the increased CPU cost for Ghoul2 collision detection is prohibitive??? Can't remember having just looked at the code but I think there is an artificial cap on the number of ROFFs permitted as well. :/
  22. Perhaps @@mrwonko can answer this question better... but I imagine it would be less processor load to use this scripted animation on non-bone brush models and misc_models than ghoul2 models. Plus I believe there is a limit in how many Ghoul2 models can be visible at a time.
  23. In my opinion, without a ROF animation you are severely limited in what "entity animation" you can script... and not drive yourself crazy. Complex 3D non-linear paths are what makes a ROF shine... and it is implemented via scripting. See the SoF2 Mapping Documentation for the best explanations and Icarus manual.
×
×
  • Create New...