Kexikus

Kexikus' ongoing model making issues

Recommended Posts

Since I've been creating threads for my various issues concerning model making in the past weeks every few days, I figured I'd stop doing that and just start one thread to collect my future questions.

 

So, on to my first question:

I've been trying to rescale objects in my models several times during the last days and most of the time that worked perfectly. But sometimes I get the feeling that the scaling just didn't get applied. I can't say for sure if it doesn't get applied at all or with an incorrect scaling factor or something else entirely, but something seems to be wrong, since I have one model where parts are clipping ingame while they don't intersect in 3ds Max at all.

To do the scaling, I use the Uniform Scaling tool in 3ds, so maybe that's just not what I should use?

 

Any help would be very appreciated :)

Share this post


Link to post
Share on other sites

For scaling, always always go into vertices, selected all the vertices and then scale. Don't do a uniform scale outside of the vertex level, or it the game doesn't like it.

Share this post


Link to post
Share on other sites

Thanks. I wouldn't have guessed that on my own^^

 

Next question:

 

Is it possible to create new area animations? The first step would of course be to create the animation in 3ds Max but I'm sure there are tutorials to be found for that. The bigger question is whether or not I can get that animation into the game. I tried using the "Add" button in the aurorabase's Animation Parameters section but that didn't seem to do anything and also the "Anim name \available anims:" field is blank so that whenever I try to edit one of the existing animations, it looses it's name upon applying the edit (and also the Anim root). This all seems to be due to incomplete animation support in our available tools but I hope it's something else :)

Share this post


Link to post
Share on other sites

The animation section you're in on the Aurora Base isn't very intuitive.

 

Going from memory, you'd select something from the anim list dropdown, enter your start and end frame of the animation, and then click "Add". This would add the animation and its info to a list-like box somewhere around the "Add" button.

 

This essentially just tells NWMax to export the animation info for this animation. Otherwise it wouldn't even bother, despite there being animation frames in the scene.

 

Once you'd gotten it exported, you'd open the ascii model in Notepad or something similar. Do a Replace All on the name of the animation you gave in GMax with the following:

 

animloop##

 

The game allows for 20 such animloop animations. I forget if animations under 10 need "0#" or just "#".

 

Then save the model and compile. You'd activate it in-game with the following:

 

