Ad: Looking for Web Designer? Freelance Website Designer offers services as: web design, redesign, oscommerce design, Content Management Design, and many other web development services.
This document describes the Character Studio BVH motion capture file format. The BVH BioVision format is an ASCII file that is used to import rotational joint data from various motion capture systems into Character Studio to animate bipedal characters.
Biped provides direct input of .bvh files from disk, including comprehensive keyframe reduction and footstep extraction to provide a fast and accurate means of import for large volumes of rotational data stored in the BVH format.
Biped uses rotational data stored in the BVH format to pose a Biped character on a frame-by-frame basis and to move it forward in time. During import, XYZ Euler joint rotations stored in the BVH file are used to derive Quaternion bone rotation data for the biped at each frame.
Once imported, BVH-based animations can be saved out as native Biped .bip files, providing access to a comprehensive set of animation, motion mapping, and structural modification features that are built directly into Biped.
Biped supports a specific BVH hierarchy and naming scheme, as generated by BioVision Motion Capture Studios. This specific hierarchy allows for automatic mapping of BVH data to the Biped character.
Parsing order of sibling nodes in the hierarchy is arbitrary. That is, the order of sibling nodes can be altered as long as their parent-child relationships do not change.
The supported hierarchy and required node/bone names are listed below. Note that an alternative naming scheme for some nodes is shown in (). The {} notation is used to clarify the parent-child hierarchy between nodes.
Hips {
LeftHip (LeftUpLeg) {
LeftKnee (LeftLowLeg) {
LeftAnkle (LeftFoot) {
End Site {}
} } }
RightHip (RightUpLeg) {
RightKnee (RightLowLeg) {
RightAnkle (RightFoot) {
End Site {}
} } }
Chest {
LeftCollar {
LeftShoulder (LeftUpArm) {
LeftElbow (LeftLowArm) {
LeftWrist (LeftHand) {
End Site {}
} } } }
RightCollar {
RightShoulder (RightUpArm) {
RightElbow (RightLowArm) {
RightWrist (RightHand) {
End Site {}
} } } }
Neck {
Head {
End Site {}
} } } }
The Character Studio Marker Name file is generally used to match custom marker names in the CSM file with Biped's preset list of known, supported marker names. When importing .bvh motion capture files, the .mnm file can also be used to specify an alternative naming scheme for Biped's fixed hierarchy supported joints as listed above.
The general syntax of the MNM file consists of two columns of names.
The left column corresponds to Biped's known BVH joint names.
The column on the right corresponds to the custom joint names stored in a specific BVH file.
There should be an entry for every custom BVH joint name in the BVH file. For completeness, all BVH joints can be listed and correlated to internal Biped names, even if the names are identical.
The listing below is an "identity" listing of fixed versus custom joint name; the columns on the left and right are identical.
Optional (missing) marker name entries not in the BVH file can be omitted from the MNM marker file.
This list can be easily copied and modified with the right column for each unique motion capture session sample.
|
Hips |
|
|
LeftHip |
femur |
|
LeftKnee |
tibia |
|
LeftAnkle |
foot |
|
RightHip |
rfemur |
|
RightKnee |
rtibia |
|
RightAnkle |
rfoot |
|
Chest |
upperback |
|
chest2 |
thorax |
|
LeftCollar |
shoulderjoint |
|
LeftShoulder |
humerus |
|
LeftElbow |
radius |
|
LeftWrist |
wrist |
|
RightCollar |
rshoulderjoint |
|
RightShoulder |
rhumerus |
|
RightElbow |
rradius |
|
RightWrist |
rwrist |
|
head |
head |
|
neck |
neck |
In creating a BVH file that can be read into Character Studio Biped and displayed correctly, it is critical that the effective neutral pose of the BVH match Biped's neutral pose. That is, the hierarchy, bone lengths, and initial rotations specified in the HIERARCCHY section of the BVH file must create a figure that matches the default pose of a newly-created Biped figure. The initial pose for Biped places the biped figure upright along the +Z axis, facing "forward" along the -Y axis, left hand on the +X axis. Hands are oriented with palms against the outside thighs, with thumb on the forward side; fingers and thumb of each hand outstretched (open) facing "down" along the -Z axis. Legs are together and straight at the knees.
A correctly oriented BVH file can be verified by setting all rotational values in the first frame of the MOTION section to zeroes. When all joint rotation values are set to zero for the first frame of the BVH file, the results displayed at frame zero in Biped, after import, should match the default position of the Biped exactly.
The BVH file is divided into two major sections: HIERARCHY and MOTION.
The HIERARCHY section describes the joint-to-joint connections and offsets for the sampled motion data.
The MOTION section describes the movement of these individual joints on a per-sample basis.
CHANNELS information listed within a specific node of the HIERARCHY section signals the existence of corresponding XYZ data streams in the MOTION section which follows. CHANNELS information represents the bulk of the BVH file data.
In the MOTION section, each row contains data values for all CHANNELS which were specified in the HIERARCHY. Each successive row contains a single time sample for all CHANNELS. The listing order of CHANNELS values in each row in the MOTION section is implicitly assumed to match their listed order from the HIERARCHY section (top down).
All string names must appear exactly as shown below, with the exception of nodes names (for example, LeftHip, LeftKnee) for which alternative naming schemes have been listed above.
CHANNELS data that corresponds to unrecognized JOINT names will be ignored.
The [] notation indicates values or strings that should be used in the actual file.
---------------------------- File Starts Here ---------------------
HIERARCHY
ROOT Hips
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation
JOINT LeftHip
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftKnee
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftAnkle
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET [x_float] [y_float] [z_float]
}
}
}
}
JOINT RightHip
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightKnee
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightAnkle
{
OFFSET [x_float] [y_float] [z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET [x_float] [y_float] [z_float]
}
}
}
}
JOINT Chest
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftCollar
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftShoulder
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftElbow
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftWrist
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET [x_float y_float z_float]
}
}
}
}
}
JOINT RightCollar
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightShoulder
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightElbow
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightWrist
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET [x_float y_float z_float]
}
}
}
}
}
JOINT Neck
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT Head
{
OFFSET [x_float y_float z_float]
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET [x_float y_float z_float]
}
}
}
}
}
MOTION
Frames: [number_of_time_samples_to_follow]
Frame Time: [0.033333]
[samp1_chan1_float] [samp1_chan2_float] ... [samp1_chanN_float]
[samp2_chan1_float] [samp2_chan2_float] ... [samp2_chanN_float]
...
[sampN_chan1_float] [sampN_chan2_float] ... [sampN_chanN_float]
------------ end of file ----------------------------------
HIERARCHY
ROOT Hips
{
OFFSET 20 0.00 0.00
CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation
JOINT LeftHip
{
OFFSET 3.430000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftKnee
{
OFFSET 0.000000 -18.469999 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftAnkle
{
OFFSET 0.000000 -17.950001 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -3.119996 0.000000
}
}
}
}
JOINT RightHip
{
OFFSET -3.430000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightKnee
{
OFFSET 0.000000 -18.809999 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightAnkle
{
OFFSET 0.000000 -17.570000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -3.250000 0.000000
}
}
}
}
JOINT Chest
{
OFFSET 0.000000 4.570000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightCollar
{
OFFSET -1.060000 15.330000 1.760000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightShoulder
{
OFFSET -6.060000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightElbow
{
OFFSET 0.000000 -11.900000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightWrist
{
OFFSET 0.000000 -9.520000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -7.140012 0.000000
}
}
}
}
}
JOINT LeftCollar
{
OFFSET 1.060000 15.330000 1.760000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftShoulder
{
OFFSET 5.810000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftElbow
{
OFFSET 0.000000 -12.080000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftWrist
{
OFFSET 0.000000 -9.820000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -7.369996 0.000000
}
}
}
}
}
JOINT Neck
{
OFFSET 0.000000 17.620001 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT Head
{
OFFSET 0.000000 5.190000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 4.140008 0.000000
}
}
}
}
}
MOTION
Frames: 222
Frame Time: 0.033333
0.00 39.88 -0.01 -1.79 -18.43 -1.74 5.02 -0.34 0.03 6.61 42.19 7.67 -3.87 -7.61 1.40 3.65 15.11 -0.95 2.33 11.06 -15.20 -7.25 -10.08 1.61 4.89 18.33 11.12 -17.68 0.00 0.60 40.98 9.99 22.36 0.00 -30.82 11.92 0.00 0.00 0.00 10.97 0.00 12.96 -37.45 -2.92 9.36 -180.00 -80.59 157.44 0.00 0.00 0.00 -35.59 52.18 0.00 11.29 -39.90 61.74
0.11 39.87 -0.01 -2.31 -17.29 -3.05 3.19 -4.22 0.24 7.38 40.49 -1.01 -3.87 -7.94 1.38 3.46 13.75 -0.82 2.47 11.44 -14.02 -7.25 -10.10 1.61 5.82 17.00 12.55 -17.36 0.00 2.00 42.28 10.77 34.97 -0.85 -22.68 14.90 0.00 0.00 0.00 10.01 0.00 11.77 -40.78 -3.61 6.09 -178.56 -87.20 158.39 0.00 0.00 0.00 -36.14 51.71 0.00 10.04 -38.83 61.13
0.22 39.88 0.02 -2.83 -16.47 -4.56 1.98 -6.94 0.24 6.27 37.48 -5.85 -3.87 -7.23 1.43 3.26 12.76 -0.72 2.52 11.87 -12.69 -7.25 -10.11 1.60 6.78 15.96 14.27 -16.96 0.00 3.28 44.28 12.02 51.41 -0.44 -17.87 20.64 0.00 0.00 0.00 9.19 0.00 10.84 -44.55 -3.26 2.86 -0.03 -85.90 -23.56 0.00 0.00 0.00 -36.74 50.88 0.00 9.12 -37.86 60.76
0.32 39.92 0.19 -3.51 -17.17 -7.03 1.79 -6.29 0.20 2.67 31.81 -3.40 -3.86 -5.65 1.54 2.98 13.46 -0.69 2.23 12.43 -10.34 -7.26 -10.29 1.58 7.48 16.60 16.65 -16.32 0.00 4.70 47.12 13.31 65.41 0.63 -16.14 26.83 0.00 0.00 0.00 8.37 0.00 9.94 -48.32 -2.20 -0.50 0.41 -78.48 -23.57 0.00 0.00 0.00 -37.20 49.91 0.00 8.35 -37.07 60.23
1) SUPPORT FOR 3-LINKED SPINE
Biped supports both 2- and 3-linked spines in BVH format. The third spine link is called "Chest2".
Below is a simple 10-frame BVH sample file with the correct BVH syntax for the additional chest link: "Chest2". It is the same as the Chest syntax; it is simply added as an additional child link bone going down vertically in Y before reaching the LeftCollar and RightCollar bones.
2) SUPPORT FOR NON-SYMMETRICAL LIMB BONE LENGTHS
Biped supports non-symmetrical arm and leg bone sizes. The example below is non-symmetrical.
3) GENERAL NOTES ABOUT GETTING PRECISE BVH CONVERSION OF LIMBS
BIPED has built in anthropomorphic constraints that require that:
Elbows and Knees are one degree-of-freedom hinge joints. The axis of rotation of the hinge should ideally always be perpendicular to the arm's shoulder-elbow-wrist triangle and the leg's hip-knee-ankle triangle. Therefore, its ideal if the BVH Euler angles for the leg and arm bones match this orientation constraint with no added twists or deviations.
If the hinge joint constraint is violated, BIPED's converter must decide whether to satisfy the orientation data or satisfy the elbow/knee positioning based solely on the point locations.
In the Mocap Conversion Parameters Dialogue Box:
If the "Angle" radio button is specified, the limb's triangle attempts to match the hinge to the Euler matrix axes. This may deviate from the position posture.
If the "Point" radio button is specified, the limb's triangle matches the positions of the actual points. This may deviate from the specified Euler angle matrix.
However, in both cases, the limb always moves to hit the IK position of the wrist or ankle, so if Euler angles are given that are not aligned with the natural hinge joint, the axis is projected to nearest axis that satisfies the wrist/ankle IK constraint. That is, one axis must be normal to the line joining the arm's shoulder-wrist or the leg's hip-ankle.
The following can be detached and written as "any_filename.bvh". This file is also included as chest2.bvh.
HIERARCHY
ROOT Hips
{
OFFSET 0.00 0.00 0.00
CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation
JOINT LeftHip
{
OFFSET 3.430000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftKnee
{
OFFSET 0.000000 -18.469999 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftAnkle
{
OFFSET 0.000000 -17.950001 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -3.119997 0.000000
}
}
}
}
JOINT RightHip
{
OFFSET -3.430000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightKnee
{
OFFSET 0.000000 -18.469999 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightAnkle
{
OFFSET 0.000000 -17.950001 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -3.119997 0.000000
}
}
}
}
JOINT Chest
{
OFFSET 0.000000 4.570000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT Chest2
{
OFFSET 0.000000 6.570000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftCollar
{
OFFSET 1.060000 15.330000 1.760000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftShoulder
{
OFFSET 5.810000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftElbow
{
OFFSET 0.000000 -12.080000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT LeftWrist
{
OFFSET 0.000000 -9.820000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -7.369996 0.000000
}
}
}
}
}
JOINT RightCollar
{
OFFSET -1.060000 15.330000 1.760000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightShoulder
{
OFFSET -6.060000 0.000000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightElbow
{
OFFSET 0.000000 -11.080000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT RightWrist
{
OFFSET 0.000000 -9.820000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 -7.140010 0.000000
}
}
}
}
}
}
JOINT Neck
{
OFFSET 0.000000 10.620001 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
JOINT Head
{
OFFSET 0.000000 5.190000 0.000000
CHANNELS 3 Zrotation Xrotation Yrotation
End Site
{
OFFSET 0.000000 4.140007 0.000000
}
}
}
}
}
MOTION
Frames: 10
Frame Time: 0.033333
0.0 1.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 2.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 10.0 0.0
0.0 0.0 0.0 -10.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -2.0 0.0 0.0 -2.0 0.0
1.5 0.0 0.0 10.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -10.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.0 0.0
0.0 3.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 20.0 0.0
0.0 0.0 0.0 -20.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -4.0 0.0 0.0 -4.0 0.0
3.0 0.0 0.0 20.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -20.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 4.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 30.0 0.0
0.0 0.0 0.0 -30.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -6.0 0.0 0.0 -6.0 0.0
4.5 0.0 0.0 30.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -30.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0
0.0 5.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 40.0 0.0
0.0 0.0 0.0 -40.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -8.0 0.0 0.0 -8.0 0.0
6.0 0.0 0.0 40.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -40.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0
0.0 6.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 50.0 0.0
0.0 0.0 0.0 -50.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -10.0 0.0 0.0 -10.0 0.0
7.5 0.0 0.0 50.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -50.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 8.0
0.0 7.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 60.0 0.0
0.0 0.0 0.0 -60.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -12.0 0.0 0.0 -12.0 0.0
9.0 0.0 0.0 60.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -60.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.0
0.0 8.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 70.0 0.0
0.0 0.0 0.0 -70.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -14.0 0.0 0.0 -14.0 0.0
10.5 0.0 0.0 70.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -70.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0
0.0 9.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 80.0 0.0
0.0 0.0 0.0 -80.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -16.0 0.0 0.0 -16.0 0.0
12.0 0.0 0.0 80.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -80.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0
0.0 10.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 90.0 0.0
0.0 0.0 0.0 -90.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -18.0 0.0 0.0 -18.0 0.0
13.5 0.0 0.0 90.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 -90.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 16.0
Comments < p>3Ds Max Tutorials
Partner with: Ecommerce Web Designer | Total Staton | Gift Baskets & Gourmet Gift Baskets | RTK 82 | Automatic Level | Echosounder China Wholesale Electronics cheap electronic products