void ProcessNextCutscene() { var ct = toPlay.Dequeue(); int position = 0; int i = 0; foreach (var npc in ct.Chars) { var obj = new GameObject() { Nickname = npc.Actor }; var costumeName = Game.GameData.GetCostumeForNPC(npc.Npc); Game.GameData.GetCostume(costumeName, out var body, out var head, out var lh, out var rh); var skel = new DfmSkeletonManager(body, head, lh, rh); obj.RenderComponent = new CharacterRenderer(skel); var anmComponent = new AnimationComponent(obj, Game.GameData.GetCharacterAnimations()); obj.AnimationComponent = anmComponent; obj.Components.Add(anmComponent); string spot = npc.Spot; if (string.IsNullOrEmpty(spot)) { spot = ct.Reserves[0].Spot[position++]; } var pos = scene.GetObject(spot).Translate; obj.SetLocalTransform(Matrix4x4.CreateTranslation(pos)); var thnObj = new ThnObject(); thnObj.Name = npc.Actor; thnObj.Rotate = Matrix4x4.Identity; thnObj.Translate = pos; thnObj.Object = obj; scene.AddObject(thnObj); scene.FidgetScript(new ThnScript(session.Game.GameData.ResolveDataPath(npc.Fidget))); if (i == 0) { hotspots.Add(new RTCHotspot() { ini = ct, obj = thnObj, npc = npc.Npc }); } i++; } }