"Not" vs "!=true"

Hello there, (disclaimer - This is just my understanding, I could be wrong)

So as Stormrage256 said the difference is between comparison and logic operations. So taking the == as an example. If you were to write in code that myVariable = 1, then you are setting the value of myVariable to 1 (in blueprints you’d use the set node to set the value). However, if you wrote myVariable == 1, you are asking if the value of myVariable is 1 and you need to put a condition before it like “if” and some resulting code after it to do something. There are a bunch of comparison operators for example, less than, greater than, less than or equal to…etc. == is also a comparison.

The != is the same. It’s comparing the value to something (so if myVariable is not equal to myOtherVariable do something). In this case because if crouching is a bool and the second pin of the != is ticked it’s saying, If the value of the bool (Is Crouching) is not set to true, then you can enter the transition (IF IsCrouching != True enter tranistion). So the if because this is a transition so it’s asking the question, and the result of the comparison determines whether or not it will enter the transition.

NOT, is a logic operator, along with OR, AND etc. I understand them as acting like gates allowing things through or not based on the inputs. So In the second example the AND is saying both of these things must be true to enter the transition. If one of them was false, the AND would evaluate false, and you couldn’t enter the transition. If you were to switch that with an OR for example, as long as one of them was true, then it would enter the transition. A NOT would output the inverse of the value you give it. So, if IsCrouching was true, a NOT would output the value false (it wouldn’t actually set it though, it would just output the opposite value) and vice versa. It would just be saying If the value of IsCrouching is one value, tell me the opposite (but don’t actually store that) and enter the transition. Where what you actually want to do is say only enter the tranistion if IsCrouching is definitely not true.

Sorry if that’s a bit rambly and difficult to understand, but hopefully it helps.