WIP Rideable Dragon

Post » Wed Mar 09, 2011 7:17 am

For those of you not interested in the mods history or current status here's the video link hope you like.

please exuse the slightly jerky frame rate I went through half a dozen vido capture programs and this was the best quality I could produce.

http://www.youtube.com/watch?v=mNXCFNZtwRk

Ok so now the meaty bit..
Mod History
I can't remember exactly when I started this mod. The original thread is so old that it no longer exists. I decided to take this project on because while there's nothing wrong per say with the Akatosh style dragons in TES I just prefer the classic look. To me Akatosh are more like drakes or Wyvern than actual dragons.
It was originally going to be just a re skinned ridable lion with some extra mesh added for the neck and a new jumploop animation. Of course this was very short sited, full of bugs and I couldn't get anyone to really help with the animation. Not that I didn't get any offers of help but people are busy and animation, though rewarding, is time consuming.

The mod died and when I regained interest in it again I came to the decision I was going to have to learn to animate myself and take it from there. But also if I was going to be doing the animations I may as well go all out and make a totally custom skeleton and creature.

Well I opened Pandora's box alright and it took a lot of hair tearing and screaming to get things where they are now. I'd somehow made a collosal error with my first walk cycle animation and the only way to fix it was to delete most of it. After that the project wound up on the back burner for a couple of days, which became a couple of weeks, then months and so on.

The trailer for Skyrim is really what got me interested again. The thoughts of TES and dragons kindled my interest anew and I was back in business not long after. There have been and still are several bugs and the mod would not be where it is now without the aid of Konipton, TheMagician, Compulsion here on the TES forums Amarillo over at the niftools forums and fore over at the nexus forums. A big thanks to you all.

Where it's at

In truth I wouldn't even call what you see an alpha version of the mod. Only the basic movement animations are done and they are by no means finished.
So I need to do a version of every animation in the horse file for the dragon as well as two new anims for cast range and cast touch which will represent the dragon using its breath weapon at different ranges. Also I want a cast self animation so the dragon can heal itself and summon drakes to its aid. So there's plenty of work there.....

Then.. text cues so the game knows at which point in an animation it should do things like play sfx and calculate an attack.

Bone priorities... this is a bit alien to me but for the most part I need only copy the priorities as they are for the horse I think

sfx... I can probably get away with using sfx from various Oblivion creatures but if anyone has any interesting ones I'll look into them

magic effects... A jet of fire for the breath weapon...

bug hunting... worming out all those little problems that will likely take so much longer than it needs to.

Where it's going.

I want the final mod to offer everything that SaidenStorms Akatosh mod offers with zero conflicts between the 2 (because lets face it... dragon wars! You know you want it!) So I'll want several dragons, I can use the basic colours but I'd also like to create an undead Arch Demon style Dragon as well as a Daedric armoured style dragon (those may come in later releases as I foresee a lot of work there.) I would also rather use the Akatosh flight script than the pegasus one. I will ask Saidenstorm for permission but I'm going to need a scripter to adapt it to my mod if he allows it.

Ok so that's it I'll update more when there's more to update.
User avatar
marie breen
 
Posts: 3388
Joined: Thu Aug 03, 2006 4:50 am

Post » Wed Mar 09, 2011 12:31 am

Looks pretty cool, good job! :goodjob:
User avatar
danni Marchant
 
Posts: 3420
Joined: Sat Oct 07, 2006 2:32 am

Post » Wed Mar 09, 2011 2:34 am

I want the final mod to offer everything that SaidenStorms Akatosh mod offers with zero conflicts between the 2 (because lets face it... dragon wars! You know you want it!) So I'll want several dragons, I can use the basic colours but I'd also like to create an undead Arch Demon style Dragon as well as a Daedric armoured style dragon (those may come in later releases as I foresee a lot of work there.) I would also rather use the Akatosh flight script than the pegasus one. I will ask Saidenstorm for permission but[b] I'm going to need a scripter to adapt it to my mod if he allows it.


