red33mer666 Posted November 29, 2011 Share Posted November 29, 2011 (edited) Oh I think its totally possible and I think it will be one of the first things that lots of people work on when the CK comes out.Like it has been mentioned before in this thread, Someone managed to do this in Oblivion and they only had a static model of the Statue of Akatosh. Meaning someone had to rig the model put the mounting node on, do all the animation and sound effects and then figure out controls. I haven't played oblivion in a few years but it seems like the guys behind that mod were also making it so the dragon could attack and use some type of breath weapon, I am unsure if this ever happened, but if it did that would add even more complexity. All of this with out any sort of Beth soft support. Now we have: Fully functional Dragon Models (several different ones I have looked at with 3DMAX) lots and lots of animations for them that look very good if not great(all the movement animations are in the bsa's I checked). animations for attacking from both the ground and in the air, Breath weapon mechanics and a semi cinematic sequence for mounting the dragon (although this is something I would change right away as right behind the head is not where I would want to ride my dragon from). and lovely sound effects. Also about flying, Any 3D engine that will allow for you to fall several levels to your death will allow for flight. Since there is already the functionality built in for you to be clubbed 100 feet into the air by a giant or for a dragon to pick another npc up and fling them hundreds of feet, flight is totally possible. and basically too any where on the map. however things like cities will still have to be entered through the front gate, much like in oblivion, where if you rode your dragon into the city it would look similar but no one would be there. so no dragons in Dungeons or cities I also think the dev's made it so it would be pretty easy as they knew a lot of us would want it. but as a plot device to further the story line kept it out of the game. Remember that it is in a Dragons Nature to Dominate and not be Dominated.So really someone may just have to figure out how to code the collision data so it works while flying (this already might be there in the dragon models and animations, Again this was done in oblivion where there were no dragons at all)Then figure out where to put the bone node for riding the dragon, code in the commands for forward backward left right and such and how to trigger the attacks. pick the animations to use (you dont want them all because they wouldn't all apply) and Viola. Course I could be completely wrong but it seems to me that Bethesda would have known we wanted this and would probably build in partial support for it. It may even be the first piece of DLC, and that maybe why the CK is taking so long to get out is they want to have that done before the CK, so they could get there first and charge for it, I would totally pay for it Edited November 29, 2011 by red33mer666 Link to comment Share on other sites More sharing options...
jimhsu Posted November 30, 2011 Share Posted November 30, 2011 (edited) As far as flying, roughly: 1. Get player position (GetPos x,y,z)2. Get player heading (GetAngle x,z) - only need 2 due to how spherical coordinates are defined.3. Use trig to get new player pos based on heading/me pulls out Tes4Edit and looks at the Akatosh Mount script...- The Akatosh mount uses a very basic "flight plane" approach (basically cluster possible angles into 4 ranges, and calculates X,Y,Z transforms accordingly- If I had some paper I could derive the actual formulas, but too lazy right now.- Since we have actual trig formulas in Papyrus, we can probably achieve a much finer granularity to movement.4. Set new player pos to the updated values.5. Go back to step 1 for the next frame. For collisions, do a check to see if the new vertices, plus an offset (size of the model), intersects an existing object (probably some built in function to do this). So it's fairly easy. Harder is making it smooth (coupling turn animations to the actual animations used by the dragon models, for instance). EDIT: the entire script here: scn 1SSMountFlightScriptFireDrake ; Saiden Storm's Mounted Flight Script :) ref FireDrake ; Fire Drake Referenceref FlightPlane ; Flight Plane Reffloat XPos ; X Position float YPos ; Y Positionfloat ZPos ; Z Positionfloat XAngle ; Flight Planes X Rotation Anglefloat Height ; Players X Angle, Used To Rotate FlightPlanefloat Direction ; Direction FireDrake Is Facing ;Set up references and condition for Flight Begin Gamemode Set FireDrake to SSFireDrake Set FlightPlane to SSFireDrakeFlightPlane SetIgnoreFriendlyHits 1 ;Set FlightPlane to Under FireDrake when player is riding him and is running If Player.IsRidingHorse == 1 && FireDrake.IsRunning == 1 Set XPos to FireDrake.GetPos X Set YPos to FireDrake.GetPos Y Set ZPos to FireDrake.GetPos Z Set Direction to FireDrake.GetAngle Z Set Height to (Player.GetAngle X) ; Adjusts Height to avoid the player from creating an unpassable wall or falling of the FlightPlane If Height < --35 Set Height to -35 Endif If Height > 50 Set Height to 50 Endif ; Reposition the FlightPlane so it is always under the FireDrake in Flight If FireDrake.GetDistance FlightPlane > 400 FlightPlane.SetPos X, XPos FlightPlane.SetPos Y, YPos FlightPlane.SetPos Z, ZPos Endif ; Sets the Tilt of the FlightPlane Based on FireDrake Facing Direction and Player "X" Angle If Direction > 0 && Direction < 90 FlightPlane.SetAngle X, Height Set Height to -Height FlightPlane.SetAngle Y, Height Endif If Direction > 90 && Direction < 180 Set Height to -Height FlightPlane.SetAngle X, Height FlightPlane.SetAngle Y, Height Endif If Direction > 180 && Direction < 270 FlightPlane.SetAngle Y, Height Set Height to -Height FlightPlane.SetAngle X, Height Endif If Direction > 270 && Direction < 360 FlightPlane.SetAngle X, Height FlightPlane.SetAngle Y, Height Endif ; Makes it so if you are riding FireDrake and Running the FlightIdle will play PickIdle ;Set FlightPlane Above FireDrake when Player is walking Elseif Player.IsRidingHorse == 1 && FireDrake.IsRunning != 1 Set XPos to FireDrake.GetPos X Set YPos to FireDrake.GetPos Y Set ZPos to FireDrake.GetPos Z + 1000 FlightPlane.SetPos X, XPos FlightPlane.SetPos Y, YPos FlightPlane.SetPos Z, ZPos ; Set FlightPlane to Above FireDrake When Player is not riding him ElseIf Player.IsRidingHorse != 1 Set XPos to FireDrake.GetPos X Set YPos to FireDrake.GetPos Y Set ZPos to FireDrake.GetPos Z + 1000 FlightPlane.SetPos X, XPos FlightPlane.SetPos Y, YPos FlightPlane.SetPos Z, ZPos Endif End As far as turning and controls, I was thinking of some sort of exponential response curve (i.e. tapping a key only slightly alters your trajectory, while holding down a key creates a wide turn). That, and dragons strafing makes no sense aerodynamically at all. Not sure how intuitive the user experience is going to be though. Edited November 30, 2011 by jimhsu Link to comment Share on other sites More sharing options...
Galacticat42 Posted November 30, 2011 Share Posted November 30, 2011 I've been playing Oblivion since a few months ago and the Akatosh mount mod was completed. The mounts had HD skins, a breath attack, a bite attack, a combat pose (really wild btw) and flight. Since I didn't like how it just added them to the game without a reason for having them I actually modded it so you can only get the dragons from rare spell tome books. Of course I couldn't release because I never had the permissions granted, but it was a cool mod. Anyway, in my mod that I'm making in my sig there will be a Dovah form that will allow the player to transform into a dragon and fly around. Of course this is only available in one of the dozens of possible outcome paths and requires insane dungeon crawling to achieve them, but it will be there and I'm going to script them if I don't find other scripters to help. Link to comment Share on other sites More sharing options...
tomhughes Posted November 30, 2011 Share Posted November 30, 2011 Can't wait to see the result of your mod Budz - l've just started my own (see sig) concerning Dragon-Riders. Just so annoying we have to wait for the CK when so many good ideas are out there! Link to comment Share on other sites More sharing options...
Recommended Posts