Jump to content
Sign in to follow this  
xezon

Animated lifting platform!

Recommended Posts

Hi Guys,

the last two days I worked on a new little project - a lifting platform. With that object you can move up and down to reach higher positions. You don't any scripts for animating or something else, only to activate the different commands to move up and down. If you are interested watch this movie:

http://home.arcor.de/parvus/Mr.Burns/Lift_for_OFP.wmv

4,20 MB, 1 min

Thanks to Parvus for hosting,

thanks to Falcon for modeling

and thanks Jeff for helping a bit  smile_o.gif

Feedback is welcome!

Share this post


Link to post
Share on other sites

Moin xezon,

didn't u say that PinguShooting would be your last OFP project. rock.gif

Keep on working. smile_o.gif

Share this post


Link to post
Share on other sites

Well I make Pingushooting V3.0 now - for the BIS Mapper Competition.

PS: Pingu is now playable!

Share this post


Link to post
Share on other sites

Good stuff there,nice work.

I am curious how you made the thing fall apart when it fell over.

Nice video and you do realize that you can only lift active objects.

Share this post


Link to post
Share on other sites
Nice video and you do realize that you can only lift active objects.

Thats right, but with a little additional script you can lift static object as well, no problem.

Share this post


Link to post
Share on other sites

Glad to see the lift principal in use somewhere other than aircraft carrier elevators, great work.

Share this post


Link to post
Share on other sites

Are you using multiple animations ?

I'm making V-22 Osprey and I need to make multiple animation to move engine and rotors once.

Share this post


Link to post
Share on other sites
Are you using multiple animations ?

Of course.

Share this post


Link to post
Share on other sites

Umm... one question, is this addon available somewhere? Cuz it's just too damn useful for taking screenshots!!! ME WANTS ZHIS!!! PLZ!!! biggrin_o.gif

P.S.: As it is a vehicle, is it driveable or towable??

Share this post


Link to post
Share on other sites

i also would like to test a early beta of this also maybe a tute on animations would also be cool

Share this post


Link to post
Share on other sites

No it's not a vehicle for driving around (there's no place for a driver and no drivingwheel ) tounge_o.gif . I will release it with my next version of Pingushooting (for the BIS Competition). smile_o.gif

Share this post


Link to post
Share on other sites
No it's not a vehicle for driving around (there's no place for a driver and no drivingwheel ) tounge_o.gif . I will release it with my next version of Pingushooting (for the BIS Competition).  smile_o.gif

one suggestion on pingushooting

make it multiplayer (for at least 2 players) biggrin_o.gif

sorry to get off topic blues.gif

Share this post


Link to post
Share on other sites
smile_o.gif I have no idea how to make it MP compatible. The last three years I maked only SP missions. Maybe someone help me...

Share this post


Link to post
Share on other sites
No it's not a vehicle for driving around (there's no place for a driver and no drivingwheel ) tounge_o.gif . I will release it with my next version of Pingushooting (for the BIS Competition).  smile_o.gif

Is it or could you make it tow-able then? That would be soooo cool!!

Share this post


Link to post
Share on other sites

Whoaaa  wow_o.gif When it tips over and crashes is soo cool  smile_o.gif Something like that would be VERY cool if it were used for a plane crashing etc  smile_o.gif

edit: Or a bridge...

Share this post


Link to post
Share on other sites

it would be easy to make it drive, just like in real life, the controls where u make it go up and down, also have the moving controls for driving, drives with a joystick i think, but i dont think these ofp guys were ever handed a gameboy or something to them, only a car...... crazy_o.giftounge_o.gif

Share this post


Link to post
Share on other sites

Ok, here is how i did it work:

First I definied my object as a human: men. Take care at the memory in the p3d file and do not use Fire Geometry, just create that LOD and make a little Box in the ground.

I just took the config by the TCP:TestDog makers and put in basic animations. But you don't need to make this object movable with animation, just define it as a soldier.

Quote[/b] ]class CfgMovesMCHebebuehne: CfgMovesMC