Here is a copy of my most current script's -> they fix the issue with the flight idle not being a true looping idle so you can now have a fully integrated walking and flying idles it makes the whole experience feel natural within the game, they also have support for OBSE and Mounted Combat and Casting -> The Power Attack Melee does not work so I altered the script to kinda remove it since I did not have the time to complete everything but the basic's are there and do work if all you do is simplify to being a normal melee strike -> I also edited out all of the Mounted Casting spells as it just made everything harder to read from the outside but I left 1 so you can see how its used.

Spoiler

scn 1SSQSMountFlightCombatAkatosh

Ref CurrentMount ; Players Current Akatosh Mount Selection
Short CT2
Ref FlightPlane ; FlightPlane
Short IdleSwitch ; Switch to Set Which Idle to Play
Short CurrentAI ; Variable that controls which AI Package CurrentMount uses.
; 0: Follow Aggressive Package
; 1: Follow Defensive Package
; 2: Wander Package

Ref SpellPlayer ; Players Currently Equipped Spell When not Riding.
Ref SpellFire ; Players Currently Equipped Spell When Riding a Fire Wyvern.
Ref SpellFrost ; Players Currently Equipped Spell When Riding a Frost Wyvern.
Ref SpellShadow ; Players Currently Equipped Spell When Riding a Shadow Wyvern.
Ref SpellStorm ; Players Currently Equipped Spell When Riding a Storm Wyvern.
Ref SpellEarth ; Players Currently Equipped Spell When Riding a Earth Wyvern.

Short Age ; Wyvern's current Growth Age
Float AgeScale ; CurrentMount Age Scale
Short Upgrade ; Current Upgrade Level purchaced if any.

Float XPos ; X Position
Float YPos ; Y Position
Float ZPos ; Z Position
Float XAngle ; Players X Angle, Used To Rotate The FlightPlane
Float YAngle ; Used To Rotate The Damager
Float Pitch ; Pitch Angle Correction
Float Direction ; Direction Wyvern Is Facing
Float D2 ; Direction ^ 2
Float D3 ; Direction ^ 3
Float D4 ; Direction ^ 4
Float D5 ; Direction ^ 5
Float D6 ; Direction ^ 6
Float D7 ; Direction ^ 7
Float D8 ; Direction ^ 8
Float D9 ; Direction ^ 9
Float Inversion ; Z Angle Correction
Float Sin ; Sin
Float Cos ; Cos

Float fQuestDelayTime

; Available Akatosh Mounts
; Upgrade 0 | Upgrade 1 - Saddle | Upgrade 2 - Saddlebags | Upgrade 3 - Plate Armor (MH)
; SSFireWyvern | SSFireWyvernSaddle | SSFireWyvernBags | SSFireWyvernArmoredMH
; SSFrostWyvern | SSFrostWyvernSaddle | SSFrostWyvernBags | SSFrostWyvernArmoredMH
; SSShadowWyvern | SSShadowWyvernSaddle | SSShadowWyvernBags | SSShadowWyvernArmoredMH
; SSEarthWyvern | SSEarthWyvernSaddle | SSEarthWyvernBags | SSEarthWyvernArmoredMH
; SSStormWyvern | SSStormWyvernSaddle | SSStormWyvernBags | SSStormWyvernArmoredMH

Begin Gamemode

If GetGameLoaded
Let fQuestDelayTime := 0.001
Set FlightPlane to SSFlightPlane
Endif

