Register for your free account! | Forgot your password?

You last visited: Today at 19:43

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



BAN2OZZ

Discussion on BAN2OZZ within the SRO Coding Corner forum part of the Silkroad Online category.

Reply
 
Old   #1

 
elite*gold: 260
Join Date: Aug 2008
Posts: 560
Received Thanks: 3,780
Post BAN2OZZ

About

This thread is a continuation of , so be sure to read that one first. I'll skip most of the stuff I've already talked about in that thread that overlaps with this one.

BSK2OZZ creates a skeleton in the ozz format from a BSK. It will also create a bind-pose animation in the ozz format to verify it. BAN2OZZ takes the next step of using the generated ozz skeleton, and then will retarget a BAN animation to an ozz animation compatible with the skeleton. There are naturally some issues that result from this process.

First, the ozz viewer uses OpenGL coordinates, while Silkroad uses DirectX coordinates. You'll notice the animations are using the wrong hand as a result.

Second, the animation logic the ozz viewer uses doesn't match Silkroad's animation engine. This means the timing for the animation is way off. In my screenshot previews, I cranked the time factor up to 5 as well as the animation speed to 5 times faster, and it was still slower than what you see in Silkroad.

Third, the viewer is simply loading the skeleton and applying the animation directly to the skeleton, so there's no interpolation between poses, since only 1 animation is being used relative to the bind-pose itself. This is subtle but if you look at how the character looks going from an idle or combat idle animation into using a skill, the transition movements between those poses won't match what you see in the viewer because the animation is starting from it's first frame and not doing any transitioning.

Included in the zip is the ozz animation for 'chinawoman_vendor01.ban' and the 'chinawoman_skel.bsk' ozz skeleton generated from BSK2OZZ. Like before, only minimal testing has been done to verify I'm on the right track of processing the data and getting stuff displaying.

Usage now requires two arguments (so drag and drop won't work nicely anymore). The first argument should be the ozz skeleton BSK2OZZ created. The second parameter should be the BAN file to target to the animation to. No testing has been done trying to target animations to skeletons that aren't inherently supported, but the code should give a warning if an animation references a bone not in the skeleton.

Source Only

This code is pretty similar to BSK2OZZ's, as I've replaced the BSK processing code with BAN processing code, and made the necessary changes to build an animation instead of a skeleton. The wiki page was used to get the BAN format.

BAN2OZZ.cpp

Screenshots

NOTE: I had to convert from mp4 to gif and then optimize the gif again to try and get the files small enough to upload to epvp img. As a result, they're low quality, but should at least give you a rough idea of what the program shows.

skill_ch_bow_call

skill_ch_bow_critical_a

chinawoman_vendor01

VirusTotal

Source is included, but I've also bundled the ozz SDK's demo viewer program for convenience (which has 1 false positive) as well as a pre-compiled converter that requires the vs2019 runtime to be installed. Compiling from source should easily work as-is though with no problems (compile in x64 Release). If you want to recompile OZZ SDK stuff though, you'll have a bit more work to do (hence why I'm just using their official SDK package and not running from source)

BAN2OZZ_0_1.zip -
BAN2OZZ.exe (compiled by me) -
sample_playback.exe (OZZ SDK file) -
Attached Files
File Type: zip BAN2OZZ_0_1.zip (910.4 KB, 68 views)
pushedx is offline  
Thanks
13 Users
Reply




All times are GMT +1. The time now is 19:44.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.