Home Artists Posts Import Register

Content

Monday Update (on a Tuesday >_<)

Hi Everyone!
Sorry about the one day delay! it took an extra day to cook up the weekly video to show off how all the new features work for the folks who get those. I work hard on those :P
Last week was a huge production week and I didn’t have any wacky events take me away from the computer. It feels like winning some kind of prize when that happens :P Because of that I was able to make the rideable friend system work in Besti X, plus I was able to write multiple ways of making it work that give different levels of comfort in VR.
Most quadrupeds are super bouncy when they move, and horses are no exception. I feel like I made a pretty good solution to this by programming 3 algorithms to position you in the options screens.

  • Stabilized does what it says on the tin, so it keeps you from bouncing and pitching with the rideable friend characters. This is the best option for folks with a limited amount of experience in VR.
  • Stabilized + Pitch keeps the vertical stabilization from the previous mode, but averages out the angular difference between the front and back legs to calculate an angle for you to be at. When your friend goes up a hill, you pitch back. When your friend goes down a hill, you pitch forward. This is good for folks with a medium level of VR comfort.
  • Unstabilized does not perform the vertical stabilization, and does include the pitch calculation. This is ideal for 2D mode, but in VR it makes me motion sick. If you don’t get motion sick this is the most accurate simulation.

Neat! You can change that in-game and it updates immediately, switching to the desired stabilization algorithm.
Initially when I designed this (on paper) I thought it would be a good idea to have your avatar be physically represented on the horse procedurally, based on some pre-defined points (knees, feet, butt, leg routing path, etc…). When I actually started programming it though, I hated it, and realized how limited that really was. The tool itself in the Besti SDK to set that up from the outside would be more complicated than setting up the capabilities of making a character sexually available, nor could it ever work properly with quadrupedal avatars which may ultimately become the most popular kind for all I know. It also conflicted hard with the personal scaling system that makes you physically smaller or larger than you are in real life (already done/needs a UI), conflicted hard with multiplayer (working on it), and overall just added complexity to character creation where it isn’t really needed.
I had to think outside the box a little bit and decided to go with a similar technique that Super Mario Odyssey did, which is that you can effectively “capture” creatures to ride them instead of making the animations that represent your avatar physically on the character. Once I programmed that it made way more sense to do that than anything else, because it ties together all the capabilities you have (switching your bodies upon demand, teleportation, ghost hands, etc…) and adds a fun new dynamic to the experience where you can control other characters at will and ultimately gain their abilities while doing so. It also completely avoids the problem where you may be physically standing in VR, but your body is sitting, which breaks immersion.
Further down the road, the capture system gives us future opportunities to give people different eyes that see differently. “See” smells as a wolf like in “WolfWalkers”, for example. I don’t know, but it would certainly opens up our options. In any case it just seems way cooler to do it this way, it’s much faster to program (it’s literally done and working I finished it last week), and better takes advantage of the medium. Is it more fun in concept to ride a dragon, or be a dragon? I’d go with the latter
In any case, none of this changes the overall interaction and experience of doing this, it just makes riding look better, adds additional capabilities. When you un-capture (stop riding) a character it reactivates its AI and it resumes doing whatever the AI tells it to do pretty much in the same way Odyssey does it. Right now the AI is just programmed to wait for a command, but I’ll put some clever idle horse-specific behaviors into the characters for eqCy to like make it more lifelike. That’ll be easy.
You un-capture characters by teleporting away (turns you back into a ghost or your avatar if you have one set) or by capturing a different character. Easy peasy and you don’t really need to think about it.
On top of finishing the riding system, the friend AI pathing system is ALSO done this week though it still needs a UI just like riding does. You can specify a point on the floor and the horse will calculate the shortest route to it and move to it. It does this by using what is called a “Nav Mesh Agent” which is a cool program built into Unity to handle pathfinding. We take that pathfinding data and feed it into the horse, and the horse goes from A to B. Neat!
Anyway that’s it! Big week! I’m going to be doing emails today and into mid tomorrow I suspect but then I’ll be right back at it. I haven’t set a goal yet for this week but I’ll figure out what’s next when I sit down and look at what’s on my list.
--Skunk <3



Comments

No comments found for this post.