ceedj Posted June 18, 2011 Share Posted June 18, 2011 (edited) Ok, got some new animations loaded into San Andreas, and they look AWESOME. The height is what I want (30.0 on the Z axis) but the actor in question is "disappearing" unless the camera is at a certain angle (not remotely usable for filming), whether CamHack is on or not. So. What can I do? Anything hackable to force this ped to show ALL the time? Can post a video if needed... The only mods I have are my actors, a few animations, and the greenscreen. I am also using San An Studios 4 (obviously). I have tried: Alex's Stream/Memory Fix, adding the actor to the player group, spawning a small building for the player to stand on near the actor, nothing works. Any ideas? Edited June 18, 2011 by ceedj I'm actually not against democracy though. I'm against things I think are f*cking stupid. I think this is f*cking stupid. - Sweets Link to comment Share on other sites More sharing options...
TheNathanNS Posted June 18, 2011 Share Posted June 18, 2011 im not really sure i follow you is the animations mod for all characters or just that one? please post a pic/video and then im sure i'll understand you more or is the ragdoll mod for GTA SA? Link to comment Share on other sites More sharing options...
Frank.s Posted June 18, 2011 Share Posted June 18, 2011 Yeah that is because SA won't render the ped when it's actual location isn't onscreen, i've never found a way to fix it unfortunately. Link to comment Share on other sites More sharing options...
Wesser Posted June 18, 2011 Share Posted June 18, 2011 Game won't renders anything placed behind the camera's near clip or after the camera's far clip (maybe it's more correct to say after the draw distance limit). It's likely you used a perform-animation opcode improperly. When an animation is performed, the game locks the character's position indipendently from the root bone transformations, infact he/she returns on his/her initial position when the animation ends. There should be a param which let the game update the character's position according to the current root bone coordinates. It's just a suggestion which could be 50% sure. 012 345 678 9A BCD EFG HIJK LMN OPQR STUV WX YZ Link to comment Share on other sites More sharing options...
ceedj Posted June 18, 2011 Author Share Posted June 18, 2011 (edited) Ok guys, this is quick and dirty, but here it is (unlisted, please don't pass around the link) Ped can be seen around 30secs. @Wesser: Interesting idea about the opcode. Tried the opcode (0605) with lock x/lock y set to 0 and 1, same result. Edited June 18, 2011 by ceedj I'm actually not against democracy though. I'm against things I think are f*cking stupid. I think this is f*cking stupid. - Sweets Link to comment Share on other sites More sharing options...
GamerShotgun Posted June 18, 2011 Share Posted June 18, 2011 Looking at what you are trying to achieve, why aren't you just loading the ped model as a simple model (not as a ped), then rotate it in the script? Isn't it easier that way? Or I maybe misinterpreted you, but judging from that animation, you are trying to work on a ped selection menu kind of thing? Link to comment Share on other sites More sharing options...
ceedj Posted June 18, 2011 Author Share Posted June 18, 2011 (edited) No, it's part of a larger animation set, so the actor starts on the ground, animates to the t pose, rises up (toes move down), starts to spin. When it gets to the top, it's just a spin until I key the hook to go to the next animation, which is spin down, toes go down, land. I'd like it to be consistently visible, so I can get multiple angles when recording. I also want to be able to rotate the camera around the actor, opposite of the spin, but I can't get my camera close enough and keep it visible. EDIT: If I HAVE to, I might be able to make your idea work, at least for the spinning part, but that doesn't solve shooting the rise and fall from anything approaching a reasonable distance. EDIT 2: Interestingly, my parachute script doesn't have this issue, and I'm thinking it's because those animations are near 0.0 coordinates, and the actor is moved with put_actor_here_xyz and set_actor_velocity_xyz. But I think the animation for that is only a few frames, so even though the fall is a loop checking the ground distance and applying the animation again, it might be real jerky trying to do a spin animation... Or could I just leave it as a t-pose and spin it with set_actor_zangle in the loop? Hmmm.... EDIT 3: I REALLY should be shooting now, but I'm an idiot and will forget this if I don't write it down. So maybe do this: keep my animate to t-pose, animate just the toes moving down (about 10-12 frames) keeping it at 0.0 coords, but using set_actor_velocity_xyz and a bit of math in a for loop to push the actor slowly up into the air. Check the ground distance, then start applying the spin with set_actor_zangle. Loop into put_actor_here_xyz to stop the rise and let it spin until keypress. Then push the actor back down with one complete spin first, then slowly falling. More coding than I'd really like, and I have to adjust for FRAPS, because recording throws the internal animation timing off (took 2 days to figure that one out). But maybe this is possible... Edited June 18, 2011 by ceedj I'm actually not against democracy though. I'm against things I think are f*cking stupid. I think this is f*cking stupid. - Sweets Link to comment Share on other sites More sharing options...
ceedj Posted June 25, 2011 Author Share Posted June 25, 2011 Ok then, still getting the clip error. So, what about moving an object with the actor spawned on top? I can do this now (with the benefit of holding the player too, so I can run the animation on that while using the player camera), but it's not very smooth. Here's the plan: spawn a building (the little shack near the Robbing Uncle Sam mission), create my actor on top, then in the script make the building invisible, do the animation (redone from 0.0) and move the building up slowly. This is my current code, to make it move up in small sections, but only if I hold the key down. You'd think a loop would fix this, but it winds up going to the end coordinates, depositing my actor on the ground. How would I go about smoothing it out, keeping it slow enough to keep the actor on it (holding the key works, but is jerky) but fast enough to be dramatically appropriate for the scene? Anim5:if (KEYDOWN(VK_E) && Obj3Created == 1) {CallOpcode(&get_object_pos, pObj3->GetObj(), &fTempX, &fTempY, &fTempZ); fTempZ += 0.5 CallOpcode(&move_object_xyz, pObj3->GetObj(), fTempX, fTempY, fTempZ, 0.0, 0.0, 0.05, 0);} else { goto Anim6;} Or should I just animate the object moving up? I wouldn't care about the clip issue (object is invisible), so it shouldn't affect the actor, right? I'm actually not against democracy though. I'm against things I think are f*cking stupid. I think this is f*cking stupid. - Sweets Link to comment Share on other sites More sharing options...
ceedj Posted July 7, 2011 Author Share Posted July 7, 2011 Bump-a-roonie! Should I mayhaps crosspost the last one in mission coding? I'm actually not against democracy though. I'm against things I think are f*cking stupid. I think this is f*cking stupid. - Sweets Link to comment Share on other sites More sharing options...
ceedj Posted July 23, 2011 Author Share Posted July 23, 2011 (edited) Solved! Looks like I was darn close, kudos to Deji of GTAGangstas for his code (turret mode, move_object_xyz in a while loop). Here's what I did (Spookie Code): if (KEYDOWN(VK_E)){pGame->LoadModel(3090); pPlayerActor->GetActorCoordOffset(0.0f, 3.0f, 0.0f, &fX, &fY, &fZ); if (Obj36Created == 1); {pObj36->DestroyObject();} pObj36 = new ScriptObject(); pObj36->IntObject(3090, fX, fY, fZ); CallOpcode(&object_model_scale, pObj36->GetObj(), 0.5f); CallOpcode(&object_visible, pObj36->GetObj(), 0); CallOpcode(&actor_object_turret, pAnimPed->GetActor(), pObj36->GetObj(), 0.0, 0.0, 0.0, 0, 360.0, 0); fZ += 30.0; Obj36Created = 1; pAnimPed->Anim1("spin_in", "spin", 4.0, 0, 0, 0, 0, -1); while (1) {SCRIPT_WAIT(0); CallOpcode(&get_actor_anim_progress_to, pAnimPed->GetActor(), "spin_in", &AnimProgress); if (AnimProgress == 1.0) break;} pAnimPed->Anim1("spin_up", "spin", 4.0, 0, 0, 0, 0, -1); while (1) {SCRIPT_WAIT(0); !CallOpcode(&move_object_xyz, pObj36->GetObj(), fX, fY, fZ, 0.0, 0.0, 0.052, 0); CallOpcode(&get_actor_anim_progress_to, pAnimPed->GetActor(), "spin_up", &AnimProgress); if (AnimProgress >= 1.0) break;} pAnimPed->Anim1("spin_loop", "spin", 4.0, 1, 0, 0, 0, -1);goto AnimationWait;} else { goto Anim6;} I removed the z coordinate from my animations, so they're all at the root of the actor, presto, everything works (except when on the player, but I can work around that)! To everyone that answered and help get me going in the right direction: thanks to you (or because of you, depending on whether you like the show or not ), this is a HUGE boost for the finale! You guys rock! Edited July 23, 2011 by ceedj I'm actually not against democracy though. I'm against things I think are f*cking stupid. I think this is f*cking stupid. - Sweets Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now