This loads Valve SMD models via an initialization file with extension '.pqc'. PQC stands for 'Pseudo QC' where a 'QC' file stands for 'Quake C", which is
what Valve's Studio Model Compiler uses to compile an SMD model into a MDL model. Since the pqc's that will be used here function like qc files, but aren't
actually qc files, they're being referred to as 'pqc' files.
Currently the SMD features that are supported are:
1.Bones
2.Animations
3.Smoothing groups (sharp/smooth edges)
Unfortunately, bone weights are currently not factored-in: if a bone even has 1% influence over a vertex, it acts as though it has 100% influence. Luckily
though, there does not yet seem to be much of a demand for bone weights. They WILL get implemented soon, though. In actuality, the bone weight values
are currently being loaded and even sent to
DeformVertex(DeformVertex)
the}
methods
that move the vertices, but are as of now, being ignored.
How to use the SMD loader:
     A "PQC" text file should be created with commands on each line. These are the commands currently supported:
$body <SMD Geometry File Name>
: the main model to be used
$anim <animation keyname> <SMD Animation File name>
: defines an animation. Animations are not required - if none are specified then
the model will just be non-moving. Animations with the keyname "idle" will be automatically initialized as the starting animation for the model. The keyname
should be used when calling
ValveStudioModel.setAnimation(AnimationType)
}
To use an SMD model with a
Module
:
The first argument in each
Module
constructor should be a
Bone
- each bone in an SMD model can be accessed via
SmdModel.getBoneByName(String)
where the String used should be the name originally assigned to the bone in the 3D modeling software.