Jump to content
The Dark Mod Forums

Arcturus

Development Role
  • Posts

    1743
  • Joined

  • Last visited

  • Days Won

    41

Posts posted by Arcturus

  1. There's plenty of tutorials. This one has been posted just couple of days ago:

     

     

    The problem with physics simulations is that they don't naturally loop so you have to use some tricks to do that. You could make a simple flag with a wave modifier too, but it wouldn't be as realistic.

  2. I used 2 frames just as an example. What I really want to do is to have an ocean with 50 frames that plays at 24-30 FPS. I want to bake normalmap for each frame so I would like them to align, although it's not super important. At 60 FPS I would need twice as many frames for a nice loop and I thought that would be an overkill.

     

    I used sys.wait(1); and they still don't synchronize perfectly.

  3. I'm trying to wrap my head around this.

        {
            setShaderParm(8, currentFrame);
            currentFrame = (currentFrame + 1) % numFrames;
            sys.waitFrame();
        }

    Does this depend on current FPS? I made a test md3 with two frames. I want to play one frame per second. I also would like to animate texture so that first image is displayed exactly at frame one and second image at frame two. I could add sixty of these: sys.waitFrame();

     

     

        {
            setShaderParm(8, currentFrame);
            currentFrame = (currentFrame + 1) % numFrames;
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
            sys.waitFrame();
        }

     

    That will play at roughly 1 FPS.

    I use this material:

    anim_test
    {
        noshadows
        noimpact
        nonsolid
        {
            if ( (time * 1) % 2 == 0 )
            blend blend
            alpha 1
            map    textures/anim_test/anim_test_01.tga
        }
        {
            if ( (time * 1) % 2 == 1 )
            blend blend
            alpha 1
            map    textures/anim_test/anim_test_02.tga
        }
    }

    Time means seconds here?

    If I set up the script and material like this they both play at roughly 1 FPS but never exactly in sync. Do I get it right that one is dependent on FPS and other not?

  4. @nbohr1more, Trump and Hillary are good pals. This whole "nasty woman, crooked Hillary" thing was just for show.

     

    @Springheel, of course he's an elite. He's going to cut taxes for rich and take away insurance from poorest Americans. Take that the establishment!

    • Like 2
  5. "Hillary has worked very long and very hard over a long period of time, and we owe her a major debt of gratitude for her service to our country."

    Wait, what? I thought he's going to put her in prison? I guess now he doesn't have to pander to the angry mob anymore.

  6. It's astonishing to me how many people see Trump suitable for the most important office in the world. This troglodyte makes George W. look like an intellectualist.

    He knows nothing about the world, probably hasn't read a book since school, yet people seem to think he will solve their problems? He knows that Kim Kardashian "has a fat ass" but hasn't heard the word Brexit a month before the referendum? He wants to cut taxes, but increase military spending? Well, he has to be an economic expert, cause he's "good with money", right? Building a 1000 miles long concrete wall on the border with Mexico as a flagship idea? That alone should turn this guy into a laughing stock. Harassing naked teenage girls in a dressing room? No problem for Mr Trump.

    He's like a narcissistic ten-year-old boy trapped in a body of an old man. A poor man's idea of a successful person.

     



    • Like 2
  7. Whatever the max and maya exporters are doing, I believe Blender exporters do it diferently. From my experience Blender doesn't mess with joint rotations on export. Horse for example was made in Blender from scratch and when you import md5 back to editor you can see that bones are not rotated 90 degrees, like in original Doom 3 md5:

     

    post-2001-0-00046200-1477414702_thumb.png

     

    Also Blender doesn't optimize animations so the files are rather heavy.

    It should be possible to edit the generated bones so they look nice (the way bones look in animation programs is mostly to make it more human readable, all they really need is position and rotation information).

    You can connect the joints in Blender:

     

    post-2001-0-39846900-1477413870_thumb.png

     

    However this causes some problems. Here for example bones generated on import seem to be linked by wrong ends (?):

     

    post-2001-0-42388700-1477413827_thumb.png

     

    What's more important, animations created in Blender with a modified skeleton will not match md5.mesh exported from max. That's why I made a new armature for proguard, which then controls the imported md5 joints. I based it on the character fbx files that are on our repositories. Someone could export the werebeast from MAX to fbx format. Blender has no problems reading those. Then you have couple of options:

    • Like I did, make (veeery painstakingly) a control rig to animate the imported md5 skeleton. You would need to assign copy rotation and location constraints, so that one skeleton follows the other. This way would be compatible with animations exported from 3ds max.
    • Make animations with the nice rig in Blender, then export both md5mesh and md5anim. This however will not be compatible with 3ds max, because of different joint rotations. You will still want to have some constraints, IK chains in your rig and so on, which requires some knowledge.
    • You can use one of the Blender plugins like rigify or blenrig and create your own flexible, professional rig. One would have to know how to "skin" the character (assign weights to bones) and how to use those plugins. This options completely disregards Diego's rig.

    You can also:

    • Animate with what you got. It will be difficult, and result will suck, but hey! It's possible. I have made on or two animations for TDM like that :)
    • Pay someone to make a md5 export script that works exactly like the one from max.
    • Buy 3ds max and work there using original Diego's file.
    • Like 2
×
×
  • Create New...