Hi Mitchel, I implemented fully functional wallwalking about two years ago for the first implementation of our gameplay, when we still had an alien. I'm not sure which part you're referring to though. Personally, when players in my mod jumped to or walked over a new surface, I kept the current camera orientation, since changing your camera angle at that time gives a shocky experience and can be very disorienting. What I rather did, is modify the input classes so all mouse movement from that point on happened in the reference frame of the new surface ( with some interpolation over time to smooth things out ). This felt very natural and worked very well. I also touched problems that sound a lot like yours, I'm not sure if they're the same, but I can give you the math for my approach if you want.
One word of caution though. I don't know your game's pitch, so for all I know you won't have this problem, but we eventually stepped away from wallwalking since you cannot do it properly (i.e. fully equivalent to upright walking ) without an oriented box shapecast, which Source doesn't support. I had something pretty decent using several points that I transformed ourselves, but this kind approach always has edge cases with certain geometry. One concession you can make to still have it working decently, is e.g. limiting the orientation and complexity of the surfaces you can walk on, but that was a sacrifice we chose not to make. Hope that helped a bit. Feel free to contact me on- or off-list if you want more info or parts of my code. -- Maarten > Hi Everyone, > > Making a mod with a few others that has walkwalking - the actual physical > walking along walls part has been implemented. > > Basically it uses the normal of the surface you are walking on and the > viewing direction of the player to construct the correct 'right' and > 'forward' unit vectors, so that the players movement is constrained to the > surface (using the cross product). > > The problem I am having now is that I want to change the camera angle to > face the "forward" direction of the surface. I have hooked up the > server-client code so that I can directly change the camera angle however > my > vector cross product calculations screw up because I am now changing the > camera viewing angle and then using it to make a calculation which changes > it again - e.g. circular madness. > > Thus I am sure it is possible because you see it done all of the time - > but > is there a way to construct at least one right angled vector from just one > vector? The cross product requires 2 vectors, so I played with arbitrary > vectors and rotations to the original direction of the normal to the > surface > - however I get problems where one wall's normal will eventually be > co-linear to the vector I have chosen (which results in a zero vector). > > So I am not sure I really explained the problem all that well - I can go > into more detail if anyone doesn't understand. > > Thanks > > Mitchel > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

