Jump to content

Photo

Vertibird flyover


  • Please log in to reply
16 replies to this topic

#1
Chrophiss

Chrophiss

    Journeyman

  • Members
  • Pip
  • 49 posts
Hello,

So i've been trying to make a vertibird do a flyover. It should move a certain distance and than disable.
But the problem i'm having is making it move at all. I'm using a script i found in FO3 GECK, namely the following:

scn GenericVertibirdFlyoverSCRIPT

; This trigger enables it's linked ref (a vertibird) and calls its forward animation

float timer
short doOnce
ref linkedRef

;****************************************

Begin onTriggerEnter Player

	if (doOnce == 0)
		set linkedRef to getLinkedRef

		linkedRef.enable 0

		set timer to 1

		set doOnce to 1
	endif

End

;*****************************************

Begin gameMode

	if (doOnce == 1)
		if (timer <= 0)
			linkedRef.playgroup Forward 1
			set doOnce to 2
		else
			set timer to timer - GetSecondsPassed
		endif

	elseif (doOnce == 2)
		if (linkedRef.isAnimPlaying Forward == 0)
			linkedRef.disable			;disable the vertibird when it's done playing its forward animation
			set doOnce to 3
		endif
	endif

End


The vertibird is initially disabled and has a trigger field (with the script) as a enable parent (set opposite of parent box is checked).
Now the vertibird is enable when i walk through the trigger but just hangs there, not moving at all.

Now in object window i found several objects of vertibird:
Vertibird (no moving parts apparantly)
TGvertibird (no moving parts apparantly)
RRvertibirdseffects01 (moving rotors and large box around it (path?)?)
RavenRockvertibirdtakeoff (moving rotors and large box around it (path?)?)
All of above have no sounds when idle but are destructable (large explosion with debris).

Which one do i choose? none seem to move?
Could really use some help on this one! It's for a movie i plan on making.

Thanks,
Chrophiss

#2
DizzasterJuice

DizzasterJuice

    Faithful poster

  • Supporter
  • PipPipPipPip
  • 1,598 posts
For the animation look at vehicles\BF1Anim01.NIF
This is the Bearforce 1 animation for Kimball's speech at Hoover Dam.
Left is approach and landing, Backward is idle on pad, Forward is the sabotaged out of control takeoff, and Right is the normal takeoff.
I'm not sure if there's a "flyover" vertibird animation.

example of staged animation that you can control by changing the stage times in the onload:
scn GenericTriggerAnimationSCRIPT

int iStage
float fTimer
float Stage1
float Stage2
float Stage3
float Stage4

begin onLoad
	set Stage1 to 1
	set Stage2 to 1.5
	set Stage3 to 3.9
	set Stage4 to 60
end

begin onTriggerEnter Player
	if iStage  == 0
		ObjectREF.enable
		set iStage to 1
	endif
end

begin GameMode
	if iStage >= 1 && iStage < 5

		; Safety check to make sure anim is playing after a reload
		If ( ObjectREF.IsAnimPlaying Forward == 0 ) && ( ObjectREF.GetDisabled == 0 )
			ObjectREF.PlayGroup Forward 1
		EndIf
	
		set fTimer to fTimer + GetSecondsPassed
		if iStage == 1 && fTimer >= Stage1
			ObjectREF.playgroup forward 1
			set iStage to 2
		elseif iStage == 2 && fTimer >= Stage2
			set iStage to 3
		elseif iStage == 3 && fTimer >= Stage3
			set iStage to 4
		elseif iStage == 4 && fTimer >= Stage4
			set iStage to 5
			ObjectREF.disable
			ObjectREF.markfordelete
		endif
	endif
end


#3
rickerhk

rickerhk

    Resident poster

  • Premium Member
  • 2,958 posts
If you use the activator FFER71VertibirdEncounter, you should be able to place it so it appears as a fly-over. If you place it on the ground, nearby, it's invisible, but when you play forward, it will appear to come from the distance and land at the spot you placed it. Play backward, and it takes off. You can adjust the placement so it just flys over and you disable it/never see it land. The activator is a huge volume so you need to back off some to see the extent of it in the editor.

#4
Chrophiss

Chrophiss

    Journeyman

  • Members
  • Pip
  • 49 posts

If you use the activator FFER71VertibirdEncounter, you should be able to place it so it appears as a fly-over. If you place it on the ground, nearby, it's invisible, but when you play forward, it will appear to come from the distance and land at the spot you placed it. Play backward, and it takes off. You can adjust the placement so it just flys over and you disable it/never see it land. The activator is a huge volume so you need to back off some to see the extent of it in the editor.


Hi, i placed the activator you mentioned and put it on the ground. Now when i save and play the game the vertibird yet again, appears on the ground and not moving. (except for rotors)
Must i change my script aswell? should i use the other script mentioned here? I'm still at a loss.

thanks for your reply!

EDIT:
I tried using the other script but i cannot save it? getting "Current ="
I am not a scripting/coding expert, more like a beginner so i am not sure what to change?

