Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
CameraTweakCinematicTrack.c
Go to the documentation of this file.
1[CinematicTrackAttribute(name:"Camera Tweek Track", description:"Track used for tweaking camera")]
3{
4
5 [Attribute("false")]
6 bool m_bDisablePlayerHead;
7
8 [Attribute("")]
9 string m_sAttachCameraTo;
10
11 [Attribute("v_root")]
12 string m_sAttachBoneName;
13
14 [Attribute("0 0 0")]
15 vector m_AttachCameraPositionOffset;
16
17 [Attribute("0 0 0")]
18 vector m_AttachCameraAngleOffset;
19
20 private CinematicEntity cineEntity;
21 private GenericEntity m_entityAttachTo;
22 private World actualWorld;
23
24 vector headBoneMat[4];
25 int m_iHeadBoneIndex;
26 vector charMat[4];
27
28
29 override void OnInit(World world)
30 {
31 cineEntity = CinematicEntity.Cast(world.FindEntityByName(GetSceneName()));
32 actualWorld = world;
33 }
34
35 override void OnApply(float time)
36 {
37
38 if (cineEntity)
39 {
40 //attach camera
41 m_entityAttachTo = GenericEntity.Cast(actualWorld.FindEntityByName(m_sAttachCameraTo));
42
43 if (m_entityAttachTo && m_sAttachCameraTo != "")
44 {
45 int boneIndex = m_entityAttachTo.GetAnimation().GetBoneIndex(m_sAttachBoneName);
46 cineEntity.AttachCameraToEntity(m_entityAttachTo, boneIndex, m_AttachCameraPositionOffset, m_AttachCameraAngleOffset);
47
48 } else
49 {
50 cineEntity.DetachCamera();
51 }
52 }
53
54 //disable player head
55 if (m_bDisablePlayerHead)
56 {
57 if (!GetGame().GetWorld())
58 return;
59
60 SCR_ChimeraCharacter character = SCR_ChimeraCharacter.Cast(GetGame().GetPlayerController().GetControlledEntity());
61 if (!character)
62 return;
63
64 SCR_CharacterCameraHandlerComponent camHandlerComp = SCR_CharacterCameraHandlerComponent.Cast(character.FindComponent(SCR_CharacterCameraHandlerComponent));
65 if (camHandlerComp)
66 {
67
68 m_iHeadBoneIndex = character.GetAnimation().GetBoneIndex("Head");
69 character.GetAnimation().GetBoneMatrix(m_iHeadBoneIndex, headBoneMat);
70
71 character.GetWorldTransform(charMat);
72 Math3D.MatrixMultiply4(charMat, headBoneMat, headBoneMat);
73
74 camHandlerComp.UpdateHeadVisibility(headBoneMat[3]);
75 }
76 }
77 }
78}
ArmaReforgerScripted GetGame()
Definition game.c:1398
Definition World.c:16
SCR_EditableEntityComponent GetControlledEntity()
SCR_FieldOfViewSettings Attribute
proto external PlayerController GetPlayerController()