forum

Im assuming the "Bezier curve" in the file specifications is a nurbs curve?

posted
Total Posts
7
Topic Starter
NoHaxNoSkill
I was looking at the specifications of the .osu file since I am making a program to import beatmaps into blender, but when looking at the sliders the slider types included "B = bézier, C = centripetal catmull-rom, L = linear, P = perfect circle" but no nurbs curve (which is the default) Im assuming this was just a mistake and the bezier curve is specifying a nurbs curve, just want to make sure though. (I want to make sure osu doesnt automatically generate a bezier curve based off the nurbs curve so I dont waste a bunch of time.)
Endaris
it's a bezier curve
Topic Starter
NoHaxNoSkill

Endaris wrote:

it's a bezier curve
ok, but where do I find the handles?
65,203,109,2,0,B|174:94|301:142|323:209|392:105|472:155,1,420
I created a dummy bezier and all I can see is singular points with no vectors, there arent any more files to look at so the handles have to be somewhere, and anyways, it would be a lot of dumb math to convert the nurbs curve in game to a bezier...
Zelzatter Zero
Topic Starter
NoHaxNoSkill

Zelzatter Zero wrote:



Source: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/Maya-Modeling/files/GUID-5A399D05-9271-4517-8370-0533DC468277-htm.html

Will this one satisfy your question?
A.) that is specifically for Maya
B.) it is referring to the fact that while they are different object types, you can do similar things with them, it just depends on what you are doing. Its like saying an edge is the same thing as a vertex just because you can bevel both of them.
C.) A bezier is a more advanced version of the nurbs curve that has vectors; another very important difference is that the curve for a bezier goes through all the points, where a nurbs curve is just basically a smoothed out line. This means when you place a point on a bezier curve the line will go through that exact point, with a nurbs curve its a lot more finicky (if you have ever tried to make a curve in osu that makes an ~180 degree turn you will know the slider will hug the inside instead of actually touching the points.)

osu! uses an order 4 nurbs curve, an order 3 curve would intersect at the middle of each line (between two points)
abraker
Zelzatter Zero
https://github.com/ppy/osu-framework/blob/f9d44b1414e30ad507894ef7eaaf5d1b0118be82/osu.Framework/Utils/PathApproximator.cs

Here is the code lazer that parses osu files and approximates slider path. You can figure it out on your own. (lazer build is open-source, and pretty much similar to how current build works)

This is, at this point, pretty much out of my knowledge since your problem seems to be more inclined towards Blender-specific.
Please sign in to reply.

New reply