关于学园的存档
这次的存档文件格式是PNG 我在想这个格式的图片文件是否只是记录了一些参数 而不是像AI3的PP包存档那样封装了模型跟贴图如此一来自制MOD就要变更源PP包了 很麻烦的呀 要不停的换 或者要不停的增加lst文件啊 真的是很麻烦的说
不知各位觉得如何?
HF上总结的AA存档格式
// ==================================================================
// Illusion Artificial Academy Savefile
// Written by:
// MrHands
// ==================================================================
//
// This document explains in clear language the savefile as used by
// Illusion in their latest game, Artificial Academy.
//
// It is intended for modders who want to write external tools.
//
// Save data
// ==================================================================
//
// The PNG standard is a flexible standard. There are a couple of
// tags you have to include to be considered a PNG (IHDR, IDAT and
// IEND), but you can add your own as you like. Image parsers that
// can't recognize simply skip it and move on to the next.
//
// Illusion decided not to use this extension and has instead tacked
// their data at the end of the file. Image parsers read up to the
// IEND tag in the image, while the game knows there is still data
// at the end.
//
// This document is an attempt to reverse engineer the sava data.
//
// To do this, I loaded the PNG image of a character into a hex
// editor and started editing files. Every value I post is in
// hexadecimal, so you can start playing with it on your own. Mod
// makers: I hope this will help you to understand the save file
// format Illusion uses.
//
// I use the free PSPad Editor for my haxxing. Try it, it has all
// kinds of cool stuff built in.
//
// Concepts
// ==================================================================
//
// Byte: a single chunk of data, contains a value between 0 and 255
//
// Hexadecimal: a system of numbering that has 16 as a base
//
// Decimal | Hexadecimal
// ---------------------
// 0 | 0x00
// 10 | 0x0A
// 16 | 0x10
// 120 | 0x78
// 255 | 0xFF
//
// String: a collection of printable characters
//
// Colors
// ==================================================================
//
// There are only a few valid colors for everything. For completion
// sake I have made a list. This is called a "look up table", because
// each data value is an index in a table of colors.
//
// Value | Looks like
// -------------------------
// 0x00 | Black
// 0x01 | Black
// 0x02 | Dark red
// 0x03 | Orange
// 0x04 | Dark green
// 0x05 | Dark blue
// 0x06 | Dark purple
// 0x07 | Dark gray
// 0x08 | Dark brown
// 0x09 | Red
// 0x10 | Orange
// 0x11 | Green
// 0x12 | Blue
// 0x13 | Pink
// 0x14 | Gray
// 0x15 | Brown
// 0x16 | Dark pink
// 0x17 | Yellow
// 0x18 | Yellow-green
// 0x19 | Light blue
// 0x20 | Darkish purple
// 0x21 | White
// 0x22 | Light brown
// 0x23 | Salmon
// 0x24 | Light yellow
// 0x25 | Light green
// 0x26 | Purple-blue
// 0x27 | Purple
//
// Strings
// ==================================================================
//
// They're encoded in a weird way. They seem to be in
// the exact opposite order you would expect. A is a high value while
// Z is a lower value. Here are the boundaries:
//
// a = 0x9E
// z = 0x85
// A = 0xBE
// Z = 0xA5
//
// This is the page I used to reverse engineer these codes:
//
// http://www.rikai.com/library/kan ... codes.unicode.shtml
//
// As you can see, the codes on the page are in reverse order.
//
// 0xFF is the end of string character. Here's an example string:
//
// B28D B79E 919B 8CFF = MrHands
//
// Format
// ==================================================================
//
// Enough talking! On to the actual bytes. Keep in mind this savedata
// starts at the first byte AFTER the IEND tag in the save image.
byte header; // not sure what this does
// however, if you change it, the game
// complains about corrupted data
// so don't touch it
byte lastname; // utf-8 or utf-16
// so the size can be 260 ascii
// or 130 japanese chars
byte firstname;
byte personality; // 0x00 - 0x14
byte unknown1;
byte extracurricular; // 0x00 - 0x05
byte unknown2;
byte height; // 0x01 - 0x02
byte figure; // 0x01 - 0x02
byte headsize; // 0x00 - 0xFF
byte breastsize; // 0x00 - 0xFF
byte areolasize; // 0x00 - 0xFF
byte nipplecolor; // 0x00 = pink
// 0x01 = red
// 0x02 = orange
// 0x03 = brown
byte nippleopacity; // 0x00 = transparant, 0xFF = opaque
byte waist; // 0x00 = thin, 0xFF = large
byte skincolor; // 0x00 = white
// 0x01 = white bikini
// 0x02 = white swimsuit
// 0x03 = white cover swimsuit
// 0x04 = brown
// 0x05 = brown bikini
// 0x06 = brown swimsuit
// 0x07 = brown cover swimsuit
// 0x08 = dark
// 0x09 = dark bikini
// 0x0A = dark swimsuit
// 0x0B = dark cover swimsuit
byte unknown3; // doesn't affect any of the tabs
// on any of the pages
// verified with screenshots
byte eyesize; // 0x00 = small
// 0x01 = medium
// 0x02 = large
byte eyebrowshape; // 0x00 - 0x10
byte eyebrowthickness; // 0x00 - 0x64
byte eyebrowcolor; // 0x00 - 0x1B
byte eyeposition; // 0x00 = low
// 0x01 = medium
// 0x02 = high
byte eyeinnercornerposition; // 0x00 - 0x02
byte eyenarrowness; // 0x00 - 0x02
byte eyeoutercornerposition; // 0x00 - 0x02
byte pupilshape; // 0x00 - 0x01
byte pupilsize; // 0x00 - 0x01
byte eyecolorleft; // 0x00 - 0x1B
byte eyecolorright; // 0x00 - 0x1B
byte glasses; // 0x00 = none
// 0x01 = thin
// 0x02 = thick
byte glassescolor; // 0x00 - 0x1B
byte hairfront; // 0x00 - 0x04
byte hairfrontmirrored; // 0x00 = false
// 0x01 = true
byte hairunknown1; // possibly connected to hair style
byte hairback; // 0x00 - 0x04
// it's quite possible that this is
// not a byte to indicate the back hair
// style, but a word (2 bytes)
// we can't know for sure until we get
// our greasy hands on the full product
byte hairunknown2; // possibly connected to hair style
byte hairsprout; // 0x00 = off
// 0x01 = on
byte haircolor; // 0x00 - 0x1B
byte voicepitch; // 0x00 - 0x04
byte scholasticachievements; // 0x00 - 0x05
byte agility; // 0x00 - 0x05
byte sexualexperience; // 0x00 = false
// 0x01 = true
// now follow a bunch of untranslated properties
// i don't know what they are in english, so i can't give proper labels :(
// sorry guys 本帖最后由 L.Emperor 于 2011-5-18 17:11 编辑
Illusion 人工学园存档文件 作者:MrHands
本文清晰地阐述了I社最新游戏人工学园所使用的存档文件的格式。这些分析结果仅供Mod制作者参考,同时也为打算编写面向低端用户的解析程序的人员提供技术支持。
存档文件
PNG图片标准具有广范的范围,很多编码格式都可以归为PNG,比如IHDR、IDAT、IEND,当然还有很多。不能识别某些PNG的图片浏览器会直接跳过这张图片并来到下一张。
但是I社并没有使用上述情形的PNG作为存档文件,相反他们在PNG图片的尾部上增加了一些所制作角色的数据。所以图片浏览器可以熟练地读到PNG图片的IEND标签,显示出解码后的像素,而游戏程序则知道这其中还有附加在尾部的角色数据。
回复 w85702825 的帖子
我现在担心的是根本就没有什么衣服 所有人统统制服了
唉 这次的游戏留的自由度空间不够
页:
[1]