From a15cec4f168d3a4bc12ceabde8d45294e159f14a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 19 Apr 2026 13:13:33 +0200 Subject: [PATCH] [Reviewed][3rd person camera] Fix "rotate with object" property for the "all rotation" mode --- extensions/reviewed/ThirdPersonCamera.json | 271 ++++++++++++++++++++- 1 file changed, 266 insertions(+), 5 deletions(-) diff --git a/extensions/reviewed/ThirdPersonCamera.json b/extensions/reviewed/ThirdPersonCamera.json index 30938e951..0ed9d4d8f 100644 --- a/extensions/reviewed/ThirdPersonCamera.json +++ b/extensions/reviewed/ThirdPersonCamera.json @@ -1,6 +1,7 @@ { "author": "", "category": "Camera", + "dimension": "3D", "extensionNamespace": "", "fullName": "Third person camera", "gdevelopVersion": ">=5.5.222", @@ -9,8 +10,7 @@ "name": "ThirdPersonCamera", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Line Hero Pack/Master/SVG/Virtual Reality/94e95d2c318e1f3dc7151a351024e13c574e1e44669c6696aa107d60230073f6_Virtual Reality_3d_vision_eye_vr.svg", "shortDescription": "Third-person camera orbiting an object at configurable distance, elevation, and rotation.", - "dimension": "3D", - "version": "1.8.0", + "version": "1.8.1", "description": [ "Move the camera to look at an object from a given distance with a rotation and an elevation angles.", "", @@ -46,7 +46,9 @@ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ + "//@ts-ignore", "if (gdjs.__thirdPersonCameraExtension) {", + " //@ts-ignore", " return;", "}", "", @@ -145,6 +147,7 @@ " layer.setCameraRotation(gdjs.toDegrees(-threeCamera.rotation.z));", "}", "", + "//@ts-ignore", "gdjs.__thirdPersonCameraExtension = {", " CameraLocalBasis,", " ObjectLocalBasis,", @@ -668,6 +671,37 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "DefineHelperClasses" + }, + { + "functionName": "LookFromDistanceAtPosition" + }, + { + "functionName": "LookFromDistanceAtObject" + }, + { + "functionName": "LookFromDistanceAtPosition3D" + }, + { + "folderName": "Layers and cameras", + "children": [ + { + "functionName": "LookFromDistanceAtObject3D" + } + ] + }, + { + "functionName": "RotatedX" + }, + { + "functionName": "RotatedY" + } + ] + }, "eventsBasedBehaviors": [ { "description": "Smoothly follow an object at a distance.", @@ -989,7 +1023,7 @@ }, "parameters": [ "IsRotatingWithObject", - "False", + "True", "" ] } @@ -1094,7 +1128,7 @@ }, "parameters": [ "IsRotatingWithObject", - "True", + "False", "" ] } @@ -1732,6 +1766,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "RotationHalfwayDuration", + "group": "Third person camera configuration", "name": "SetRotationHalfwayDuration", "sentence": "", "events": [ @@ -1834,6 +1869,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "ElevationHalfwayDuration", + "group": "Third person camera configuration", "name": "SetElevationHalfwayDuration", "sentence": "", "events": [ @@ -1936,6 +1972,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "TranslationZHalfwayDuration", + "group": "Third person camera configuration", "name": "SetTranslationZHalfwayDuration", "sentence": "", "events": [ @@ -2122,6 +2159,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "FollowFreeAreaZMax", + "group": "Third person camera configuration", "name": "SetFollowFreeAreaZMax", "sentence": "", "events": [ @@ -2202,6 +2240,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "FollowFreeAreaZMin", + "group": "Third person camera configuration", "name": "SetFollowFreeAreaZMin", "sentence": "", "events": [ @@ -2282,6 +2321,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "Distance", + "group": "Third person camera configuration", "name": "SetDistance", "sentence": "", "events": [ @@ -2362,6 +2402,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetX", + "group": "Third person camera configuration", "name": "SetOffsetX", "sentence": "", "events": [ @@ -2442,6 +2483,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetY", + "group": "Third person camera configuration", "name": "SetOffsetY", "sentence": "", "events": [ @@ -2522,6 +2564,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetZ", + "group": "Third person camera configuration", "name": "SetOffsetZ", "sentence": "", "events": [ @@ -2602,6 +2645,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "RotationAngleOffset", + "group": "Third person camera configuration", "name": "SetRotationAngleOffset", "sentence": "", "events": [ @@ -2682,6 +2726,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "ElevationAngleOffset", + "group": "Third person camera configuration", "name": "SetElevationAngleOffset", "sentence": "", "events": [ @@ -2762,6 +2807,7 @@ "fullName": "", "functionType": "ActionWithOperator", "getterName": "TargetedRotationAngle", + "group": "Third person camera configuration", "name": "SetTargetedRotationAngle", "sentence": "", "events": [ @@ -2808,6 +2854,129 @@ "objectGroups": [] } ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "onCreated" + }, + { + "functionName": "doStepPreEvents" + }, + { + "functionName": "MoveCameraCloser" + }, + { + "functionName": "DoMoveCameraCloser" + }, + { + "functionName": "Slerp" + }, + { + "functionName": "MoveToObject" + }, + { + "functionName": "UpdateLocalBasis" + }, + { + "functionName": "JumpToTargetedRotation" + }, + { + "functionName": "RotationAngle" + }, + { + "functionName": "SetCameraRotation" + }, + { + "folderName": "Third person camera configuration", + "children": [ + { + "functionName": "RotationHalfwayDuration" + }, + { + "functionName": "SetRotationHalfwayDuration" + }, + { + "functionName": "ElevationHalfwayDuration" + }, + { + "functionName": "SetElevationHalfwayDuration" + }, + { + "functionName": "TranslationZHalfwayDuration" + }, + { + "functionName": "SetTranslationZHalfwayDuration" + }, + { + "functionName": "FollowFreeAreaZMax" + }, + { + "functionName": "SetFollowFreeAreaZMax" + }, + { + "functionName": "FollowFreeAreaZMin" + }, + { + "functionName": "SetFollowFreeAreaZMin" + }, + { + "functionName": "Distance" + }, + { + "functionName": "SetDistance" + }, + { + "functionName": "OffsetX" + }, + { + "functionName": "SetOffsetX" + }, + { + "functionName": "OffsetY" + }, + { + "functionName": "SetOffsetY" + }, + { + "functionName": "OffsetZ" + }, + { + "functionName": "SetOffsetZ" + }, + { + "functionName": "RotationAngleOffset" + }, + { + "functionName": "SetRotationAngleOffset" + }, + { + "functionName": "ElevationAngleOffset" + }, + { + "functionName": "SetElevationAngleOffset" + }, + { + "functionName": "TargetedRotationAngle" + }, + { + "functionName": "SetTargetedRotationAngle" + } + ] + }, + { + "folderName": "Private", + "children": [ + { + "functionName": "FreeAreaZMin" + }, + { + "functionName": "FreeAreaZMax" + } + ] + } + ] + }, "propertyDescriptors": [ { "value": "", @@ -3037,7 +3206,99 @@ "name": "ForwardZ" } ], - "sharedPropertyDescriptors": [] + "propertiesFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "propertyName": "Object3D" + }, + { + "folderName": "Catch-up speed", + "children": [ + { + "propertyName": "RotationHalfwayDuration" + }, + { + "propertyName": "ElevationHalfwayDuration" + }, + { + "propertyName": "TranslationZHalfwayDuration" + } + ] + }, + { + "folderName": "Position", + "children": [ + { + "propertyName": "Distance" + }, + { + "propertyName": "OffsetX" + }, + { + "propertyName": "OffsetY" + }, + { + "propertyName": "OffsetZ" + }, + { + "propertyName": "RotationAngleOffset" + }, + { + "propertyName": "ElevationAngleOffset" + }, + { + "propertyName": "FollowFreeAreaZMax" + }, + { + "propertyName": "FollowFreeAreaZMin" + } + ] + }, + { + "propertyName": "RotationLogSpeed" + }, + { + "propertyName": "ElevationLogSpeed" + }, + { + "propertyName": "TranslationZLogSpeed" + }, + { + "propertyName": "IsCalledManually" + }, + { + "propertyName": "CameraZ" + }, + { + "propertyName": "HasJustBeenCreated" + }, + { + "propertyName": "IsRotatingWithObject" + }, + { + "propertyName": "IsElevatingWithObject" + }, + { + "propertyName": "RotationMode" + }, + { + "propertyName": "TargetedRotationAngle" + }, + { + "propertyName": "TargetedElevationAngle" + }, + { + "propertyName": "ForwardX" + }, + { + "propertyName": "ForwardY" + }, + { + "propertyName": "ForwardZ" + } + ] + } } ], "eventsBasedObjects": []