If CurrentMount == 0
Return
Elseif CurrentMount.IsRunning
If FlightPlane.GetInSameCell CurrentMount != 1
FlightPlane.MoveTo CurrentMount
Endif
Set Direction to CurrentMount.GetAngle Z
FlightPlane.SetAngle Z, Direction
Set XPos to CurrentMount.GetPos X
Set YPos to CurrentMount.GetPos Y
Set ZPos to CurrentMount.GetPos Z
FlightPlane.SetPos X, XPos
FlightPlane.SetPos Y, YPos
FlightPlane.SetPos Z, ZPos
Set Pitch to (Player.GetAngle X * 2)
If Pitch < -46
Set Pitch to -46
Endif
Set Inversion to 1
If Direction > 270
Set Direction to Direction - 360
Elseif Direction > 90
Set Direction to Direction - 180
Set Inversion to -1
Endif
Set Direction to Direction * (1/57.2957795130823209)
Set D2 to Direction * Direction
Set D3 to Direction * D2
Set D4 to D2 * D2
Set D5 to D2 * D3
Set D6 to D3 * D3
Set D7 to D3 * D4
Set D8 to D4 * D4
Set D9 to D4 * D5
Set Sin to Inversion * (Direction - (D3/6) + (D5/120) - (D7/5040) + (D9/362880))
Set Cos to Inversion * (1 - (D2/2) + (D4/24) - (D6/720) + (D8/40320))
Set XAngle to Pitch * Cos
Set YAngle to -Pitch * Sin
FlightPlane.SetAngle X, XAngle
FlightPlane.SetAngle Y, YAngle
If CurrentMount.GetFactionRank 1SSPickIdles > -1
Return
Elseif CurrentMount.IsMovingBackward || CurrentMount.IsMovingForward
If IdleSwitch
Set IdleSwitch to 0
CurrentMount.Playgroup Idle 0
Endif
Else
If IdleSwitch == 0
Set IdleSwitch to 1
Currentmount.Playgroup DodgeLeft 1
Endif
Endif
Else
Set XPos to CurrentMount.GetPos X
Set YPos to CurrentMount.GetPos Y
Set ZPos to CurrentMount.GetPos Z + 2000
FlightPlane.SetPos X, XPos
FlightPlane.SetPos Y, YPos
FlightPlane.SetPos Z, ZPos
If IdleSwitch
Set IdleSwitch to 0
Currentmount.Playgroup Idle 0
Endif
Endif

End


Spoiler

scn 1SSCSAkatoshFireScript

; OnActivate Variables
Short Switch ; Switch for Toggling Quest, Selected Spell and Reset FlightPlane
Ref FlightPlane ; Flight Plane Reference
Ref Spell ; Current Spell and Spell to be Set Active
Short Age ; Wyvern's current Growth Age
Short Upgrade ; Current Upgrade Level purchaced if any.
; GameMode Variables
Float Timer ; Timer to Moniter Duration of Control Key Presses
Short Attack ; Attack Trigger
Short Low ; Switch Variable for Low Health Shader
Float ESTimer ; Effect Shader Timer
; OnDeath Variables
Short DoOnce ; DoOnce OnDeath

Begin OnLoad

SetIgnoreFriendlyHits 1

End

Begin OnReset

Set DoOnce to 0

End

Begin OnActivate Player

If Player.IsSneaking
Set Upgrade to SSQuestMountFlightCombatAkatosh.Upgrade
If Upgrade > 1
SSMountSaddlebags.Activate Player
Else
Message "Wyvern Does not have any Saddlebags"
Endif
Else
Set Age to SSQuestMountFlightCombatAkatosh.Age
If Age > 1
If Switch
StopQuest SSQuestMountFlightCombatAkatosh
Set FlightPlane to SSFlightPlane
FlightPlane.MoveTo SSMountHomeMarker
Set SSQuestMountFlightCombatAkatosh.SpellFire to GetPlayerSpell
Set Spell to 0
Set Spell to SSQuestMountFlightCombatAkatosh.SpellPlayer
If Spell
SelectPlayerSpell Spell
Endif
Set Switch to 0
Else
StartQuest SSQuestMountFlightCombatAkatosh
Set Switch to 1
Set SSQuestMountFlightCombatAkatosh.SpellPlayer to GetPlayerSpell
Set Spell to 0
Set Spell to SSQuestMountFlightCombatAkatosh.SpellFire
If Spell
SelectPlayerSpell Spell
Endif
Endif
Activate
Endif
Endif

End

Begin Gamemode

If GetDead && DoOnce == 0
Set DoOnce to 1
AddItem 1SSTokenDeadMount 1
Return
Endif

If Low
If ESTimer < 0
Set Low to 0
Else
Set ESTimer to ESTimer - GetSecondsPassed
Endif
Else
If GetAV Health < (GetBaseAV Health * 0.2)
PMS LifeDetected 1
Set Low to 1
Set ESTimer to 2
Endif
Endif