{

access=1;

vehicleActions="CfgVehicleActions";

class Actions{...........................};

class StatesExt

{

class CivilBase: Default

{

aiming="aimingNo";

actions="CivilActions";

duty=-1;

disableWeapons=1;

interpolateTo[]={"CivilDying",0.100000,"CivilDyingVer2",0.100000};

interpolationSpeed=3;

};

class Civil: CivilBase

{

file="\Pingu\anims\Hebbase.rtm";

speed=1;

looped=1.5;

soundEnabled=0;

variantAfter[]={1,3,6};

variantsAI[]={"Civil",0.200000,"CivilStillV1",0.800000};

equivalentTo="Civil";

interpolateTo[]={"CombatThrowGrenadeStart",1,"CombatRunThrowGrenadeStart",1,"Civi

lDying",0.100000,"CivilDyingVer2",0.100000};

interpolateFrom[]={"CombatThrowGrenadeEnd",1};

};

class CivilStillV1: Civil

{

actions="CivilActions";

file="\Pingu\anims\Hebbase.rtm";

speed=1;

looped=0;

soundEnabled=0;

duty=-1;

};

class CivilWalkF: CivilBase

{

file="\Pingu\anims\Hebbase.rtm";

speed=1;

looped=0;

duty=1.5;

soundEnabled=1;

relSpeedMin=0.700000;

relSpeedMax=1.000000;

};

class CivilWalkLF: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilWalkRF: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilWalkL: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilWalkR: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilWalkLB: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilWalkRB: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilWalkB: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunF: CivilWalkF

{

file="\Pingu\anims\Hebbase.rtm";

speed=1;

looped=0;

duty=-0.500000;

soundEnabled=1;

};

class CivilRunLF: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunRF: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunL: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunR: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunLB: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunRB: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilRunB: CivilRunF

{

file="\Pingu\anims\Hebbase.rtm";

};

class CivilDying: DefaultDie

{

actions = NoActions;

file="\Pingu\anims\Hebbase.rtm";

speed=0.3;

looped=false;

onLandEnd=true;

//soundEnabled=false;

interpolateFrom[]={};

connectTo[]={CivilDead,1};

};

class CivilDead: CivilDying

{

actions = DeadActions;

file="\Pingu\anims\Hebbase.rtm";

speed=SPEED_STATIC;

looped=true;

onLandBeg=true;

onLandEnd=true;

soundEnabled=false;

terminal = true; // all movement stops here

connectFrom[]={};

interpolateFrom[]={};

connectTo[]={DeadState,10};

variantsPlayer[]={CivilDead,0.5,CivilDeadVer2};

variantAfter[]={0,0,0}; // select variant immediatelly

equivalentTo=CivilDead;

};

class CivilDyingVer2: CivilDying

{

file="\Pingu\anims\Hebbase.rtm";

connectTo[]={CivilDeadVer2,1};

};

class CivilDeadVer2: CivilDead

{

file="\Pingu\anims\Hebbase.rtm";

};

};

class Interpolations{..................};

};

Hebbase.rtm is my static animation created with OFP Anim 0.98 by Dschulle.

Now take a look at the playmove class. I just make my animation I need and put it in the playmove classes.

Quote[/b] ]class CfgNonAIVehicles{};

class CfgManActions{};

class CfgMovesMC

{

class Default {};

class DefaultDie: Default {};

class StandBase: Default {};

class States

{

// Lift playmove animations

class Hebhoch: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebhoch.rtm";

speed=0.2;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Hebrunter_static, 1, Hebrunter_static2, 1, Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebhoch_static: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebbase2.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static2, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebhoch_static2: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebbase2.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebrunter: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebrunter.rtm";

speed=0.2;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Hebhoch_static, 1, Hebhoch_static2, 1, Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebrunter_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebrunter_static: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebbase.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebrunter_static2, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebrunter_static2: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebbase.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebrunter_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebkipp_static: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebdead.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static2, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebkipp_static2: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebdead.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebkipp: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebdie.rtm";

speed=0.3;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Hebhoch_static, 1, Hebhoch_static2, 1, Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebkipp_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Heb_tuer_auf_static: StandBase

{

actions = SitActions;

file="\Pingu\anims\Heb_tuer_auf_base.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Heb_tuer_auf_static2, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Heb_tuer_auf_static2: StandBase

{

actions = SitActions;

file="\Pingu\anims\Heb_tuer_auf_base.rtm";

speed=99;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Heb_tuer_auf_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Heb_tuer_auf: StandBase

{

actions = SitActions;

file="\Pingu\anims\Heb_tuer_auf.rtm";

speed=1;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Hebhoch_static, 1, Hebhoch_static2, 1, Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Heb_tuer_auf_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Heb_tuer_zu: StandBase

{

actions = SitActions;

file="\Pingu\anims\Heb_tuer_zu.rtm";

speed=1;

looped=0;

soundEnabled=1;

soundOverride="";

soundEdge1=0.1;

soundEdge2=0.1;

duty = RestDuty;

interpolationSpeed=50;

connectFrom[]={Heb_tuer_auf_static, 1, Heb_tuer_auf_static2, 1, Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

};

};

I have 5 animations:

Hebhoch.rtm (move up)

Hebrunter.rtm (move down)

Hebdie.rtm (die, fall to ground)

Heb_tuer_auf.rtm (open door)

Heb_tuer_zu.rtm (close door)

Additional I need static animation for each animation!

Thats very important, cause if the lift move up, we want that he stays there until we say him he have to move down.

Look at these important part of the playmove class:

class Hebhoch: StandBase

{

actions = SitActions;

file="\Pingu\anims\Hebhoch.rtm";

speed=0.2;

looped=0;

connectFrom[]={Hebrunter_static, 1, Hebrunter_static2, 1, Civil, 1, Stand, 1, StandVar2, 1, StandVar3, 1};

connectTo[]={Hebhoch_static, 1};

interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};                  

};

class Hebhoch_static: StandBase

{

file="\Pingu\anims\Hebbase2.rtm";

speed=99;

looped=0;

connectTo[]={Hebhoch_static2, 1};              

};

class Hebhoch_static2: StandBase

{

file="\Pingu\anims\Hebbase2.rtm";

speed=99;

looped=0;

connectTo[]={Hebhoch_static, 1};            

};

I created class Hebhoch for the animation to move up. It is connected from the static move up animation and it connect to the 2 way static move up postion. Hebhoch_static connect to Hebhoch_static2 and Hebhoch_static2 to Hebhoch_static. The result is a loop all the time. These loop has the effect, that you can start now a new animation. Have a look at the time intervall (99 = small time). These two animations looped very fast to each other. If you tell the Lift, he have to open his door just write (UNIT playmove "Heb_tuer_auf").

Hope you understand this, my english is not great  smile_o.gif

If you do that part of the config you can simply add the animated objects as a proxy to vehicles for nice animations at the vehicle. The animation object is like a soldier who sits in the vehicle and drive it.  wink_o.gif

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×