PlayRoomAnimation("", ANIMATION_ROOM_SCRIPTLOOP##);

 

The "" should not have the marks. Also, this is most likely the name of the room in the Rooms list in the .are file, but since the games have that listed the same as the name of the .mdl and .mdx files...

Share this post


Link to post
Share on other sites

Don't do a uniform scale outside of the vertex level, or it the game doesn't like it.

That's not a game issue, it's a Max issue. You have to do a Reset XForm and collapse the stack to permanently apply the transform.

Share this post


Link to post
Share on other sites

The animation section you're in on the Aurora Base isn't very intuitive.

 

Going from memory, you'd select something from the anim list dropdown, enter your start and end frame of the animation, and then click "Add". This would add the animation and its info to a list-like box somewhere around the "Add" button.

 

This essentially just tells NWMax to export the animation info for this animation. Otherwise it wouldn't even bother, despite there being animation frames in the scene.

 

Once you'd gotten it exported, you'd open the ascii model in Notepad or something similar. Do a Replace All on the name of the animation you gave in GMax with the following:

 

animloop##

 

The game allows for 20 such animloop animations. I forget if animations under 10 need "0#" or just "#".

 

Then save the model and compile. You'd activate it in-game with the following:

 

PlayRoomAnimation("<room>", ANIMATION_ROOM_SCRIPTLOOP##);

 

The "<room>" should not have the < > marks. Also, this is most likely the name of the room in the Rooms list in the .are file, but since the games have that listed the same as the name of the .mdl and .mdx files...

 

Ah okay, so I should see animations in the dropdown list once I actually created new ones, right?

Edit: No, but using a new aurorabase shows the list of animations.

 

Also, are you sure that the activation with a script is necessary for animation loops? From what I think I figured out, there are two types of animations, called animloop and scriptloop. And as far as I can tell, the animloop animations don't need to be started with a script but just loop all the time, while the scriptloop animations need to be initiated and play only once. I might be wrong though^^

Share this post


Link to post
Share on other sites

Here's a follow up question: Is it possible to have both looping animations (animloop) and scripted animations (scriptloop) in one model?

 

I'm asking because I want to add a looping animation to a model that has scripted animations in vanilla (003EBOq) and needs to keep them, but my loop simply won't play. I also tried starting it with a script even though that shouldn't be necessary, but that didn't work either. And currently I'm out of ideas on how to fix this :/

Share this post


Link to post
Share on other sites

I believe the animloop animations are for placeables and the scriptloop are for rooms.

 

From the nwscript.nss:

 

// Placeable animation constants
int ANIMATION_PLACEABLE_ACTIVATE            = 200;
int ANIMATION_PLACEABLE_DEACTIVATE          = 201;
int ANIMATION_PLACEABLE_OPEN                = 202;
int ANIMATION_PLACEABLE_CLOSE               = 203;
int ANIMATION_PLACEABLE_ANIMLOOP01          = 204;
int ANIMATION_PLACEABLE_ANIMLOOP02          = 205;
int ANIMATION_PLACEABLE_ANIMLOOP03          = 206;
int ANIMATION_PLACEABLE_ANIMLOOP04          = 207;
int ANIMATION_PLACEABLE_ANIMLOOP05          = 208;
int ANIMATION_PLACEABLE_ANIMLOOP06          = 209;
int ANIMATION_PLACEABLE_ANIMLOOP07          = 210;
int ANIMATION_PLACEABLE_ANIMLOOP08          = 211;
int ANIMATION_PLACEABLE_ANIMLOOP09          = 212;
int ANIMATION_PLACEABLE_ANIMLOOP10          = 213;

 

// Room Animation Constants
int ANIMATION_ROOM_SCRIPTLOOP01            = 1;
int ANIMATION_ROOM_SCRIPTLOOP02            = 2;
int ANIMATION_ROOM_SCRIPTLOOP03            = 3;
int ANIMATION_ROOM_SCRIPTLOOP04            = 4;
int ANIMATION_ROOM_SCRIPTLOOP05            = 5;
int ANIMATION_ROOM_SCRIPTLOOP06            = 6;
int ANIMATION_ROOM_SCRIPTLOOP07            = 7;
int ANIMATION_ROOM_SCRIPTLOOP08            = 8;
int ANIMATION_ROOM_SCRIPTLOOP09            = 9;
int ANIMATION_ROOM_SCRIPTLOOP10            = 10;
int ANIMATION_ROOM_SCRIPTLOOP11            = 11;
int ANIMATION_ROOM_SCRIPTLOOP12            = 12;
int ANIMATION_ROOM_SCRIPTLOOP13            = 13;
int ANIMATION_ROOM_SCRIPTLOOP14            = 14;
int ANIMATION_ROOM_SCRIPTLOOP15            = 15;
int ANIMATION_ROOM_SCRIPTLOOP16            = 16;
int ANIMATION_ROOM_SCRIPTLOOP17            = 17;
int ANIMATION_ROOM_SCRIPTLOOP18            = 18;
int ANIMATION_ROOM_SCRIPTLOOP19            = 19;
int ANIMATION_ROOM_SCRIPTLOOP20            = 20;

Share this post


Link to post
Share on other sites

Maybe that's what Bioware intended, but Obsidian uses animloops for all looping area animations I've found in TSL. Examples would be the asteroids on Peragus or fighters and lasers during the Telos space battle. All those are animloops and I have been able to transfer them to other models where they still play without initializing them.

 

I tried comparing ascii models with and without animloops and I haven't been able to find any differences except for the animation itself of course, so I don't think it's anything related to that. But I haven't actually created a working animloop myself yet as I've always just copied vanilla animations including the aurorabase that had the animations set up. I'll check tomorrow to see whether or not I can do that without the scriptloops and then I'll continue to troubleshoot the combination.

 

Edit: Okay, I tried some more things. My goal was to get any model to show animloops in the 003ebo module. I tried four options:

- Creating a new model named 003EBOq that had a simple animloop

- Hex editing an existing model with animloops (104PERb) to replace 003EBOq

- Editing the ascii version of the same model to replace 003EBOq

- Editing the .lyt and .vis file to actually use 104PERb instead of 003EBOq for this module

 

Of these four options, only the last one had animations. In the first case it's possible that I screwed up somehow and that's why there's no animation. But both the second and third case have worked in other places. So my assumption now is that something tells the game that 003EBOq cannot use animloops. Sadly I have absolutely no idea what this "something" could be, so I'd be very grateful for any ideas :D

 

I could work around this problem by just adding a new model to the .lyt and .vis file that plays animloops, but I'd still like to understand what's going on here.

 

Edit 2: Another question: In the KotOR games there is distance fog but obviously, skyboxes and some other models don't show this fog. Can anyone tell me which setting determines whether or not a model receives the fog overlay?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.