Fandom

武装突袭 Wiki

Animations

简体 | 繁體

4,827个页面创建
于此维基上
添加新页面
评论0 分享

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。

File:AnimatedDoors.jpg

This articles talks about simple, single-p3d animations, where parts of a model rotate around an axis (like a car door, or a tank turret).

Complex animations for soldier's movements for example are a different issue altogether...


To create a model animations, these are the requirements:

Create the movable object in the ResolutionLOD and give it a name.
If the animation would affect the ( Fire) GeometryLOD, copy the selection into those LODs as well.
In the MemoryLOD define the rotational axis via two vertexes. Select both of those points and give them a name.
Still in the MemoryLOD create a single vertex (this will be the 'action point') and give it a name.

In the Config.cpp for your model you need to define two classes: Animations & UserActions.
The Animations class defines how the object moves, and the UserActions class defines when it moves.


The following example is for an object that has been named 'door', which turns around an axis named 'door axis'. The 'action point' (the position the player has to be close to, in order to be able to activate this animation) is called 'doorbell'.

 class Animations
 {
   class MoveDoor
   {
     type="rotation"; // always "rotation"
     animPeriod=1; // how long it takes for the movevement to finish
     selection="door"; // the name of the moving object
     axis="door axis"; // the name of the axis
     angle0=0 // the start angle
     angle1=-2.0; // the end angle, in radians (= degrees/57.3 = degrees * 180/pi)
   };
 };
 
 class UserActions
 {
   class OpenDoor // action to open the door
   {
     displayName="Open Door";	// string that's displayed in the action menu
     position="doorbell"; // name of the 'action point'
     radius=1.5; // how close the player has to be see this action
     condition="this animationPhase ""MoveDoor"" < 0.5";	// check whether the door has moved already
     statement="this animate[""MoveDoor"",1]"; // and if not, then start the animation
     onlyforplayer = true; // requirement by ArmA - presumably defines if AI can/cannot open doors etc
   };
   class CloseDoor // action to close the door
   {
    displayName="Close Door";
    position="doorbell";
    radius=1.5;
    condition="this animationPhase ""MoveDoor"" < 0.5";
    statement="this animate[""MoveDoor"",0]";
    onlyforplayer = true; 
   };
 };

Tutorials编辑

A tutorial model (a two-winged door with moving geometry) can be downloaded from here.

更多维基

随机维基