Jump to content

Herotu

Members
  • Posts

    1600
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Herotu

  1.  

    It seems like there's a plethora of problems in working with these ancient and arcane filetypes. I can't find anything about .GEO files on the internet.

     

    I'd like to try to summarise the filetype information Six has kindly provided.

     

    3DSMax

    3dsmax [via plugin] -> nonstandard VRML -> converter tool = Anim/Geo file.

    Source files we have are all in max format and the concepts used don't map 1:1 to other software.

     

    Blender

    geo exporter [Python] for blender is not complete, has some bugs, and doesn't fully/correctly implement all the sections of the geo format.

     

     

  2. 4 hours ago, TheZag said:

     

    The best bet would probably be blender.  Its free and open source but doesnt work with city of heroes.  It can have custom add-ons though so it potentially could have an add-on written that adds support for the CoH file format.  That is outside my skillset and probably would be much harder to make it work than this post would lead people to believe.

     

    Looking at the applicants for future development, the skillsets of the players are deep and broad. I'd be extremely surprised if none of those people knew how to create a plug-in/library/whatever.

     

    The filetype itself seems like it might be unique, however, so we need to fathom how it lays out it's data, and that might be very tricky because it could be a flexible filetype. I've been hex editing Dragon Age Inquisition's EBX binaries for a few years - I hope it's not as complicated as that. 

  3. 1 hour ago, Snarky said:

    and he is DAM tough in a "fair" fight.  Me and two friends tried to run a +4 MLTF.  They were drunk (on discord) and I am sober and thinking we are going to flop at Hami.  It was a smooth and very fast run.  Until Hero 1.  Every time we got him down about 30-40% health the F-er used some Dull Pain type power and his health went right back up to full.  Just fighting him took 10-15 min.  Surprisingly the only hard part about that run.

    Yes, but the costume change ...

    • Haha 1
  4.   

    11 minutes ago, Sanguinesun said:

     

     

     Cobolt's statements are being interpreted by you as a call for help.  That's not the take away I got from their statements. My take away was their making those statements as reasoning for why they cannot accommodate the wants of players per the context of that linked discussion.

     

    Were the team making a call for help, as you see it, they would have made a very clear thread/post for those specifics.  They have not. 

     

    HC's pace of development along with the manner by which they develop is, for lack of a better way of saying it, working as -intended-.   If they wanted it to be different, they would do so.   Take a moment to think about the scope of what that means really.

     

    Making a call, so to speak, on their behalf is probably not something as attenable as you may wish to think it is.

    Yeah... No. I saw no "call" whatsoever. That's your interpretation of my interpretation of their statement. As the interpreter of their statement I can categorically state that your interpretation of my interpretation isn't what I intended. 

    As you can see, I've merely quoted a statement from Cobolt which suggests that until they have better tools, development is bottlenecked. You can call that a "call" or not. It's not something I'm interested in. I just want to solve the tools issue and remove the bottleneck. Let's stay focused here, people.

     

    There's far too much nonsense about whether or not they're asking for help. I don't care whether they're asking for help. I want to provide it regardless. Let's remove this bottleneck!

  5. Well I wasn't aware of all this politicking and I'm not really that interested.

     

    Perhaps we can contribute without engagement? Not ideal, but we can always just suggest stuff and hope something is useful?

     

    If we consider the notion that the devs don't have access to Maya (it's very expensive) and are animating in another tool. That would explain why they're not able to produce .anim files (- it's one scenario, there are probably a great many more).

     

    What alternative animation tool doesn't have the ability to export in .anim file format? 

     

  6. I looked via Pigg Viewer Pro at the files. There are many of filetype .anim

     

    The internet says that .anim are Maya files. 

    Examination of the Maya website here...  https://help.autodesk.com/view/MAYAUL/2020/ENU/?guid=GUID-87541258-2463-497A-A3D7-3DEA4C852644

    ... says this description for the file format.

     

    Quote
    Anim File Format
    // A description of the anim file format.
    // August 16, 1998
    // 
    // The .anim file format (version 1.0):
    // // and # are both valid comment characters.
    //
    // All of the lines in the file that do not contain curly braces
    // (’{’ or ’}’) should end with a ’;’ After the ’;’ character, start
    // a new line.
    //
    // The keywords and data are whitespace delimited. 
    //
    // Version 1.1 changes:
    // April 20, 1999
    // new weighted keyword for animData
    // new breakdown flag for keys
    //
    // The version of the file format. This is a required line.
    //
    animVersion string
    // The Maya version. The string is the value of MGlobal::mayaVersion()
    mayaVersion string
     
    // The following two lines are optional. If they are not included,
    // the clipboard is set to the range defined by the anim curves
    // contained in the clipboard.
    //
    // These are used by anim curves that have time inputs.
    //
    startTime [float] // The starting frame for the clipboard.
    endTime [float] // The ending frame for the clipboard.
    // The following two lines are optional. If they are not included,
    // the clipboard is set to the range defined by the anim curves
    // contained in the clipboard.
    //
    // These are used by anim curves with unitless inputs.
    //
    startUnitless [float] // The starting value for for the clipboard.
    endUnitless [float] // The ending value for the clipboard.
    // The following three keywords are used to set the units for the file.
    // Each anim curve may have its own units, but these are the default 
    // units if the anim curve units are not given (see the animData section).
    //
    // If the units are not given, then the ui units are used.
    //
    timeUnit [game|film|pal|ntsc|show|palf|ntscf|hour|min|sec|millisec]
    linearUnit [mm|cm|m|km|in|ft|yd|mi]
    angularUnit [rad|deg|min|sec]
    // All of the keywords described above can only be in the header section
    // of the file. As soon as anim curve information is encountered, the 
    // header section is completed and the body of the file is begun.
    //
    // The string is the name of the attribute the anim curve is connected to.
    // The next three ints are the row, child, and attr values used by the
    // clipboard. See the documentation for MAnimCurveClipboard for more
    // information.
    // 
    // If the anim curve is not connected to any attributes, the string
    // is not needed, but the following ints should be 0 0 0. 
    anim [string] [int] [int] [int] 
    // The second form of the anim line has three strings which list what
    // the anim curve was connected to.
    //
    // The strings are: the full attribute name, the leaf attribute name,
    // and the node name. The row, child, and attr ints are still required.
    //
    anim [string] [string] [string] [int] [int] [int]
    // The third and final form of the anim line is used for clipboard
    // place holder objects. These are used to skip node which do not
    // contain any anim curve data, but are positioned in a hierarchy 
    // with nodes that have attached anim curves.
    //
    // In this case, the string is the node name and the three ints are the 
    // same as the other two formats.
    //
    anim [string] [int] [int] [int]
    // The animData must follow a line with a valid anim statement.
    //
    animData {
     // The input type of the anim curve. Defaults to time.
     input [time|unitless] 
     // The output type of the anim curve. Defaults to linear.
     output [time|linear|angular|unitless]
     // Whether or not the anim curve has weighted tangents. Defaults to false.
     // This is available with animVersion >= 1.1
     weighted [1|0]
     // The unit of the anim curve input, if it is a time input.
     // The units default to the time units specified in the file header.
     inputUnit [game|film|pal|ntsc|show|palf|ntscf|hour|min|sec|millisec]
     // The unit of the anim curve output. The output unit should match
     // the output type of the curve. These default to the units specified
     // in the header.
     outputUnit [game|film|pal|ntsc|show|palf|ntscf|hour|min|sec|millisec]
     outputUnit [mm|cm|m|km|in|ft|yd|mi]
     outputUnit [rad|deg|min|sec]
     
     // The unit of the tangent angles, if there are any fixed tangents.
     // The units default to the angular units specified in the file header.
     tangentAngleUnit [rad|deg|min|sec]
     
     // The pre-infinity type. Defaults to constant.
     preInfinity [constant|linear|cycle|cycleRelative|oscillate]
     
     // The post-infinity type. Defaults to constant.
     postInfinity [constant|linear|cycle|cycleRelative|oscillate]
     // The start of the actual keyframe data. Each key is a row in the 
     // braced section.
     keys { 
     [float] [float] [in tan] [out tan] [tan locked] [weight locked]
     // animVersion 1.1 adds breakdown information
     [float] [float] [in tan] [out tan] [tan locked] [weight locked] [breakdown]
     .
     .
     .
    // The first two values are the input and output values in the
     // units defined by the inputUnit and outputUnit keywords.
     // The in and out tangents should be valid tangent types.
     // These are followed by three int values for tangent locking,
     // weight locking and the breakdown flag. If they are 0, the values
     // are unlocked, or not a breakdown, otherwise they are locked.
     //
     // If either, or both, or the tangents are fixed, then additional 
     // information is needed: a tangent angle and weight.
     // These two values, per fixed tangent, are added at the end of 
     // the above line.
     //
     // For example:
     // 1.0 2.0 fixed linear 1 1 0 62.345 0.04;
     // 
     // In the above case, 62.345 is the tangent angle for the first 
     // tangent and the tangent weight is 0.04.
     //
     // An example with two fixed tangents:
     // 1.0 2.0 fixed fixed 1 1 0 62.345 0.04 45.3 0.023;
     }
    }
    The pattern of an anim line followed by animData should be used until all of the anim curves are described.
    The following example is an animated joint chain consisting of 4 joints. The first three joints are animated and the fourth joint is not animated.
    animVersion 1.1;
    mayaVersion 2.0;
    timeUnit ntsc;
    linearUnit cm;
    angularUnit deg;
    startTime 1;
    endTime 30;
    anim rotate.rotateX rotateX joint1 0 1 0;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 linear linear 1 1 0;
     30 0 linear linear 1 1 0;
     }
    }
    anim rotate.rotateY rotateY joint1 0 1 1;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 linear linear 1 1 0;
     30 0 linear linear 1 1 0;
     }
    }
    anim rotate.rotateZ rotateZ joint1 0 1 2;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 spline spline 1 1 0;
     10 -16.774359 spline spline 1 1 0;
     15 -1.6493069 spline spline 1 1 0;
     22 -3.064691 spline spline 1 1 0;
     30 0 spline spline 1 1 0;
     }
    }
    anim rotate.rotateX rotateX joint2 1 1 0;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 linear linear 1 1 0;
     30 0 linear linear 1 1 0;
     }
    }
    anim rotate.rotateZ rotateZ joint2 1 1 1;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 spline spline 1 1 0;
     10 60.962438 spline spline 1 1 0;
     15 106.06094 spline spline 1 1 0;
     22 33.259896 spline spline 1 1 0;
     30 0 spline spline 1 1 0;
     }
    }
    anim rotate.rotateX rotateX joint3 2 1 0;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 spline spline 1 1 0;
     10 0 spline spline 1 1 0;
     15 0 spline spline 1 1 0;
     22 0 spline spline 1 1 0;
     30 0 spline spline 1 1 0;
     }
    }
    anim rotate.rotateY rotateY joint3 2 1 1;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 spline spline 1 1 0;
     10 0 spline spline 1 1 0;
     15 0 spline spline 1 1 0;
     22 0 spline spline 1 1 0;
     30 0 spline spline 1 1 0;
     }
    }
    anim rotate.rotateZ rotateZ joint3 2 1 2;
    animData {
     input time;
     output angular;
     weighted 0;
     preInfinity constant;
     postInfinity constant;
     keys {
     1 0 spline spline 1 1 0;
     10 0 spline spline 1 1 0;
     15 0 spline spline 1 1 0;
     22 0 spline spline 1 1 0;
     30 0 spline spline 1 1 0;
     }
    }
    anim joint4 3 0 0;

     

    I wonder if the problem is that the format has changed over the years?

  7. Cobolt Arachne stated here that the devs' tools are holding back development. Surely we have people who have the know-how regarding this matter? I will jump to ill-informed conclusions below.

      

    On 6/5/2023 at 4:23 PM, Cobalt Arachne said:

    Naomi told me it took them about roughly ~24 hours of work to create each single(1) second of new animation across all three models for the inner tube emotes using the one extremely old animation application we have that is compatible with City of Heroes.

    Until we have modern 3D tool compatibility that allows our limited time investments to pay-off in a realistic way, this is a 0% chance.
    Time is our most restrictive and valuable resource as volunteer developers, anything with an extremely poor/disproportionate amount of work-to-results ratio is basically not going to happen.

    Terms:

    In the below Ill-informed conclusions, the term

    old format 

    means the format of file which the game would use.

     

    Ill-informed conclusions:

    I would imagine that the problem could be alleviated if modern tools had either

    • the capability to export animations in old format or
    • if an exported modern file could be converted to the old format.

     

    Would this involve the writing of libraries and suchlike? If we know what's required, some of us have such knowledge or contacts who do.


    I invite you all to offer opinion and assistance if you can below.

     

  8. The theme for the costume contest is Criminals this week.

    Sadly I can't be there (again), so I'd like to post my traditional burglar costume: Sly Old Fox
    Sylvestre Renard, The Original Fox, The Onion Seller, The Bicycle Thief.  

    Robbing museums, galleries and banks since way back in the 20th century ... no safe is safe once the Fox gets a sniff of it!

    image.png.61bc44fdee2abf9f1873f617b65f2abc.png

    You can't really see in the image but he's got the moneybag and the money aura. 

    • Like 9
    • Thumbs Up 4
  9. 2 hours ago, Oubliette_Red said:

     

    Perhaps here: data/sound/ogg/N_UI/Music/N_MenuMusic_loop.ogg

     

    Yay! 

    I've made it into a mod for easy use. It's called, wait for it...

    Music Character Creator Music Silenced

     

    I wanted to put music at the start because that's what people will probably look for, so it's called music twice. And double music is never bad, except when it is. 

     

    ...

     

    I'll get me coat.

    • Haha 1
  10. The source for this project is here:

    https://github.com/CaitlynMainer/piggtools/blob/master/Pigg Viewer Pro/Pigg Viewer Pro.csproj

     

    Is there any chance of further development of the project? Specifically a tree "search" function would be great and having the files and folders sorted in alphabetical order would be beneficial too.

     

    As it stands, it's quite tricky to find files.

     

    Thanks for your time.

     

  11. 4 hours ago, Snarky said:

    it is a little involved and yet real simple. 

    pause character design

    1)find the volume for your comp. 

    1b)turn that down

    2)put on tunes you like from 

    2a)radio, earbuds, stereo, w/e you got

    2b) turn that up

    continue character design

    Can you type it again, please? I didn't catch it. 

     

      

    9 hours ago, Herotu said:

    It looks like StarVoid / Captainstar made a mod that changes villain menu music?

     

    I can't find an old version of the mod that lets me see where the file goes, though. .. unless I try to find out where the mod manager puts the pigg file then open it in the pigg viewer... if that's possible.

    After all that, it seems it's as simple as everybody else suspected...
    city of heroes/data/sound/ogg/frontend/v_menumusic_loop.ogg
     

    Now what's the praetorian music, I wonder...

    • Thumbs Up 1
  12. 1 minute ago, Oubliette_Red said:

     

    Odd, the one from page 4 should have been in the chart because I usually add the 'Thanks' response to posts after I've added it.

     

    BTW I want to say thanks to you, your list has improved my game audio immensely. 🙂 Just an error here or there is understandable - I've done giant laborious project before and my concentration wanes pretty quickly!

    • Thanks 1
×
×
  • Create New...