If GetDisabled || Switch == 0
Return
Else
If GetFactionRank 1SSPickIdles > -1
Return
Else
; If Attack == 2
; If IsControlPressed 4 != 1 ; Power Attack
; Set Attack to 0
; Endif
; Elseif Attack == 1
; If IsControlPressed 4 != 1 ; Melee Attack
; Set Attack to 0
; Endif
; Endif
; Else
If IsControlPressed 7 ; Cast
AddSpell 1SSAbilityFireT3BreathOfFireAkatosh
Elseif IsControlPressed 4 ; Melee Attack
Set Timer to Timer + GetSecondsPassed
If Timer > 2
Set Attack to 2 ; Power Attack
Else
Set Attack to 1 ; Attack
Endif
Endif
Endif
Endif

End

User avatar
Jonathan Montero
 
Posts: 3487
Joined: Tue Aug 14, 2007 3:22 am

Post » Wed Mar 09, 2011 12:55 pm

Here is a copy of my most current script's -> they fix the issue with the flight idle not being a true looping idle so you can now have a fully integrated walking and flying idles it makes the whole experience feel natural within the game, they also have support for OBSE and Mounted Combat and Casting -> The Power Attack Melee does not work so I altered the script to kinda remove it since I did not have the time to complete everything but the basic's are there and do work if all you do is simplify to being a normal melee strike -> I also edited out all of the Mounted Casting spells as it just made everything harder to read from the outside but I left 1 so you can see how its used.

Spoiler

scn 1SSQSMountFlightCombatAkatosh

Ref CurrentMount ; Players Current Akatosh Mount Selection
Short CT2
Ref FlightPlane ; FlightPlane
Short IdleSwitch ; Switch to Set Which Idle to Play
Short CurrentAI ; Variable that controls which AI Package CurrentMount uses.
; 0: Follow Aggressive Package
; 1: Follow Defensive Package
; 2: Wander Package

Ref SpellPlayer ; Players Currently Equipped Spell When not Riding.
Ref SpellFire ; Players Currently Equipped Spell When Riding a Fire Wyvern.
Ref SpellFrost ; Players Currently Equipped Spell When Riding a Frost Wyvern.
Ref SpellShadow ; Players Currently Equipped Spell When Riding a Shadow Wyvern.
Ref SpellStorm ; Players Currently Equipped Spell When Riding a Storm Wyvern.
Ref SpellEarth ; Players Currently Equipped Spell When Riding a Earth Wyvern.

Short Age ; Wyvern's current Growth Age
Float AgeScale ; CurrentMount Age Scale
Short Upgrade ; Current Upgrade Level purchaced if any.

Float XPos ; X Position
Float YPos ; Y Position
Float ZPos ; Z Position
Float XAngle ; Players X Angle, Used To Rotate The FlightPlane
Float YAngle ; Used To Rotate The Damager
Float Pitch ; Pitch Angle Correction
Float Direction ; Direction Wyvern Is Facing
Float D2 ; Direction ^ 2
Float D3 ; Direction ^ 3
Float D4 ; Direction ^ 4
Float D5 ; Direction ^ 5
Float D6 ; Direction ^ 6
Float D7 ; Direction ^ 7
Float D8 ; Direction ^ 8
Float D9 ; Direction ^ 9
Float Inversion ; Z Angle Correction
Float Sin ; Sin
Float Cos ; Cos

Float fQuestDelayTime

; Available Akatosh Mounts
; Upgrade 0 | Upgrade 1 - Saddle | Upgrade 2 - Saddlebags | Upgrade 3 - Plate Armor (MH)
; SSFireWyvern | SSFireWyvernSaddle | SSFireWyvernBags | SSFireWyvernArmoredMH
; SSFrostWyvern | SSFrostWyvernSaddle | SSFrostWyvernBags | SSFrostWyvernArmoredMH
; SSShadowWyvern | SSShadowWyvernSaddle | SSShadowWyvernBags | SSShadowWyvernArmoredMH
; SSEarthWyvern | SSEarthWyvernSaddle | SSEarthWyvernBags | SSEarthWyvernArmoredMH
; SSStormWyvern | SSStormWyvernSaddle | SSStormWyvernBags | SSStormWyvernArmoredMH

Begin Gamemode

If GetGameLoaded
Let fQuestDelayTime := 0.001
Set FlightPlane to SSFlightPlane
Endif

