I’ve made a great deal of progress. My character is walking around on the inside of the sphere. I should break it down on here so others might see. It wasn’t as hard as I thought.
The first thing I did was to create a set of functions that would handle vectors. Throughout the character Movement Component the logic is “Z” is up. So most vectors are handled in this sort of orthographic vector space. So it’s easy to zero out or add in a value to just the “z” of a vector when it’s identifiable as z. Additionally X, an Y are sometimes treated together by adding in a value or zeroing them out. So if you’re sticking to the logic already assembled in the component then you have to be able to handle those situations.
I created a handful of vector functions to handle the situations I came across in the component:
-
Component to World ( this allowed me to compare a vector in a more unified orthographic vector state)
-
World To Component ( This I used to rotate Orthographic vectors to be relative to what my character capsule was, falling, jumping, capsule extents, etc…)
-
Back and Fourth (needed for
modifying X,Y,Z values in World
space. So in this function I first
transform the relative vector to the
world, modify the values, then
return it to relative vector).
I get Orthographic is probably the wrong term, but it’s how I visualize it. Using variations of the three functions above I was able to handle situations like Vector.Z = thisvalue, or Velocity().2Dfunction.
I have a few little hiccups that I’m still rooting out but this got me to the point where I can run around and jump/ fall inside of the sphere. I can do aircontrol, and still rule angles out that the player shouldn’t walk over (only relative to the capsule)
As a last comment I would say that you basically have to do this across the entire CharacterMovementComponent - Head to Toe. Little things scattered everywhere in there. Thanks!