Posts: 4
Threads: 2
Joined: Oct 2022
02-20-2025, 11:45 PM
Hi! I'm ripping sprites from a game called Our World is Ended/Oreowa and the sprites are broken apart and uses an atlas somehow, but I don't know how to reconstruct the sprites back to what they would normally look like. Attached a sample set of sprites. Thanks!
https://drive.google.com/file/d/1S0geEze...0BgRf/view
Posts: 31
Threads: 6
Joined: Dec 2017
Hi. These sprites are Spine models, a set of .json, .atlas and .png for a complete file. However, the .atlas files are missing and thus they cannot be reconstructed using Spine.
Could you locate those?
Posts: 4
Threads: 2
Joined: Oct 2022
(02-22-2025, 04:02 PM)Samevi Wrote: Hi. These sprites are Spine models, a set of .json, .atlas and .png for a complete file. However, the .atlas files are missing and thus they cannot be reconstructed using Spine.
Could you locate those?
hi, was busy for a while
checking the game's files, there are only the .json files
I also decompiled the game's .dll and found this code, might be useful
when I read them, I started to think maybe it wasn't spine?
Both from Assembly-CSharp.dll\OREOWAOreowaUguiFlowChartItem.cs
Code:
public void Init(AdvEngine engine, AdvFlowData data, SpriteAtlas spriteAtlas, int groupNumber)
{
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
this.engine = engine;
atlas = spriteAtlas;
gourpNumber = groupNumber;
Data = data;
sceneObject.SetActive(false);
imageObject.SetActive(false);
selectionObject.SetActive(false);
selectionItemObject.SetActive(false);
selectionItem3LObject.SetActive(false);
buttonObject = null;
buttonActiveObject = null;
((Component)this).transform.localPosition = Vector3.zero;
for (int i = 1; i <= 7; i++)
{
GameObject gameObject = ((Component)selectionObject.transform.Find($"Active{i}")).gameObject;
gameObject.SetActive(false);
}
switch (data.Type)
{
case "Scene":
InitScene();
break;
case "Image":
case "Line":
InitImage();
break;
case "SelectionStart":
InitSelection(isStart: true);
break;
case "SelectionEnd":
InitSelection(isStart: false);
break;
case "SelectionItem":
InitSelectionItem();
break;
}
IsRead = this.engine.SystemSaveData.ReadData.CheckReadLabel(data.FlowPoint.Replace("*", string.Empty));
((Component)this).gameObject.SetActive(true);
if (!IsRead)
{
((Component)this).gameObject.SetActive(false);
}
}
Code:
private void InitImage()
{
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
imageObject.SetActive(true);
Sprite sprite = atlas.GetSprite(Data.File);
Image component = imageObject.GetComponent<Image>();
component.sprite = sprite;
((Graphic)component).SetNativeSize();
imageObject.transform.localPosition = new Vector3(Data.X, Data.Y * -1f);
}