If CurrentMount == 0
Return
Elseif CurrentMount.IsRunning
If FlightPlane.GetInSameCell CurrentMount != 1
FlightPlane.MoveTo CurrentMount
Endif
Set Direction to CurrentMount.GetAngle Z
FlightPlane.SetAngle Z, Direction
Set XPos to CurrentMount.GetPos X
Set YPos to CurrentMount.GetPos Y
Set ZPos to CurrentMount.GetPos Z
FlightPlane.SetPos X, XPos
FlightPlane.SetPos Y, YPos
FlightPlane.SetPos Z, ZPos
Set Pitch to (Player.GetAngle X * 2)
If Pitch < -46
Set Pitch to -46
Endif
Set Inversion to 1
If Direction > 270
Set Direction to Direction - 360
Elseif Direction > 90
Set Direction to Direction - 180
Set Inversion to -1
Endif
Set Direction to Direction * (1/57.2957795130823209)
Set D2 to Direction * Direction
Set D3 to Direction * D2
Set D4 to D2 * D2
Set D5 to D2 * D3
Set D6 to D3 * D3
Set D7 to D3 * D4
Set D8 to D4 * D4
Set D9 to D4 * D5
Set Sin to Inversion * (Direction - (D3/6) + (D5/120) - (D7/5040) + (D9/362880))
Set Cos to Inversion * (1 - (D2/2) + (D4/24) - (D6/720) + (D8/40320))
Set XAngle to Pitch * Cos
Set YAngle to -Pitch * Sin
FlightPlane.SetAngle X, XAngle
FlightPlane.SetAngle Y, YAngle
If CurrentMount.GetFactionRank 1SSPickIdles > -1
Return
Elseif CurrentMount.IsMovingBackward || CurrentMount.IsMovingForward
If IdleSwitch
Set IdleSwitch to 0
CurrentMount.Playgroup Idle 0
Endif
Else
If IdleSwitch == 0
Set IdleSwitch to 1
Currentmount.Playgroup DodgeLeft 1
Endif
Endif
Else
Set XPos to CurrentMount.GetPos X
Set YPos to CurrentMount.GetPos Y
Set ZPos to CurrentMount.GetPos Z + 2000
FlightPlane.SetPos X, XPos
FlightPlane.SetPos Y, YPos
FlightPlane.SetPos Z, ZPos
If IdleSwitch
Set IdleSwitch to 0
Currentmount.Playgroup Idle 0
Endif
Endif

End


Spoiler

scn 1SSCSAkatoshFireScript

; OnActivate Variables
Short Switch ; Switch for Toggling Quest, Selected Spell and Reset FlightPlane
Ref FlightPlane ; Flight Plane Reference
Ref Spell ; Current Spell and Spell to be Set Active
Short Age ; Wyvern's current Growth Age
Short Upgrade ; Current Upgrade Level purchaced if any.
; GameMode Variables
Float Timer ; Timer to Moniter Duration of Control Key Presses
Short Attack ; Attack Trigger
Short Low ; Switch Variable for Low Health Shader
Float ESTimer ; Effect Shader Timer
; OnDeath Variables
Short DoOnce ; DoOnce OnDeath

Begin OnLoad

SetIgnoreFriendlyHits 1

End

Begin OnReset

Set DoOnce to 0

End

Begin OnActivate Player

If Player.IsSneaking
Set Upgrade to SSQuestMountFlightCombatAkatosh.Upgrade
If Upgrade > 1
SSMountSaddlebags.Activate Player
Else
Message "Wyvern Does not have any Saddlebags"
Endif
Else
Set Age to SSQuestMountFlightCombatAkatosh.Age
If Age > 1
If Switch
StopQuest SSQuestMountFlightCombatAkatosh
Set FlightPlane to SSFlightPlane
FlightPlane.MoveTo SSMountHomeMarker
Set SSQuestMountFlightCombatAkatosh.SpellFire to GetPlayerSpell
Set Spell to 0
Set Spell to SSQuestMountFlightCombatAkatosh.SpellPlayer
If Spell
SelectPlayerSpell Spell
Endif
Set Switch to 0
Else
StartQuest SSQuestMountFlightCombatAkatosh
Set Switch to 1
Set SSQuestMountFlightCombatAkatosh.SpellPlayer to GetPlayerSpell
Set Spell to 0
Set Spell to SSQuestMountFlightCombatAkatosh.SpellFire
If Spell
SelectPlayerSpell Spell
Endif
Endif
Activate
Endif
Endif

