public void Read(AssetReader reader) { AvatarSkeleton.Read(reader); AvatarSkeletonPose.Read(reader); if (HasDefaultPose(reader.Version)) { DefaultPose.Read(reader); SkeletonNameIDArray = reader.ReadUInt32Array(); } Human.Read(reader); HumanSkeletonIndexArray = reader.ReadInt32Array(); if (HasHumanSkeletonReverseIndexArray(reader.Version)) { HumanSkeletonReverseIndexArray = reader.ReadInt32Array(); } else { HumanSkeletonReverseIndexArray = new int[AvatarSkeleton.Instance.Node.Length]; for (int i = 0; i < AvatarSkeleton.Instance.Node.Length; i++) { HumanSkeletonReverseIndexArray[i] = HumanSkeletonIndexArray.IndexOf(i); } } RootMotionBoneIndex = reader.ReadInt32(); RootMotionBoneX.Read(reader); if (HasRootMotionSkeleton(reader.Version)) { RootMotionSkeleton.Read(reader); RootMotionSkeletonPose.Read(reader); RootMotionSkeletonIndexArray = reader.ReadInt32Array(); } }
public void Read(AssetReader reader) { AvatarSkeleton.Read(reader); AvatarSkeletonPose.Read(reader); if (IsReadDefaultPose(reader.Version)) { DefaultPose.Read(reader); m_skeletonNameIDArray = reader.ReadUInt32Array(); } Human.Read(reader); m_humanSkeletonIndexArray = reader.ReadInt32Array(); if (IsReadHumanSkeletonReverseIndexArray(reader.Version)) { m_humanSkeletonReverseIndexArray = reader.ReadInt32Array(); } else { m_humanSkeletonReverseIndexArray = new int[AvatarSkeleton.Instance.Node.Count]; for (int i = 0; i < AvatarSkeleton.Instance.Node.Count; i++) { m_humanSkeletonReverseIndexArray[i] = m_humanSkeletonIndexArray.IndexOf(i); } } RootMotionBoneIndex = reader.ReadInt32(); RootMotionBoneX.Read(reader); if (IsReadRootMotionSkeleton(reader.Version)) { RootMotionSkeleton.Read(reader); RootMotionSkeletonPose.Read(reader); m_rootMotionSkeletonIndexArray = reader.ReadInt32Array(); } }
public UnityMeshPoser(RobotSystem robot, Material material) { _default = robot.DefaultPose; var allMeshes = _default.Meshes.SelectMany(m => m).ToList(); _joints = new Transform[allMeshes.Count]; var parent = GameObject.Find("Robot").transform; for (int i = 0; i < allMeshes.Count; i++) { string name = $"Joint {i}"; var go = new GameObject(name, typeof(MeshFilter), typeof(MeshRenderer)); var filter = go.GetComponent <MeshFilter>(); filter.mesh = ToMesh(allMeshes[i], name); var renderer = go.GetComponent <MeshRenderer>(); renderer.material = material; var transform = go.transform; transform.SetParent(parent); _joints[i] = transform; } }
public RhinoMeshPoser(RobotSystem robot) { _default = robot.DefaultPose; var meshCount = _default.Meshes.Sum(m => m.Count + 1); Meshes = new List <Mesh>(meshCount); }
// Update is called once per frame void Update() { if (oldTarget != targetPose) { ChangePose(); } oldTarget = targetPose; }
public void Read(EndianStream stream) { AvatarSkeleton.Read(stream); AvatarSkeletonPose.Read(stream); DefaultPose.Read(stream); m_skeletonNameIDArray = stream.ReadUInt32Array(); Human.Read(stream); m_humanSkeletonIndexArray = stream.ReadInt32Array(); m_humanSkeletonReverseIndexArray = stream.ReadInt32Array(); RootMotionBoneIndex = stream.ReadInt32(); RootMotionBoneX.Read(stream); RootMotionSkeleton.Read(stream); RootMotionSkeletonPose.Read(stream); m_rootMotionSkeletonIndexArray = stream.ReadInt32Array(); }
public HelixMeshPoser(RobotSystem robot, PBRMaterial material, ObservableElement3DCollection robotModels) { _default = robot.DefaultPose; _robotModels = robotModels; foreach (var joint in _default.Meshes.SelectMany(m => m)) { var model = new MeshGeometryModel3D { Geometry = ToWPF(joint), Material = material, Transform = Transform3D.Identity, IsThrowingShadow = true }; robotModels.Add(model); } }
public YAMLNode ExportYAML(IAssetsExporter exporter) { #warning TODO: values acording to read version (current 2017.3.0f3) YAMLMappingNode node = new YAMLMappingNode(); node.AddSerializedVersion(GetSerializedVersion(exporter.Version)); node.Add("m_AvatarSkeleton", AvatarSkeleton.ExportYAML(exporter)); node.Add("m_AvatarSkeletonPose", AvatarSkeletonPose.ExportYAML(exporter)); node.Add("m_DefaultPose", DefaultPose.ExportYAML(exporter)); node.Add("m_SkeletonNameIDArray", IsReadDefaultPose(exporter.Version) ? SkeletonNameIDArray.ExportYAML(true) : YAMLSequenceNode.Empty); node.Add("m_Human", Human.ExportYAML(exporter)); node.Add("m_HumanSkeletonIndexArray", HumanSkeletonIndexArray.ExportYAML(true)); node.Add("m_HumanSkeletonReverseIndexArray", IsReadHumanSkeletonReverseIndexArray(exporter.Version) ? HumanSkeletonReverseIndexArray.ExportYAML(true) : YAMLSequenceNode.Empty); node.Add("m_RootMotionBoneIndex", RootMotionBoneIndex); node.Add("m_RootMotionBoneX", RootMotionBoneX.ExportYAML(exporter)); node.Add("m_RootMotionSkeleton", RootMotionSkeleton.ExportYAML(exporter)); node.Add("m_RootMotionSkeletonPose", RootMotionSkeletonPose.ExportYAML(exporter)); node.Add("m_RootMotionSkeletonIndexArray", IsReadRootMotionSkeleton(exporter.Version) ? RootMotionSkeletonIndexArray.ExportYAML(true) : YAMLSequenceNode.Empty); return(node); }
public YAMLNode ExportYAML() { YAMLMappingNode node = new YAMLMappingNode(); node.AddSerializedVersion(SerializedVersion); node.Add("m_AvatarSkeleton", AvatarSkeleton.ExportYAML()); node.Add("m_AvatarSkeletonPose", AvatarSkeletonPose.ExportYAML()); node.Add("m_DefaultPose", DefaultPose.ExportYAML()); node.Add("m_SkeletonNameIDArray", SkeletonNameIDArray.ExportYAML(true)); node.Add("m_Human", Human.ExportYAML()); node.Add("m_HumanSkeletonIndexArray", HumanSkeletonIndexArray.ExportYAML(true)); node.Add("m_HumanSkeletonReverseIndexArray", HumanSkeletonReverseIndexArray.ExportYAML(true)); #warning other values crash Unity. Why? node.Add("m_RootMotionBoneIndex", -1 /*RootMotionBoneIndex*/); node.Add("m_RootMotionBoneX", RootMotionBoneX.ExportYAML()); node.Add("m_RootMotionSkeleton", RootMotionSkeleton.ExportYAML()); node.Add("m_RootMotionSkeletonPose", RootMotionSkeletonPose.ExportYAML()); node.Add("m_RootMotionSkeletonIndexArray", RootMotionSkeletonIndexArray.ExportYAML(true)); return(node); }
public void Read(AssetStream stream) { AvatarSkeleton.Read(stream); AvatarSkeletonPose.Read(stream); if (IsReadDefaultPose(stream.Version)) { DefaultPose.Read(stream); m_skeletonNameIDArray = stream.ReadUInt32Array(); } Human.Read(stream); m_humanSkeletonIndexArray = stream.ReadInt32Array(); if (IsReadHumanSkeletonReverseIndexArray(stream.Version)) { m_humanSkeletonReverseIndexArray = stream.ReadInt32Array(); } RootMotionBoneIndex = stream.ReadInt32(); RootMotionBoneX.Read(stream); if (IsReadRootMotionSkeleton(stream.Version)) { RootMotionSkeleton.Read(stream); RootMotionSkeletonPose.Read(stream); m_rootMotionSkeletonIndexArray = stream.ReadInt32Array(); } }
public void Read(AssetReader reader) { AvatarSkeleton.Read(reader); AvatarSkeletonPose.Read(reader); if (IsReadDefaultPose(reader.Version)) { DefaultPose.Read(reader); m_skeletonNameIDArray = reader.ReadUInt32Array(); } Human.Read(reader); m_humanSkeletonIndexArray = reader.ReadInt32Array(); if (IsReadHumanSkeletonReverseIndexArray(reader.Version)) { m_humanSkeletonReverseIndexArray = reader.ReadInt32Array(); } RootMotionBoneIndex = reader.ReadInt32(); RootMotionBoneX.Read(reader); if (IsReadRootMotionSkeleton(reader.Version)) { RootMotionSkeleton.Read(reader); RootMotionSkeletonPose.Read(reader); m_rootMotionSkeletonIndexArray = reader.ReadInt32Array(); } }