/// <summary> /// Inits model data of the actor. /// </summary> public void InitModelFile() { if (InitModel == null) { return; } if (!string.IsNullOrEmpty(InitModel.ExternalTextureFile)) { string path = $"{GlobalSettings.GamePath}\\ObjectData\\{InitModel.ExternalTextureFile}.szs"; if (!File.Exists(path)) { Console.WriteLine($"Failed to find external texture file at path {path}!"); return; } var fileArchive = STFileLoader.OpenFileFormat(path) as IArchiveFile; foreach (var file in fileArchive.Files) { TextureArchive = file.OpenFile() as IRenderableFile; } } }
private void AttachJoint(PartsModel partInfo, IRenderableFile actorRender) { var modelPart = actorRender.Renderer.Models[0]; foreach (ModelAsset model in ModelFile.Renderer.Models) { var bone = model.ModelData.Skeleton.SearchBone(partInfo.JointName); if (bone != null) { //Setup local transform var localPosition = new OpenTK.Vector3( partInfo.LocalTranslate.X, partInfo.LocalTranslate.Y, partInfo.LocalTranslate.Z); var localRotation = STMath.FromEulerAngles(new OpenTK.Vector3( partInfo.LocalRotate.X, partInfo.LocalRotate.Y, partInfo.LocalRotate.Z) * STMath.Deg2Rad); var localScale = new OpenTK.Vector3( partInfo.LocalScale.X, partInfo.LocalScale.Y, partInfo.LocalScale.Z); modelPart.ModelData.Skeleton.LocalTransform = OpenTK.Matrix4.CreateScale(localScale) * OpenTK.Matrix4.CreateFromQuaternion(localRotation) * OpenTK.Matrix4.CreateTranslation(localPosition); //Attach bone children bone.AttachSkeleton(modelPart.ModelData.Skeleton); model.ModelData.Skeleton.Update(); break; } } }
public void AddFile(IRenderableFile bfres) { Pipeline.AddFile(bfres); }
public void AddFile(IRenderableFile renderFile) { Files.Add(renderFile); _context.Scene.AddRenderObject(renderFile.Renderer); }
private void Update(IRenderableFile file) { selectedFile = $"{file.Renderer.Name}_{file.Renderer.ID}"; }