End

Begin Gamemode

If GetDead && DoOnce == 0
Set DoOnce to 1
AddItem 1SSTokenDeadMount 1
Return
Endif

If Low
If ESTimer < 0
Set Low to 0
Else
Set ESTimer to ESTimer - GetSecondsPassed
Endif
Else
If GetAV Health < (GetBaseAV Health * 0.2)
PMS LifeDetected 1
Set Low to 1
Set ESTimer to 2
Endif
Endif

If GetDisabled || Switch == 0
Return
Else
If GetFactionRank 1SSPickIdles > -1
Return
Else
; If Attack == 2
; If IsControlPressed 4 != 1 ; Power Attack
; Set Attack to 0
; Endif
; Elseif Attack == 1
; If IsControlPressed 4 != 1 ; Melee Attack
; Set Attack to 0
; Endif
; Endif
; Else
If IsControlPressed 7 ; Cast
AddSpell 1SSAbilityFireT3BreathOfFireAkatosh
Elseif IsControlPressed 4 ; Melee Attack
Set Timer to Timer + GetSecondsPassed
If Timer > 2
Set Attack to 2 ; Power Attack
Else
Set Attack to 1 ; Attack
Endif
Endif
Endif
Endif

End



holy crap wow. Thanks I really appreciate that.
User avatar
Tyrel
 
Posts: 3304
Joined: Tue Oct 30, 2007 4:52 am

Post » Wed Mar 09, 2011 6:03 am

I read the title of this thread "WIP Ridable Dagon" and I was like "YES FINALLY!!!"

Just a tad bit disappointed. :rofl: Good luck with the mod though! Looks like you have a good start. :thumbsup:
User avatar
Rachel Tyson
 
Posts: 3434
Joined: Sat Oct 07, 2006 4:42 pm

Post » Tue Mar 08, 2011 10:06 pm

Dare I ask why you're disappointed?
User avatar
Sophie Morrell
 
Posts: 3364
Joined: Sat Aug 12, 2006 11:13 am

Post » Wed Mar 09, 2011 1:34 pm

Dare I ask why you're disappointed?


i think his talking about the dragon model

you did great job actualy making your own model and animation from nothing :goodjob:
User avatar
Kelly Upshall
 
Posts: 3475
Joined: Sat Oct 28, 2006 6:26 pm

Post » Wed Mar 09, 2011 1:54 am

Dare I ask why you're disappointed?


i think his talking about the dragon model


Well, it looks like my post just flew over everyone's heads...

I was kidding. The joke was about me reading "Dragon" as "Dagon" as in "Mehrunes Dagon". So I was teasing him that I'm a little disappointed that it actually turned out to be a dragon mount rather than a Mehrunes Dagon mount. All in good fun, folks...

As to the model and animations, I'd say they're darn-right spiffy! The animations for the dragon flow much better than the animations for the Akatosh Mount, though I'd have to admit I prefer the Elder Scrolls "two legged" dragon style to a "four-legged" one. Either way, I'm quite sure the hype around Skyrim will see this in my LO sooner or later...
User avatar
Dan Scott
 
Posts: 3373
Joined: Sun Nov 11, 2007 3:45 am

Post » Wed Mar 09, 2011 4:17 am

Well I was pretty tired when I read your post so I just didn't see the missing r. But fair enough, I'm not one to be offended by criticism anyway feedback is what makes for improvement at the end of it all so it's all good.

I did once consider doing a rideable dremora though.
User avatar
Lifee Mccaslin
 
Posts: 3369
Joined: Fri Jun 01, 2007 1:03 am

Post » Wed Mar 09, 2011 3:30 am

just wanted to let you know my computer died last week and may need a new motherboard. All of my animation data is backed up and safe but the project won't progress until it's fixed.
User avatar
Daddy Cool!
 
Posts: 3381
Joined: Tue Aug 21, 2007 5:34 pm


Return to IV - Oblivion