Welcome to the Game Creator support forum!
This a place to ask questions, discuss ideas and report bugs. Please, provide your Unity and Game Creator versions as well as clear reproduction steps when opening a topic and full console logs.
Get Position / Set Position of Player or any other GameObject?
I cannot find any action to get position or rotation of game objects.
I would like to get the position of the player after it has completed a root motion animation and save that position to a vector3
Then I can reset the root motion to off and reset the player to that position so the player can carry on moving from that position onwards.
so we need get and set position,rotation and scale.
This has to do with my last post about root motion bug.
Hi EagleEyez! There's a specific Action for moving a character instantaneously around a scene called "Teleport Character".
If you want to move a character over time you can either use the "Move Character To" Action, which is perfect for navigating around the scene.
If you want it to climb obstacles, use the "Character Mount" Action to disable collisions and then use the "Transform Move" action to indicate a destination and a duration.
Root motion bug when using Gestures or States.
- I have a climb animation clip from Mixamo.
- I converted to humanoid as Mixamo uses generic.
- I had converted with unity and your Animator converter, both with same result.
- I then added a trigger that activated root motion and then played the animation and it worked but the input controller using the arrow keys just spins the player around, as if it were on a directional joypad. Even after deactivation root motion, same problem.
I then decided to use root bake in pose in the animation itself and leave out root motion.
- This worked and the controller worked normally but after the climb animation finishes it jumps back to where the player started from.
- I tried to use then a teleport to the last upper position where the animation ended and this works but still the glitch of the player springing back to its original position first is bad.
I thought it would be a good idea to get the position/rotation of the player at the end of its animation climb and then set the player directly afterwards to that position. So I can carry on from that position controlling the player.
- How do I get then the position of the player? I found no action for that.
Example: the player runs to a wall and when it hits a trigger it plays the climb over animation and is then standing on the wall. I correct the actual positioning if this animation in uMotion so it matches perfectly. My problem is that it either jumps back to the player position after the animation is finished or using root motion the controller is broken afterwards.
So please, please help here.
I also bought your Behavior add-on in the sale and will be buying shooter shortly. I buy a lot of assets, so I will wait to see what soon will be offered on the black Friday sales. If your assets are all on BF sale at the end of this month I will be buying all of them straight away.
Thanks from Chris
Hi EagleEyez. Thank you for the detailed explanation. However, we don't support root motion. Root motion authored characters tend to move more realistically, but require a whole set of animations in order to move the character around. Instead, we flipped the system: The character moves according to a set of variables (speed, angular speed, acceleration, ...) and we pick and blend the best animation possible from our controller.
This allows you to have much more control over your character's movement and tweak values without having to edit the whole lot of animations.
As for your climbing problem, if you download the climbing animation from Mixamo, you'll see you have an option to make the character stay in position (most animations have, at least). Check that box.
This way, there won't be any root motion in your animation clip. To make a character climb, we have in our roadmap a new module called Traversal. However, fear not, you can still create a simple climbing system without it.
Use the Character State to play the climbing animation when you want it to climb a wall. Then, use the Character Mount action. This Action allows a character to ignore all collisions and behaves like a primitive game object you can move around. Perfect for this case. Next, use the Move Transform Action to make the character move up the wall. After that, all you need to do is use again the Character Mount action to restore the character to its previous "unmounted state" and the Character State again to remove the "climbing animation" state.
Hope this helps!
I deleted an varible in Game Creator Prefernces window and then regretted the deletion and pressed ctrl-z.
(The varible i deleted was the first at index 0.)
After this the system broke down.
I tried to reinstall the Game Creator system but still nullrefernces and the GCP window was blank like above.
The following works, but if you set the Trigger to On Start, it will not work.
The Local Variables initialize at the same time as the Trigger, so depending on the execution order it might be that the Local Variable's init process takes place after the Trigger, overwriting any values previously set.
Simply add a "Wait" Action with 0.1 seconds and should solve the issue.
I'm making a transition from day to night in my game. The Intensity Multiplier, located in the Lighting options, is integral to this.
By increasing it, I can make a scene look like daytime without the need to add a bunch of cumbersome lights.
Decrease it and things become pitch dark, the only light coming from the ones I've baked into the scene.
If I can't alter the value via an action, I'll be forced to create an entirely separate scene, just so I can have a different Intensity Multiplier value for it.
Despite there being a couple YouTube tutorials that work with the Intensity Multiplier, I need to find a script that works with Game Creator.
Wondering if you would be able to add a fade parameter to the Load scene action Why you may ask? Because the load scene action has the option for variables. Or maybe add the variables option to the Fade scene transition. either is would be fine.
Ding ding ding! It's your lucky day! We created a free module a few years back that we never uploaded to the Asset Store (we will one day). It's called Transitions and allows to load scenes using a wide variety of transitions, including a fade-to-black.
Here's the link: https://hub.gamecreator.io/content/item/GOO3lMAu1hGwfcrBDdYG
1. The object of the game by default is FALSE, now I changed it to TRUE and save the game. But still loading is FALSE, it's not displayed correctly.
2. The object of the game by default is TRUE, now I changed it to FALSE and save the game. But the loading is still TRUE, it has not been properly hidden.
I just want to save GameObject in the Hierarchy no matter show or hide ,any Suggestions?
I havent purchused this yet. Im thinking of doing a 2.5D side scroller. Has anyone done that with this system? And if so, is it good for making a side scrolling game?
Developer of Game Creator here, so our opinion might be a bit biased :-P We participated in a game jam a few weeks ago that featured a side-scroll perspective. It's quite easy to set up. The only limitation is that characters must be 3D models. Here's the Itchio page with a walkthrough: https://catsoftstudios.itch.io/dishonor2d
Here's what you need to take into account: The Input section from the Player must be set as "Side-Scroll". You can choose to navigate through the XY or ZY plane.
If you're going to use the Shooter module, there's an option to aim on a 2D plane. You can check out out latest tutorial to see the Side-Scroll aiming in action.
I am trying to change the value of a UI Text Field so that it takes it's entry from a local variable attached to my enemy prefab. What I want is the enemy name displayed on the "target information" on the UI. I have looked through most of the actions I thought might do this, but I cannot find anything suitable.
I created a local variable component on my enemy character called "EnemyName". I then set that as a string and entered in "Robot". All my enemy prefabs (orcs, trolls, etc) will have the same variable name (i.e. EnemyName) so the target system takes the name from that field.
As I could not directly find a way to make the local variable dynamically populate the UI text field I thought that I could populate a Global Variable with the current target and show that in the UI Text (I found a way to do it static, using the Variable Text script and selecting Local Variable, adding the Game Object as my robot character and then selecting EnemyName as the field, but this would always show "Robot" as the target name regardless of what was selected).
Now I need to find out how to populate the Global Variable with the selected Game Object's local EnemyName variable, and again, I cannot seem to find an action that takes a local variable value and populates a global variable.
Struggling with this atm. Could you assist at all with how you would handle this, please.
Many thanks, Steve
Working! I had a few problems and had somehow managed to add the Variable Text directly onto my canvas which stopped the left mouse click working (it was also added in the correct place too, I still have no idea how I did that :) ). I have it working now as I realised that the action needed to be on the enemy game object, and not a standalone action.
Thanks so much for your help, it was most appreciated :)
Many Triggers fail at assigning to Local Variables when the Local Variable is specified as living on the Invoker object
My scenario is I'd like to assign to a Local Variable living on the same object where a Trigger component exists. In this specific example I'm trying to assign a collided object to my "lastCollided" Local Variable when an On Trigger Enter event occurs. Screenshot of the setup :
I expect that the "lastCollided" Local Variable existing on this very game object will get assigned.
What actually happens is that the trigger fires correctly with a collider the lastCollided variable stays null. (However it does work if I choose "Game Object" instead of "Invoker" in the dropdown that specifies where the local variable lives.)
Tracing through the code I can see the IgniterTriggerEnter.OnTriggerEnter method has a call:
This seems to be where the valid collider should get assigned to the local variable. However, the Set method's optional second parameter (which appears designed to accept the Invoker) is missing. As a result the variable does not get assigned.
It works the way I expect if I change the line to read:
Presumably every call to VariableProperty.Set should have a populated 2nd parameter for the Invoker so that situations like this won't fail. I think the fix is to change the definition of VariableProperty.Set so that the 2nd parameter is not option. Then populate it with "gameObject" in all the code that used to call it without a 2nd parameter.
Correct, the Invoker changes where it points depending on the Trigger. It should be read as "What object is responsible for the firing of the Trigger?". Despite this, I agree that it's not always clear what object is Invoker referencing to. For these cases, we created an Action called "Debug Name" where you can print the name of the Invoker. This allows you to quickly identify which object is.
We are aware that this is not optimal and we intend to fix this in Game Creator 2.0. We have a few ideas that will make this easier to understand and will always know what object does the Invoker refer to.
Customer support service by UserEcho