1. #1

    Editor Questions


    This post is meant to be a catalogue of questions and answers that people have asked about the Trials Fusion Editor, and its components. All questions are grouped under one of headers listed below, and can be accessed by clicking "Show" on the spoiler tags.

    If you have any questions not already listed, ask them below and I'll include them in the post, or if you know the answer to any of the questions, respond below and I'll include your answer. Questions are grouped into the categories by me, and if you feel your questions is in the wrong spot feel free to tell me in the comments below.

    Format:
    (User) Question:
    (User) Answer:
    (???) A: indicates an unanswered question

    Hopefully this can become a catalogue of information that can help all creators in Trials. Thanks for reading!
    - PneumaticBog484




    Editor Tools/Settings
    Spoiler:  Show
    1. (PneumaticBog484) Q: What does the "Active Objects" value in the statistics overview mean? I seem to max this number out frequently.
      (Mutetus) A: It's all objects inside the physics range that have collision on. The number is different in editor because the physics activation area is larger.

    2. (Dasraizer) Q: I just found out that the time format setting when being displayed is being shown as a rounded value to 1/60th second, even though the in the set score section it shows its capable of 1000th second resolution, 0-999 being 1000ths, seconds x1000 and minutes x60000, giving a total time of 250:00.000 = 15000000, the maximum number for any score. Does anyone know if the true data is being saved and if this is only an issue when displaying this?
      (Dasraizer's original thread -->http://forums.ubi.com/showthread.php...ng-format-Time)
      (???) A:





    Objects/Object Properties
    Spoiler:  Show
    1. (PneumaticBog484) Q: If a custom collision is set to change size dynamically and has physics enables, whenever the size changes it reverts back to its original coordinates. Is this intentional, to avoid awkward collisions?
      (Mutetus) A: Although you can change the size of a custom collision object dynamically, the game engine will have to reset the object after every change and recalculate collisions with every object surrounding it so it's very bad for the performance to use the custom collisions this way.

    2. (PneumaticBog484) Q: The "Reset in Checkpoint Restart" option; does unchecking that option save on memory or calculation speed since the Editor doesn't have to remember the original value? To go along with that, if I was to uncheck "Reset in Checkpoint Restart" on ALL objects, impulses, events, data sources, effects, and basically everything else that has that option, would it drastically help the map in any way? I was considering making the button "B" (on Xbox) a useable button by doing this, but you would see any barriers to attempting this?
      (JolanXBL) A: Thinking about code, I assume that on or off would use the same amount of data as the Reset to Checkpoint is still a variable that contains either a 0 or a 1. Like if a VDS had a SET a=1 to start, and you turned it off, that would run the command SET a=0. The value of 'a' still exists in both instances. As the boxes are already checked by default, I'd venture a guess that the program would use less resources leaving it. However now that I think more about it, running the code to refresh everything may use a slight more resources (albeit very little) than skipping to the next object.

    3. (stoeptegelterror) Q: How do I create (stack) larger volumes of water without the surface layer of the water showing up?
      (???) A:





    Sounds/Effects
    Spoiler:  Show
    1. (PneumaticBog484) Q: How many sounds can you currently stack on top of one another? (ex. playing a car crash and an explosion and another sound source plays background noise) Also, why can't sounds of the same type be stacked? (ex. playing two car crashes right after one another, but the first crash sound will reset before playing the second)
      (Mutetus) A: I'm not sure about the total number, but it's also platform dependent. I think you can have around 20 sounds playing at the same time and the same sound instance cannot be used to play the same sound twice on top of another. The engine prioritizes the looping sounds so that they wouldn't be pushed out of the queue when playing other sounds and when using them there's less queue left for one shot sounds, but once a looping sound's volume reaches 0 it's disabled and may not start automatically again if a lot of sounds are played.

    2. (PneumaticBog484) Q: Some sounds that are set to really low volume make a "tearing" sound whenever activated. Is this avoidable? It was also present in Evolution.
      (Mutetus) A: That cannot be avoided, it's something with the fmod library. If you use looping sounds, the only way to avoid pops is to enable all sounds at once and turn volume to 0.1 and then to the desired volume when needed.

    3. (stoeptegelterror) Q: Is there any way to turn off or reduce the sound level of the water object?
      (PneumaticBog484) A: It is not possible to turn the sound effects down when hitting water, but you can make the water's physic's type "No Contact Response" That will make it have no physical body and you can drive through it without the sound or the splash effect. You could then add a Sound Looping object with a water sound set to a custom volume, and set it to play every time the bike touches water. Since the water is "No Contact Response" it can still send impulses when hit.





    Trigger System/Operations
    Spoiler:  Show
    1. (PneumaticBog484) Q: Should I be concerned about using multiple variable data sources, a single vector, or two-dimensional vector? Do they take up the same amount of memory or are they different data types? (integer v floating point)
      (Mutetus) A: Depends on the platform, 360 has very limited memory thus the complexity bar will rise faster. The values in every datasource use same amount of memory, but it's the actual tool card objects that vary in size. Generally it's wiser to use one vector instead of 20 individual data sources, but careless use of vectors and get vectors may lead to more complexity and unnecessary calculations. One must remember that changing the contents of a vector will cause the whole chain of datasources connected to it re-evaluated, so it's better to copy the values when needed instead of having a massive operation chain directly from get vector.

    2. (PneumaticBog484) Q: Should large functions created with 20+ tool cards be copied if you want to use new input values, or should selectors and set values be used? For example, a function that takes in a coordinate (x,y,z) and then gives three more coordinates (newx, newy, newz); should it be copied to use again or have the inputs be variable data sources that can be altered while playing. (I only need to use my function twice, but it consists of 40+ tool cards)
      (Mutetus) A: You should always design the logic and functions so that they can be used for the same kind of task by changing the input parameters. And as previously stated, setting an input value for a complex operation chain when needed and setting the result into separate datasource, the whole function is calculating values only when it's called.

    3. (PneumaticBog484) Q: Compared to OBE, and physics, how much computing power is taken up by normal operation tool cards? For example, if given the option would checking for coordinate collision with filters or a hit trigger be better for computing speed.
      (Mutetus) A: If you can check collisions with coordinates instead of physics it's definitely more efficient, but once again it depends on the complexity of the calculations.

    4. (PneumaticBog484) Q: When a data value that comes from a long chain of operations is needed, are all the operations recalculated every time the data is called? For example would setting a variable data source to the value of (num1 + num2)/num3 ONLY when num1,num2, or num3 is changed help with speed? Since getting the variable data source would just be a memory call and not a whole list of operations. (that was just an example; my chains can be as long as 10-20 operations)
      (Mutetus) A: See 1&2

    5. (PneumaticBog484) Q: Were the tool card sound effects that played when selecting and deselecting data sources removed, or are they just bugged out?
      (Mutetus) A: I don't know, probably not high priority

    6. (PneumaticBog484) Q: Why are the trigonometric functions (cos,sin,tan) multiplied by 1000, and the "Arc" functions (arcos,arcsin,arctan) divided by 1000? I suspect it is to maintain accuracy beyond two decimal places, but it is quite annoying to constantly divide or multiply by 1000. I understand that they should cancel each other out if used together, but I often find myself using them separately.
      (Mutetus) A: For the sake of accuracy

    7. (PneumaticBog484) Q: I may have missed it, but is there not a square root or x root operation?
      (Mutetus) A: There's "SQRT" in one-input operator

    8. (Dasraizer) Q: I noticed that if i use the game data source for getting the stick values, if i compare the value is different from the last tick, by the time i get to update the value, it could have changed, I was surprised to find this as it hints that the game data is updated by the physics tick and not the impulse. II now copy the stick value (Set Value), test that and update, I was wondering if I really need to copy the value with an SVE or will it hold the value simply by linking it to a VDS?
      (Mutetus) A: I think the data like controller values and such are evaluated outside the trigger system for other purposes so they might change any time during the tick. For comparing them during one tick it's good to store the values in a data source for that tick but the value can still be wrong.

    9. (JolanXBL) Q: On the 360, the gas (right) trigger has 7 pressure points but the brake (left) only has 3. Is that how the triggers are designed on the Xbox controller or for the game, as brake is used far less?
      (???) A:

    10. (Core2TOM) Q: Object info datasource (Type: Drivingline position) vs. Player Event (Type: Reset to Drivingline / Drivingline Index)
      - The Object info datasource shows you the drivingline position in meters
      - The player event needs the position in % of the drivingline.
      ... Is there a reason for this? And which part of the bike or rider do I have to select to get its exact position on the drivingline?
      (???) A:

    11. (Core2TOM) Q: Object Pointer vs. Object Getter + Object Array
      - Object pointer (Enabled / Transfer events to all targets / Select enabled object index / Select target objects)
      - Object getter (Select Object array / Select object index)
      - Object getter requires the Object array
      - Object array (Enabled / Select target objects)
      ... What's the difference? For me it seems like the tools are designed differently, but doing the same thing. Object Pointer is like Object Getter + Object Array combined?
      ... Can you do more with Object pointer?
      (Dasraizer) A: The main difference is the pointer can only have one index while the array can have many getters each with there own index.

    12. (Core2TOM) Q: Game condition filter (Type: Game Started) / (Type: Game Running) vs. Player condition filter (Type: Riding)
      ... What's the difference? Game Started should just send 1 impulse if the game starts, but it's not.
      (JolanXBL) (October 21,2014) A: I set the 3 conditions up with an Interval Trigger, set to fire repeatedly at 1 tick, here are my findings. None of these start before or during the countdown as triggers don't get fired either.
      Game Started
      TRUE: Starts after the countdown and works while game is running. Essentially same as Greater/Equals.
      FALSE: Does nothing before the countdown, Starts when game ends.
      Game Running
      TRUE: Starts after the countdown, stops when game ends.
      FALSE: Starts after game ends.
      Game has Ended
      TRUE: Starts when game ends.
      FALSE: Starts after game has started and while running. Opposite of Game Started.
      Player Riding
      TRUE: Delivers impulses while player is on the bike or performing stunts.
      FALSE: Delivers impulses when player falls off via Bail Out, Grapple, durability, or unconscious.
      Player Bail Out
      TRUE: Delivers impulses when player falls off via Bail Out, Grapple, durability, or unconscious.
      FALSE: Delivers impulses while player is on the bike or performing stunts.

    13. (Core2TOM) Q: Scalar operator (Input Type: Vector / Operation: Length) / (Input Type: 2 Vectors / Operation: Dot product)
      ... What is Length and Dot product? And what can I do with that?
      (Dasraizer) A: For vector operators, this may help http://forums.ubi.com/showthread.php...t-they-are-for
      To add to this:-
      Cross Product takes two vectors and calculates a vector that is perpendicular to the surface, and hmm the easiest way to think about it is along the lines of, visualize a triangle where one corner is located at 0,0 and the two edge vectors that join that are used as the input vectors for the cross product operation, the output vector will stick up (or down) from the flat triangle surface.
      Notes:-
      If the vectors that are input to the cross product are normalized the output vector is normalized too, if not then you can normalize the vector to make it a unit length (of 1).
      A cross B is not the same as B cross A, (hence the up/down).
      In 3d game engines the cross product is mostly used to calculate surface normals for shading and hidden surface removal.

    14. (Core2TOM) Q: Vector object info (Type: Direction) / (Type: Side) / (Type: Up)
      (Dasraizer) A: Direction (X axis), Up (Y Axis) and Side (Z axis) are the objects normals, handy if you want to project (and lock) an object to another whist its in rotation so it matches the rotation and stays relative to it.

    15. (Core2TOM) Q: Vector object info (Type: Screen position)
      ... Does Screen position reacts on the game camera? I have no idea. Please explain how to work with those types and how to use the values if I got them.
      (Dasraizer) A: The screen position tool is quite handy too, it gives the screen coordinates of an object relative to the edges of your TV, X,Y for left/right and up/down, Z for in front/behind your TV, to see this working (as it only updates when physics is enabled), point the screen card to an object , pick up the object and enable the editor physics, now move the object around your TV and watch the values.

    16. (Core2TOM) Q: On RedLynx Derby there are some cannons that always aim to the current position of the rider. T used a different solution to do this, but I think the best way could be to get the angle values from a custom cam that's aiming at the rider (?) but if I use this, the object is in the wrong angle. Any ideas?
      (Mutetus) A: Getting something to face the camera and staying at certain position of the screen can be accomplished using the screen position data, but there's so much tweaking involved because of the camera interpolations and such that it's difficult to give a detailed explanation here. Basically it's just moving a reference object with the camera at known coordinates and comparing its screen position to the actual position. The other difficulty with it is getting it to work with different aspect ratios, as you can see in the trick master it's always in the bottom right corner on every resolution.

      Custom cameras are the easiest way for most people to make something follow the rider, but the camera rotation is not the same as other objects', so it's usually just a matter of adding or subtracting random values from the angle data just to see which way it'll turn. You can also use ArcTan2 to find angle between two objects like this: <see Mutetus's post>

    17. (Core2TOM) Q: On Hard Wheeling the front wheel is only moving if it touches the ground or objects. its not moving if you perform a wheelie. I asked shogun that on the previous editor stream, but we didn't found the perfect solution. How to do this? I made a little tutorial how to build a wheelie Skillgame, it's nearly the same like the example track in Evo: I divided the game character speed with 5000. is this the same value that was used on hard wheeling? It's working, but it doesn't seem to work properly, especially on hard landings.
      (Mutetus) A: Bike wheels can be locked by simply using a physics joint between the wheel and suspension. The speed for determining the wheel damage in Hard Wheeling is actually taken from the rotation speed of the wheel, but that also needs some extra math if the driving line curves (thus altering the global rotation axis of the wheel). Game character speed is not good for this purpose because the game character is the rider and there are some fast movements when leaning and landing.

    18. (Core2TOM) Q: On Trick Master the FMX tutorial boards are displayed in the lower right corner of the screen. I guess this could be done with the Screen position type of the Vector object info (?) How to do something like this?
      (Mutetus) A: See 22

    19. (PneumaticBog484) Q: Extracting Object Info Data source values (such as positions, angles, normals, etc.) lags behind the actual value by one tick. Is this avoidable, and is this just how the data is updated during the tick?
      (Dasraizer) A: It's updated while the frame is being drawn, so it will always be 1 tick behind. I got around this sort of by adding the 1/60th of the velocity to the position, but this only works if the tracked object has physics enabled.

    20. (PneumaticBog484) Q: Is there a way to extract values from an Object Array of Vectors and/or Variable Data Sources?
      (Dasraizer) A: If you have several standard vectors tied to a pointer you can use the copy vector event; if I recall correctly you can only do row 0 of the current indexed vector. Also if you are using several object position vector with a pointer , it doesn't work well when coping, you have to tie the values to a standard vector and use them for the pointer objects, fixing the issue.

    21. (Breity-one) Q: How can I teleport my Rider/Bike, to another area?
      (Core2TOM) A: That's possible with the Player Event; reset the rider to a checkpoint or somewhere on the driving line.

    22. (Jonny) Q: I heard that running too many interval triggers at once could cause performance issues so I was wondering, would it be less work for the game if I used a single interval trigger linked to an impulse splitter which would be linked to everything on my map that is running off a constant interval trigger? I would chain them all up in a huge chain but I have a lot of ends that cant finish links etc., and I would also assume there is a maximum chain value that the game can handle (and I think my chains will be longer if I tried to link them all up).
      (Jonny's original thread -->http://forums.ubi.com/showthread.php...igger-question)
      (???) A:





    Base World/Environment
    Spoiler:  Show
    1. (PneumaticBog484) Q: Why is Office Block 13 not in the standard objects, along with that curved roof found on the hangar at the "Airport" area in the Fusion world?
      (Mutetus) A: There are so many objects that probably someone just forgot it. The thing is that the world is created with a higher level tool that has nothing to do with the actual track editor. You also need to remember that the track editor is also primarily a developer tool, but also given to the players, so it's not the highest priority in game fixes and the players are not the only ones having editor crashes.

    2. (PneumaticBog484) Q: The Cloud Shadows move in the opposite directions as the Clouds do. Is this a bug, or is that how Cloud Shadows work?
      (???) A:

    Share this post

  2. #2
    mutetus's Avatar Trials Developer
    Join Date
    Dec 2013
    Location
    The land of fin.
    Posts
    859
    That's a lot of questions I'll try to answer but some answers might be inaccurate. And not all at once because I'm on tablet and it could take forever to write.

    1. Depends on the platform, 360 has very limited memory thus the complexity bar will rise faster. The values in every datasource use same amount of memory, but it's the actual tool card objects that vary in size. Generally it's wiser to use one vector instead of 20 individual data sources, but careless use of vectors and get vectors may lead to more complexity and unnecessary calculations. One must remember that changing the contents of a vector will cause the whole chain of datasources connected to it re-evaluated, so it's better to copy the values when needed instead of having a massive operation chain directly from get vector.

    2. You should always design the logic and functions so that they can be used for the same kind of task by changing the input parameters. And as previously stated, setting an input value for a complex operation chain when needed and setting the result into separate datasource, the whole function is calculating values only when it's called.

    3. Although you can change the size of a custom collision object dynamically, the game engine will have to reset the object after every change and recalculate collisions with every object surrounding it so it's very bad for the performance to use the custom collisions this way.

    4. I'm not sure about the total number, but it's also platform dependent. I think you can have around 20 sounds playing at the same time and the same sound instance cannot be used to play the same sound twice on top of another. The engine prioritizes the looping sounds so that they wouldn't be pushed out of the queue when playing other sounds and when using them there's less queue left for one shot sounds, but once a looping sound's volume reaches 0 it's disabled and may not start automatically again if a lot of sounds are played.

    5. That cannot be avoided, it's something with the fmod library. If you use looping sounds, the only way to avoid pops is to enable all sounds at once and turn volume to 0.1 and then to the desired volume when needed.

    6. If you can check collisions with coordinates instead of physics it's definitely more efficient, but once again it depends on the complexity of the calculations.

    7. See 1&2

    8. It's all objects inside the physics range that have collision on. The number is different in editor because the physics activation area is larger.

    9. There are so many objects that probably someone just forgot it. The thing is that the world is created with a higher level tool that has nothing to do with the actual track editor. You also need to remember that the track editor is also primarily a developer tool, but also given to the players, so it's not the highest priority in game fixes and the players are not the only ones having editor crashes.

    10. I don't know, probably not high priority

    11. For the sake of accuracy

    12. There's "SQRT" in one-input operator
    Share this post

  3. #3
    dasraizer's Avatar Senior Member
    Join Date
    Apr 2014
    Location
    UK, Isle of Wight
    Posts
    1,195
    @pneumaticbog484, great list and one i may have put up at some point.

    @mutetus, thank you for the answers, this will be of great help, I always wondered about the recalculations as the editor does give hints to this when in run mode, i can observe the highlighted paths, so i generally try to copy values into large maths chains or vis-versa, however i didn't really consider the get vector as creating extra work, interesting.... I will have to copy the data out and evaluate it on the temporary VDS/Vector from now on. It would be nice if the get vector option had the ability to return an N Vector or even just a 3 vector.
    and i always wondered if physics based triggering would be better than manually hit scanning.

    maybe if possible you can create a "Do's and Don't" for the editor, listing the kinds of things you've done here and much more. I think this is important to help improve performance with high tool card counts, the project Im creating is starting to hit limits and that's only like ~150 active cards.

    I also noticed that if i use the game data source for getting the stick values, if i compare the value is different from the last tick, by the time i get to update the value, it could have changed, I was surprised to find this as it hints that the game data is updated by the physics tick and not the impulse. II now copy the stick value (Set Value), test that and update, I was wondering if I really need to copy the value with an SVE or will it hold the value simply by linking it to a VDS?
    Share this post

  4. #4
    mutetus's Avatar Trials Developer
    Join Date
    Dec 2013
    Location
    The land of fin.
    Posts
    859
    Your track can have hundreds of cards, it's just about wise handling of the data and not causing any unnecessary calculations. Everything that's connected together with the green lines and changed will have everything connected to them calculate things connected to them and so on..

    I think the data like controller values and such are evaluated outside the trigger system for other purposes so they might change any time during the tick. For comparing them during one tick it's good to store the values in a data source for that tick but the value can still be wrong.
    Share this post

  5. #5

    My apologies Mutetus. I have been quite busy this past week working on final projects for school, and I didn't get a chance to reply to your answers. Thank you so much for the speedy response, I appreciate it greatly. These answers will be quite useful for my Skill Games, and I'll use them much more as summer break rolls around. The recalculating operations based off vectors will definitely help, as I now know why the game stalled greatly every time the vector changed. The fact that operation chains recalculate every time the chain is called is probably unknown to most people, and I would suggest mentioning it on your next Editor Live Stream, unless you already have... I never know when the streams are.

    I have one more quick question as well.

    The "Reset in Checkpoint Restart" option; does unchecking that option save on memory or calculation speed since the Editor doesn't have to remember the original value? To go along with that, if I was to uncheck "Reset in Checkpoint Restart" on ALL objects, impulses, events, data sources, effects, and basically everything else that has that option, would it drastically help the map in any way? I was considering making the button "B" (on Xbox) a useable button by doing this, but you would see any barriers to attempting this? I'm scared that I'll spend hours unchecking all those "Reset..." boxes and then something will still not work.

    Thanks again for your quick response! That list will help me so much, and I'm sure more people would love to know some of those things. You should definitely mention some of them on future live streams. Keep up the awesome work over there at RedLynx!

    -pneumaticbog484
    Share this post

  6. #6
    Thinking about code, I assume that on or off would use the same amount of data as the Reset to Checkpoint is still a variable that contains either a 0 or a 1. Like if a VDS had a SET a=1 to start, and you turned it off, that would run the command SET a=0. The value of 'a' still exists in both instances. As the boxes are already checked by default, I'd venture a guess that the program would use less resources leaving it. However now that I think more about it, running the code to refresh everything may use a slight more resources (albeit very little) than skipping to the next object.

    Now I have a question for the Devs, if I may ask here?
    On the 360, the gas (right) trigger has 7 pressure points but the brake (left) only has 3. Is that how the triggers are designed on the Xbox controller or for the game, as brake is used far less?
    Share this post

  7. #7

    I've updated the list with your question JolanXBL and also added Mutetus's answers underneath their corresponding questions.

    If anyone else has some questions, post them here and we can all try to answer them.

    - PneuamticBog484
    Share this post

  8. #8
    Core2TOM's Avatar Senior Member
    Join Date
    Mar 2014
    Location
    Germany
    Posts
    506
    i already asked some questions on the forums, but didnt got all the answers i need. so i ask some questions here again:

    • Object info datasource (Type: Drivingline position) vs Player Event (Type: Reset to Drivingline / Drivingline Index)
      - The Object info datasource shows you the drivingline position in meters
      - The player event needs the position in % of the drivingline.
      ... Is there a reason for this? And which part of the bike or rider do i have to select to get its exact position on the drivingline?

    • Object Pointer vs Object Getter + Object Array
      - Object pointer (Enabled / Transfer events to all targets / Select enabled object index / Select target objects)
      - Object getter (Select Object array / Select object index)
      - Object getter requires the Object array
      - Object array (Enabled / Select target objects)
      ... Whats the difference? For me it seems like the tools are designed differently, but doing the same thing. Object Pointer is like Object Getter + Object Array combined?
      ... Can you do more with Object pointer?

    • Game condition filter (Type: Game Started) / (Type: Game Running)[/B] vs Player condition filter (Type: Riding)
      ... Whats the difference? Game Started should just send 1 impuls if the game starts, but its not.

    • Scalar operator (Input Type: Vector / Operation: Lenght) / (Input Type: 2 Vectors / Operation: Dot product)[/B]
      ... What is Lenght and Dot product? And what can i do with that?

    • Vector object info (Type: Direction) / (Type: Side) / (Type: Direction) / (Type: Up) / (Type: Direction) / (Type: Screen position)[/B]
      ... Does Screen position reacts on the game camera? I have no idea. Please explain how to work with those types and how to use the values if i got them.

    • On RedLynx Derby there are some cannons that always aim to the current position of the rider. i used a different solution to do this, but i think the best way could be to get the angle values from a custom cam thats aiming at the rider (?) but if i use this, the object is in the wrong angle. any ideas?

    • On Hard Wheeling the frontwheel is only moving if it touches the ground or objects. its not moving if you perform a wheelie. i asked shogun that on the previous editor stream, but we didnt found the perfect solution. how to do this? and i made a little tutorial how to build a wheelie skillgame, its nearly the same like the example track in Evo: i divided the game character speed with with 5000. is this the same value that was used on hard wheeling? its working, but it doesent seem to work properly, especially on hard landings.

    • On Trick Master the fmx tutorial boards are displayed in the lower right corner of the sceen. I guess this could be done with the Screen position type of the Vector object info (?) How to do something like this?

    • How about some more Examples and Example tracks with the next patch? In Evo we had examples for nearly everything and people could use that on their creations and learn how the editor works. The editor in Fusion must be a nightmare for new players! Even all the helping texts are removed and i think thats the main reason why we have tons of bad tracks and skillgames on track central. Please give them some more help.

    • Can you please update the color event that it shows you rgb values aswell? The hsb-rgb converter from mutetus is awesome, but i saved it to the favorites and everytime i try to select it my game crashes and we cant even delete broken favorites on consoles.

    thanks for your time
    Share this post

  9. #9
    dasraizer's Avatar Senior Member
    Join Date
    Apr 2014
    Location
    UK, Isle of Wight
    Posts
    1,195
    hey Core2Tom

    Object Pointer vs Object Array+Getter, the main difference is the pointer can only have one index while the array can have many getters each with there own index.

    I too would like to know some info regarding game filter

    as for vector operators, this may help http://forums.ubi.com/showthread.php...t-they-are-for
    to add to this:-
    Cross Product takes two vectors and calculates a vector that is perpendicular to the surface, and hmm the easiest way to think about it is along the lines of , visualise a triangle where one corner is located at 0,0 and the two edge vectors that join that are used as the input vectors for the cross product operation, the output vector will stick up (or down) from the flat triangle surface.
    notes:-
    if the vectors that are input to the cross product are normalized the output vector is normalized too, if not then you can normalize the vector to make it a unit length (of 1).
    A cross B is not the same as B cross A, (hence the up/down).
    in 3d game engines the cross product is mostly used to calculate surface normals for shading and hidden surface removal.

    Direction (X axis), Up (Y Axis) and Side (Z axis) are the objects normals, handy if you want to project (and lock) an object to another whist its in rotation so it matches the rotation and stays relative to it.

    the screen position tool is quite handy too, it gives the screen coordinates of an object relative to the edges of your TV, X,Y for left/right and up/down, Z for in front/behind your TV, to see this working (as it only updates when physics is enabled), point the screen card to an object , pick up the object and enable the editor physics, now move the object around your TV and watch the values.
    Share this post

  10. #10
    mutetus's Avatar Trials Developer
    Join Date
    Dec 2013
    Location
    The land of fin.
    Posts
    859
    Getting something to face the camera and staying at certain position of the screen can be accomplished using the screen position data, but there's so much tweaking involved because of the camera interpolations and such that it's difficult to give a detailed explanation here. Basically it's just moving a reference object with the camera at known coordinates and comparing its screen position to the actual position. The other difficulty with it is getting it to work with different aspect ratios, as you can see in the trick master it's always in the bottom right corner on every resolution.

    Custom cameras are the easiest way for most people to make something follow the rider, but the camera rotation is not the same as other objects', so it's usually just a matter of adding or subtracting random values from the angle data just to see which way it'll turn. You can also use ArcTan2 to find angle between two objects like this:


    Bike wheels can be locked by simply using a physics joint between the wheel and suspension. The speed for determining the wheel damage in Hard Wheeling is actually taken from the rotation speed of the wheel, but that also needs some extra math if the driving line curves (thus altering the global rotation axis of the wheel). Game character speed is not good for this purpose because the game character is the rider and there are some fast movements when leaning and landing.
    Share this post