public void ChangeModel(SkinningData skd) { skinData = skd; boneTransforms = new Matrix[skd.BindPose.Count]; skinTransforms = new Matrix[skd.BindPose.Count]; worldTransforms = new Matrix[skd.BindPose.Count]; }
public void ChangeModel(SkinningData skd) { skinData = skd; boneTransforms = new Matrix[skd.BindPose.Count]; skinTransforms = new Matrix[skd.BindPose.Count]; worldTransforms = new Matrix[skd.BindPose.Count]; }
SkinningData skinningData; // Skinning Data #endregion Fields #region Constructors /// <summary> /// ModelGeo with animation /// </summary> /// <param name="Go"></param> /// <param name="modelResource"></param> /// <param name="AniClip"></param> public ModelGeoAnim(GameObject Go, string modelResource, string AniClip) : base(Go, modelResource) { // Look up our custom skinning information. skinningData = mModel.Tag as SkinningData; if (skinningData == null) throw new InvalidOperationException ("Model '" + modelResource + "' does not contain a SkinningData tag."); // Create an animation player, and start decoding an animation clip. animationPlayer = new AnimationPlayer(skinningData); AnimationClip clip = skinningData.AnimationClips[AniClip]; animationPlayer.StartClip(clip); //boneTransforms = new Matrix[skinningData.BindPose.Count]; //animationPlayer.GetBoneTransforms().CopyTo(boneTransforms, 0); //mMatBones = animationPlayer.GetBoneTransforms(); BoneTransformTemp = new Matrix[skinningData.BindPose.Count]; animationPlayer.Update(new TimeSpan(0, 0, 0), true, mMatWorld); InitBoundingSpheres(); UpdateBoundingBox(); }
// END JASON's CODE /// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(Game g, String modelName) { game = g; // Load the model. model = game.Content.Load<Model>(modelName); // Look up our custom skinning information. SkinningData skinningData = model.Tag as SkinningData; if (skinningData == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); skinningDataValue = skinningData; kinectSkeleton = new KinectSkeleton(); boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; // creates the initial pose for the model // (the important part here is the translation data for each bone) skinningData.BindPose.CopyTo(boneTransforms, 0); // perform the first update to initialize Transform arrays Update(null, Matrix.Identity); }
public ClipPlayer(SkinningData skd, float fps) { skinData = skd; boneTransforms = new Matrix[skd.BindPose.Count]; skinTransforms = new Matrix[skd.BindPose.Count]; worldTransforms = new Matrix[skd.BindPose.Count]; this.fps = fps; }
public ClipPlayer(SkinningData skd, float fps) { skinData = skd; boneTransforms = new Matrix[skd.BindPose.Count]; skinTransforms = new Matrix[skd.BindPose.Count]; worldTransforms = new Matrix[skd.BindPose.Count]; this.fps = fps; }
public AnimationPackage(SkinningData skin, float keyframeCount) { keyframes = keyframeCount; fullclip = skin.AnimationClips["Take 001"]; bpCount = skin.BindPose.Count; ms = (int)fullclip.Duration.TotalMilliseconds; c = ms / keyframeCount; animations = new Dictionary <int, DurationClip>(); }
private void LoadModels() { //model3D = Game.Content.Load<Model>( @"Models\playerAlpha3D" ); model3D = Game.Content.Load<Model>( @"Models\enemy1" ); mSkinData = model3D.Tag as SkinningData; if ( mSkinData == null ) throw new InvalidOperationException( "This model does not contain a SkinningData tag." ); }
public SkinnedAnimationPlayer(SkinningData skinningData) { m_SkinningData = skinningData; BoneTransforms = new Matrix[skinningData.BindPose.Count]; WorldTransforms = new Matrix[skinningData.BindPose.Count]; SkinTransforms = new Matrix[skinningData.BindPose.Count]; Done = true; }
/// <summary> /// Copy constructor. Creates a deep copy of another GModel. /// </summary> /// <param name="gm">GModel to clone.</param> public GModel(GModel gm) { model = gm.model; skinningData = gm.skinningData; Texture = gm.Texture; MaterialColors = gm.MaterialColors != null ? (Vector3[])gm.MaterialColors.Clone() : null; Emissive = gm.Emissive; EmissiveTexture = gm.EmissiveTexture; IsWaterfall = gm.IsWaterfall; }
public Vector3 Translation = new Vector3(0, 0, 0); //current position on the screen #endregion Fields #region Constructors public GraphicObjectBones(Model currentModelInput) { currentModel = currentModelInput; // Look up our custom skinning information. skinningData = currentModel.Tag as SkinningData; if (skinningData == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); // Create an animation player, and start decoding an animation clip. animationPlayer = new AnimationPlayer(skinningData); }
public void SkinningSetting(string startPose) { mSkinningData = Model.Tag as SkinningData; if (mSkinningData == null) { throw new InvalidOperationException("This model does not contain a SkinningData tag."); } AnimationPlayer = new AnimationPlayer(mSkinningData); AnimationSpeed = 0.04f; AnimationClip clip = mSkinningData.AnimationClips[startPose]; AnimationPlayer.StartClip(clip); mTemppose = startPose; }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) throw new ArgumentNullException("skinningData"); skinningDataValue = skinningData; boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; }
/// <summary> /// Creates a new AnimatedModel instance based on the given model, which: /// a) already has to be loaded /// </summary> /// <param name="model"></param> public AnimatedModel(Model model) { this.model = model; skinningData = model.Tag as SkinningData; if (skinningData == null) { throw new InvalidOperationException("Model contains no animation data! Did you use the SkinnedModelProcessor?"); } player = new AnimationPlayer(skinningData); }
/// <summary> /// 新しいアニメーション・プレイヤーの生成 /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) throw new ArgumentNullException("skinningData"); skinningDataValue = skinningData; boneTransforms = new QuatTransform[skinningData.BindPose.Count]; worldTransforms = new QuatTransform[skinningData.BindPose.Count]; skinRotations = new Quaternion[skinningData.BindPose.Count]; skinTranslations = new Vector4[skinningData.BindPose.Count]; }
public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) { throw new ArgumentNullException("skinningData"); } mSkinningDataValue = skinningData; mBoneTransforms = new Matrix[skinningData.BindPose.Count]; mWorldTransforms = new Matrix[skinningData.BindPose.Count]; mSkinTransforms = new Matrix[skinningData.BindPose.Count]; }
public ClipPlayer(SkinningData skd, float fps) { currentClip = skd.AnimationClips["Take 001"]; keyframeList = currentClip.Keyframes; skinData = skd; boneTransforms = new Matrix[skd.BindPose.Count]; skinTransforms = new Matrix[skd.BindPose.Count]; worldTransforms = new Matrix[skd.BindPose.Count]; startTime = TimeSpan.FromMilliseconds(0); currentTime = startTime; endTime = currentTime; this.fps = fps; }
public ClipPlayer(SkinningData skd, float fps) { currentClip = skd.AnimationClips["Take 001"]; keyframeList = currentClip.Keyframes; skinData = skd; boneTransforms = new Matrix[skd.BindPose.Count]; skinTransforms = new Matrix[skd.BindPose.Count]; worldTransforms = new Matrix[skd.BindPose.Count]; startTime = TimeSpan.FromMilliseconds(0); currentTime = startTime; endTime = currentTime; this.fps = fps; }
public SkinnedModel(GraphicFactory factory, String Name) : base(factory, Name) { // Look up our custom skinning information. SkinningData = this.model.Tag as SkinningData; if (SkinningData == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); // Create an animation player, and start decoding an animation clip. AnimationPlayer = new AnimationPlayer(SkinningData); }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) { throw new ArgumentNullException(nameof(skinningData)); } this.skinningDataValue = skinningData; this.boneTransforms = new Matrix[skinningData.BindPose.Count]; this.worldTransforms = new Matrix[skinningData.BindPose.Count]; this.skinTransforms = new Matrix[skinningData.BindPose.Count]; }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData, Model theModel) { currentModel = theModel; if (skinningData == null) { throw new ArgumentNullException("skinningData"); } skinningDataValue = skinningData; boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; }
public static void SaveSkinningData(SkinningData skinningData, string path) { using (var fs = new FileStream(path, FileMode.Create)) { var formatter = new BinaryFormatter(); formatter.Serialize(fs, skinningData); } //JsConfig<Matrix>.SerializeFn = r => //{ // var sw = new StringWriter(CultureInfo.InvariantCulture); // sw.Write("["); // sw.Write(r.M11); // sw.Write(","); // sw.Write(r.M12); // sw.Write(","); // sw.Write(r.M13); // sw.Write(","); // sw.Write(r.M14); // sw.Write(","); // sw.Write(r.M21); // sw.Write(","); // sw.Write(r.M22); // sw.Write(","); // sw.Write(r.M23); // sw.Write(","); // sw.Write(r.M24); // sw.Write(","); // sw.Write(r.M31); // sw.Write(","); // sw.Write(r.M32); // sw.Write(","); // sw.Write(r.M33); // sw.Write(","); // sw.Write(r.M34); // sw.Write(","); // sw.Write(r.M41); // sw.Write(","); // sw.Write(r.M42); // sw.Write(","); // sw.Write(r.M43); // sw.Write(","); // sw.Write(r.M44); // sw.Write("]"); // return sw.ToString(); //}; //var serializer = new JsonSerializer<SkinningData>(); //var json = serializer.SerializeToString(skinningData); //File.WriteAllText(path, json); }
public void SetAnimation(Model model, string takeName) { // Look up our custom skinning information. skinningData = model.Tag as SkinningData; if (skinningData == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); // Create an animation player, and start decoding an animation clip. animationPlayer = new AnimationPlayer(skinningData); //set initial clip SetClip(takeName); }
public bool Init() { if (Initialized) { return true; } if (Model == null) { return false; } SkinningData = Model.Tag as SkinningData; if (SkinningData == null) throw new InvalidOperationException ("このモデルのTagにはSkinningDataが設定されていません。\n" + "プロセッサにSkinnedModelProcessorを指定してください"); if (SkinningData.AnimationClips.Count == 0) throw new InvalidOperationException ("このモデルにはAnimationClipが存在しません。"); AnimationPlayer = new AnimationPlayer(SkinningData); MotionNames.AddRange(SkinningData.AnimationClips.Keys); // 適当に最初のモーションを再生 foreach (var clip in SkinningData.AnimationClips) { AnimationPlayer.StartClip(clip.Value); CurrentMotionName = clip.Key; break; } BoneTransforms = new QuatTransform[SkinningData.BindPose.Count]; int width = AnimationPlayer.GetSkinRotations().Length; int height = 1; RotationTexture = new FlipTexture2D(GraphicsDevice, width, height, false, SurfaceFormat.Vector4); TranslationTexture = new FlipTexture2D(GraphicsDevice, width, height, false, SurfaceFormat.Vector4); Initialized = true; return true; }
public AnimatedModelEntity(Model model) { this.model = model; this.size = Vector3.One; this.speed = 0.1f; skinning_data = model.Tag as SkinningData; if (skinning_data == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); animation_player = new AnimationPlayer(skinning_data); StartDefaultClip(); }
// �R���X�g���N�^ public AnimationPlayer(SkinningData skinningData) { // �X�L�j���O�f�[�^����Ȃ� if (skinningData == null) { throw new ArgumentNullException("skinningData"); } // �X�L�j���O�f�[�^��i�[ skinningDataValue = skinningData; // �e�s�������Ă��� boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningDataValue, RasterizerState rasterizerState) { this.skinningDataValue = skinningDataValue; this.originalRasterizerState = rasterizerState; //this.model = model; //if (model == null) // throw new ArgumentNullException("model"); //skinningDataValue = model.Tag as SkinningData; boneTransforms = new Matrix[skinningDataValue.BindPose.Count]; worldTransforms = new Matrix[skinningDataValue.BindPose.Count]; skinTransforms = new Matrix[skinningDataValue.BindPose.Count]; this.jointMap = LoadJointMapDude(); }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningDataValue, RasterizerState rasterizerState) { this.skinningDataValue = skinningDataValue; this.originalRasterizerState = rasterizerState; //this.model = model; //if (model == null) // throw new ArgumentNullException("model"); //skinningDataValue = model.Tag as SkinningData; boneTransforms = new Matrix[skinningDataValue.BindPose.Count]; worldTransforms = new Matrix[skinningDataValue.BindPose.Count]; skinTransforms = new Matrix[skinningDataValue.BindPose.Count]; this.jointMap = LoadJointMapDude(); }
public AnimationPlayer(Model model, RasterizerState rasterizerState, Dictionary <JointType, int> jointMap) { this.originalRasterizerState = rasterizerState; this.model = model; if (model == null) { throw new ArgumentNullException("model"); } skinningDataValue = model.Tag as SkinningData; boneTransforms = new Matrix[skinningDataValue.BindPose.Count]; worldTransforms = new Matrix[skinningDataValue.BindPose.Count]; skinTransforms = new Matrix[skinningDataValue.BindPose.Count]; this.jointMap = jointMap; }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData) { // Construct the event dictionaries for each clip /* foreach (string clipName in skinningData.AnimationClips.Keys) { registeredEvents[clipName] = new Dictionary<string, EventCallBack>(); } if (skinningData == null) throw new ArgumentNullException("skinningData");*/ skinningDataValue = skinningData; boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; }
// Load Content public static void LoadContent(ContentManager content) { model = content.Load<Model>("Model\\dude"); skinData = model.Tag as SkinningData; if(skinData == null) { throw new InvalidOperationException("This model does not contain a SkinningData tag"); } player = new AnimationPlayer(skinData); clip = skinData.AnimationClips["Take 001"]; player.StartClip(clip); random = new Random(); }
public SkinnedModel(Model model, List<Keys> lstkeys, Vector3 position, Vector3 rotation, Vector3 scale) { this.model = model; this.lstKeys = lstkeys; this.position = position; this.rotation = rotation; this.scale = scale; this.skinningData = model.Tag as SkinningData; if (skinningData == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); animationPlayer = new AnimationPlayer(skinningData); bones = animationPlayer.GetSkinTransforms(); }
/// <summary> /// Duration Based Animation constructor /// </summary> /// <param name="skin"></param> /// <param name="clip"></param> /// <param name="Dictionary of valid bones - null if all bones are valid"></param> public DurationBasedAnimator(SkinningData skin, AnimationClip clip, Dictionary <int, int> validBones) { // store skin data skindata = skin; // store the long clip fullclip = clip; fullclipDuration = fullclip.Duration; // set up empty matrices boneTransforms = new Matrix[skin.BindPose.Count]; worldTransforms = new Matrix[skin.BindPose.Count]; skinTransforms = new Matrix[skin.BindPose.Count]; durations = new Dictionary <int, DurationClip>(); this.validBones = validBones; }
/// <summary> /// Duration Based Animation constructor /// </summary> /// <param name="skin"></param> /// <param name="clip"></param> /// <param name="Dictionary of valid bones - null if all bones are valid"></param> public DurationBasedAnimator(SkinningData skin, AnimationClip clip, Dictionary<int, int> validBones) { // store skin data skindata = skin; // store the long clip fullclip = clip; fullclipDuration = fullclip.Duration; // set up empty matrices boneTransforms = new Matrix[skin.BindPose.Count]; worldTransforms = new Matrix[skin.BindPose.Count]; skinTransforms = new Matrix[skin.BindPose.Count]; durations = new Dictionary<int, DurationClip>(); this.validBones = validBones; }
public Fish() { this.model = Resources.fish_model; this.size = Vector3.One; this.speed = 2; this.max_speed = (float)rand.NextDouble()*2 + 0.5f; this.time = new TimeSpan(); skinning_data = model.Tag as SkinningData; if (skinning_data == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); animation_player = new AnimationPlayer(skinning_data); StartDefaultClip(); Update(0); }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) throw new ArgumentNullException("skinningData"); skinningDataValue = skinningData; bone_matrices = new Matrix[skinningData.BindPose.Count]; world_matrices = new Matrix[skinningData.BindPose.Count]; skin_matrices = new Matrix[skinningData.BindPose.Count]; keyframe_matrices = new Matrix[skinningData.BindPose.Count]; bone_transforms = new Transform[skinningData.BindPose.Count]; skinningDataValue.BindPose.CopyTo(bone_matrices, 0); for (int i = 0; i < bone_matrices.Length; i++) bone_transforms[i] = new Transform(bone_matrices[i]); }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) { throw new ArgumentNullException("skinningData"); } skinningDataValue = skinningData; boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; // Construct the event dictionaries for each clip foreach (string clipName in skinningData.AnimationClips.Keys) { registeredEvents[clipName] = new Dictionary <string, EventCallback>(); } }
public Octopus() { this.model = Resources.octopus_model; this.size = Vector3.One; this.speed = 1; this.rotation.Z = MathHelper.PiOver2; this.max_speed = 0.5f; this.time = new TimeSpan(); skinning_data = model.Tag as SkinningData; if (skinning_data == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); animation_player = new AnimationPlayer(skinning_data); StartDefaultClip(); Update(0); }
/// <summary> /// コンストラクタ /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) { throw new ArgumentNullException("skinningData"); } skinningDataValue = skinningData; boneTransforms = new Matrix[skinningData.BindPose.Count]; worldTransforms = new Matrix[skinningData.BindPose.Count]; skinTransforms = new Matrix[skinningData.BindPose.Count]; previousBoneTransforms = new Matrix[skinningData.BindPose.Count]; // デフォルトはループ再生を許可 loopEnable = true; interpolationWeight = 0.0f; interpolationWeightCount = 0.0f; }
/// <summary> /// Constructs a new animation player. /// </summary> public AnimationPlayer(SkinningData skinningData) { if (skinningData == null) { throw new ArgumentNullException("skinningData"); } skinningDataValue = skinningData; bone_matrices = new Matrix[skinningData.BindPose.Count]; world_matrices = new Matrix[skinningData.BindPose.Count]; skin_matrices = new Matrix[skinningData.BindPose.Count]; keyframe_matrices = new Matrix[skinningData.BindPose.Count]; bone_transforms = new Transform[skinningData.BindPose.Count]; skinningDataValue.BindPose.CopyTo(bone_matrices, 0); for (int i = 0; i < bone_matrices.Length; i++) { bone_transforms[i] = new Transform(bone_matrices[i]); } }
/// <summary> /// /// </summary> /// <param name="skinningData"></param> public void ResetTransform(SkinningData skinningData) { // Bone matrices for the "dude" model this.boneTransforms = new Matrix[skinningData.BindPose.Count]; this.worldTransforms = new Matrix[skinningData.BindPose.Count]; this.skinTransforms = new Matrix[skinningData.BindPose.Count]; // Initialize bone transforms to the bind pose. this.skinningDataValue = skinningData; RefreshBindPose(); }
protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); c = new Camera(this); Components.Add(c); // Load model m = Content.Load<Model>("pet_hippo"); // Load textures into an array textures[0] = Content.Load<Texture2D>("hippo_blueeyes_default"); textures[1] = Content.Load<Texture2D>("hippo_blueeyes_pink"); textures[2] = Content.Load<Texture2D>("hippo_blueeyes_blue"); textures[3] = Content.Load<Texture2D>("hippo_blueeyes_camo"); skinningData = m.Tag as SkinningData; if (skinningData == null) throw new InvalidOperationException ("This model does not contain a SkinningData tag."); // Create an animation player, and start decoding an animation clip. animationPlayer = new AnimationPlayer(skinningData); // Set clip to an animation track as written in the .fbx file clip = skinningData.AnimationClips["Dance"]; // initialize animation animationPlayer.StartClip(clip); animating = true; }
public Animation(string name, SkinningData data) { Name = name; SkinningData = data; AnimationPlayer = CreateAnimationPlayer(); }