Edited by Chrophiss, 02 February 2013 - 10:14 AM.


#5
trilioth

trilioth

    Fan

  • Members
  • PipPipPip
  • 286 posts
There are a few mods that might have something in them to help you.


#6
Chrophiss

Chrophiss

    Journeyman

  • Members
  • Pip
  • 49 posts

There are a few mods that might have something in them to help you.

if i try this i'd have to download the mods first which i'm not keen on doing right now. and then crack 'em open to look for scripts.
If someone can answer my last question(s) with vanilla scripting like rickerhk suggested than please!

All i need is the animations to play, preferably with the accompanying vertibird sounds.

Thanks for your reply though, will look through the links you mentioned.

#7
trilioth

trilioth

    Fan

  • Members
  • PipPipPip
  • 286 posts
I have no experience setting up a script for animating, so I don't know the ends and outs of this situation.

The first thing I would have tried would have been giving a longer length of time before starting the animation. I also would have been adding to my time variable not subtracting, but that is mere personal preference.

I don't see any errors in the script that DizzasterJuice gave you, although I don't see the reason for stepping through stage 2 and stage 3's conditions. You will need to replace ObjectREF with the name of a persistent reference to use it, specifically the reference id of the object you are animating.

Hmm. Try removing markfordelete. It may be invalid for this purpose. The geck article states "works on actors." I am not sure, but it may not work for persistent references. I have only used that function in object scripts for actors created with PlaceAtMe.

That is the extent at which I can help you without trying to implement the solution myself. If you solve the problem, it would be great if you posted the script for others to see the answer.

Edit: You may have to capitalize Foreward.

Edited by trilioth, 02 February 2013 - 02:04 PM.


#8
Chrophiss

Chrophiss

    Journeyman

  • Members
  • Pip
  • 49 posts

I have no experience setting up a script for animating, so I don't know the ends and outs of this situation.

The first thing I would have tried would have been giving a longer length of time before starting the animation. I also would have been adding to my time variable not subtracting, but that is mere personal preference.

I don't see any errors in the script that DizzasterJuice gave you, although I don't see the reason for stepping through stage 2 and stage 3's conditions. You will need to replace ObjectREF with the name of a persistent reference to use it, specifically the reference id of the object you are animating.

Hmm. Try removing markfordelete. It may be invalid for this purpose. The geck article states "works on actors." I am not sure, but it may not work for persistent references. I have only used that function in object scripts for actors created with PlaceAtMe.

That is the extent at which I can help you without trying to implement the solution myself. If you solve the problem, it would be great if you posted the script for others to see the answer.

Edit: You may have to capitalize Foreward.


I can save the script now, forgot that you have to have the editor reference name already present before you can save a script.
I did as you said, but now the vertibird does not seem to spawn at all, or atleast i cannot see it where it usually is, tried waiting for it to come by but have seen no trace of it.
Why is this such a hassle... Thanks for the help!

#9
Chrophiss

Chrophiss

    Journeyman

  • Members
  • Pip
  • 49 posts
I tried several things like changing animation name to Right, tried editing my original script a bit, made vertibird persistant reference (won't appear at all when called) and i do not know what to do at all.

If it would atleast seem like it is doing any animation i could work with it, but it not doing a damned thing is really starting to get on my nerves.

How would a simple script calling for an animation look? Not looking at enabling/disabling or timers or whatever.
Just seeing it fly will be enough. Maybe than i'll be able to work something out. Now it's just hanging there. Mocking me... Could not resist shooting it everytime i tested...

#10
trilioth

trilioth

    Fan

  • Members
  • PipPipPip
  • 286 posts

I tried several things like changing animation name to Right, tried editing my original script a bit, made vertibird persistant reference (won't appear at all when called) and i do not know what to do at all.

If it would atleast seem like it is doing any animation i could work with it, but it not doing a damned thing is really starting to get on my nerves.

How would a simple script calling for an animation look? Not looking at enabling/disabling or timers or whatever.
Just seeing it fly will be enough. Maybe than i'll be able to work something out. Now it's just hanging there. Mocking me... Could not resist shooting it everytime i tested...


I will try to aim this at you already having a save a location where you have the vertibird and just enough to make the animation play. I am assuming that you will need a quest script and not an object script and that the object will be enabled. This is merely for testing the animation. The object should not have a script attached to it for this test. If the object has a forward animation this should play it once:

scn SimpleVertibirdFlyoverQuestScript

int DoOnce

Begin GameMode

    if DoOnce == 0
        VertibirdREF.PlayGroup Forward 1
        Set DoOnce to 1
    endif

End

For a quest script you will want to create a new quest. Set Priority 50. Check the Start Game Enabled option. Hit Ok. Open the new quest. Find you quest script in the script drop down box. Hit Ok.

Also, try using a clean save. That is to: Disable you mod. Run the game. Make a new save. Close the game. Enable your mod. Run the game.




Page loaded in: 1.699 seconds