修改方法:
〇:首先请您了解,该修改并没有经过过深研究,只是随意改的,因此可能存在有错误和疏漏,对游戏造成的影响无法预知,请三思再改
①:首先请准备能够拆包xp3与封包xp3的工具(我使用garbro 下载地址:
https://github.com/crskycode/GARbro)
②:
(日文版)使用工具对游戏根目录下的data.xp3进行解包,在拆包出来的文件中,找到script目录下的inventory.tjs,将inventory.tjs提取出来
(汉化补丁版)对汉化补丁进行解包,找到inventory.tjs并提取
③:请使用任何能以文字格式打开inventory.tjs的软件打开此文件,例如TXT文本文档
④:在inventory.tjs中搜索var adjustLeft,(大约位于3234行左右),应该能找到这行代码var adjustLeft = 20;
⑤:在var adjustLeft = 20;的下方另起一行,写入var adjustTop = 70;

⑥:搜索function loadSkinImages,(大约位于3638行),应该能找到function loadSkinImages(charaObj, pose, wholeImg)。把从function loadSkinImages(charaObj, pose, wholeImg)开始到function putMarker(mark)(约3766行)上面的部分完全删除

⑦:用如下文段替换刚才删掉的部分
function loadSkinImages(charaObj, pose, wholeImg)//替换后
{
// 全身と各肌のレイヤーを読み込む
// 各身体パーツの基準位置・全身レイヤーの左端
// ここを基準にして各パーツを配置する
// 親となるアイテム画面レイヤーは左に大きく寄っており
// さらに配置されるパーツは若干枠からはみ出るのでこの位置が指定される
// なお、追加カットは左端は0で良い
var battlePose = master.isBattlePose(pose);// 戦闘ポーズ中かどうか
var bodyLeft = battlePose ? 0 : -parent.left - adjustLeft;
var bodyTop;
bodyTop=battlePose ? 0 : 0 - adjustTop;
if(!battlePose&&!master.inBattle){
if (parent.fixPortrait) {bodyTop = 0;}
}
// 画像のプレフィックス
var img = charaObj.img + (battlePose ? "ex" : "");
// 画像の配置場所の情報
var pos = battlePose ? charaObj.model.exPos : charaObj.model;
// いったん全て隠す
faceLayer.visible = false;
chestLayer.visible = false;
waistLayer.visible = false;
bustLayer.visible = false;
hipLayer.visible = false;
legLayer.visible = false;
armLayer.visible = false;
subArmLayer.visible = false;
gripLayer.visible = false;
hideGripLayer.visible = false;
magicLayer.visible = false;
// 重ね合わせ順を調整
armLayer.absolute = 100;
gripLayer.absolute = 900;
subArmLayer.absolute = pos.subArmOrder;
if(battlePose)
{
armLayer.absolute = pos.armOrder;
gripLayer.absolute = pos.gripOrder;
weaponPos.absolute = pos.weaponOrder;
subWeaponPos.absolute = pos.subWeaponOrder;
if(pose == "cast") weaponPos.absolute = pos.magicOrder;
else if(pose == "shot") weaponPos.absolute = pos.bowOrder;
else if(pose == "play") weaponPos.absolute = pos.harpOrder;
else if(pose == "beat") weaponPos.absolute = pos.drumOrder;
}
// 位置合わせ(と一部読み込み)
bodyLayer.setPos(bodyLeft, bodyTop);
faceLayer.setPos(pos.face[0] + bodyLeft, pos.face[1]+ bodyTop);
legLayer.setPos(pos.leg[0] + bodyLeft, pos.leg[1] + bodyTop);
chestLayer.setPos(pos.chest[0] + bodyLeft, pos.chest[1] + bodyTop);
armLayer.setPos(pos.arm[0] + bodyLeft, pos.arm[1] + bodyTop);
waistLayer.setPos(pos.waist[0] + bodyLeft, pos.waist[1] + bodyTop);
if(charaObj.sex == "女") bustLayer.setPos(pos.bust[0] + bodyLeft, pos.bust[1] + bodyTop);
hipLayer.setPos(pos.hip[0] + bodyLeft, pos.hip[1] + bodyTop);
subArmLayer.setPos(pos.subArm[0] + bodyLeft, pos.subArm[1] + bodyTop);
gripLayer.setPos(armLayer.left, armLayer.top);
if(battlePose)
{
weaponPos.left = pos.main[0];
weaponPos.top = pos.main[1];
subWeaponPos.left = pos.sub[0];
subWeaponPos.top = pos.sub[1];
}
else
{
mainGrip = [pos.main[0] + bodyLeft, pos.main[1] + bodyTop];
subGrip = [pos.sub[0] + bodyLeft, pos.sub[1] + bodyTop];
hideMainGrip = [pos.hideMain[0] + bodyLeft, pos.hideMain[1] + bodyTop];
hideSubGrip = [pos.hideSub[0] + bodyLeft, pos.hideSub[1] + bodyTop];
hideGripLayer.setPos(pos.hideArm[0] + bodyLeft, pos.hideArm[1] + bodyTop);
}
// 読み込み
bodyLayer.loadImages(img + "_body_" + charaObj.color);// 読み込み
faceLayer.loadImages(img + "_00");// 読み込み
if(wholeImg !== void)
{
// 完全指定ポーズ用の画像は chestLayer に読み込む。あとは何もしない
chestLayer.loadImages(img + "_" + wholeImg, charaObj);
return;// 指定ポーズの作成だったらここで終了
}
legLayer.loadImages(img + "_leg");
waistLayer.loadImages(img + "_waist", charaObj);
hipLayer.loadImages(img + "_hip", charaObj);
if(pose === void && charaObj.coveringBust())
{
chestLayer.loadImages(img + "_chest_hide", charaObj);
return;
}
if(charaObj.sex == "女") bustLayer.loadImages(img + "_bust", charaObj);
chestLayer.loadImages(img + "_chest", charaObj);
// 腕パーツの読み込み
var actionSuffix = "";// 追加カットがある時違う画像を呼び出すための接尾辞
if(pose == "cast")
{
magicLayer.loadImages(img + "_magic");
magicLayer.setPos(weaponPos.left, weaponPos.top);
magicLayer.absolute = weaponPos.absolute;
actionSuffix = "c";
}
else if(pose == "shot") actionSuffix = "s";
else if(pose == "play") actionSuffix = "p";
else if(pose == "beat") actionSuffix = "b";
if(battlePose)
{
armLayer.loadImages(img + "_arm_up" + actionSuffix);
}
else
{
armLayer.loadImages(img + "_arm_down");
}
subArmLayer.loadImages(img + "_arm_sub" + actionSuffix);
if(battlePose && pose != "cast")
{
gripLayer.loadImages(img + "_arm_grip" + actionSuffix);
}
}

(换行和缩进的轻微变形应该不影响使用)
⑧:搜索function changeFace,(大约位于3991行),删掉从function changeFace(charaObj, faceNum, pose)到function makePortrait上面的部分

⑨:用如下文段替代刚刚删掉的部分
function changeFace(charaObj, faceNum, pose)
{
// 表情を変える
var battlePose = master.isBattlePose(pose);// 戦闘ポーズ中かどうか
var img = charaObj.img + (battlePose ? "ex" : "");
var res = faceLayer.loadImages(img + "_" + "%02d".sprintf(+faceNum));
if(! res) faceLayer.loadImages(img + "_00");
var pos = battlePose ? charaObj.model.exPos : charaObj.model;
var bodyLeft = battlePose ? 0 : -parent.left - adjustLeft;
var bodyTop;
bodyTop=battlePose ? 0 : adjustTop;
if(!battlePose&&!master.inBattle){
if (parent.fixPortrait) {bodyTop = 0;}
}
if(!battlePose&&!master.inBattle)
faceLayer.setPos(pos.face[0] + bodyLeft, pos.face[1] - bodyTop);
}

⑩:保存文件,并重新打包成xp3,命名为patchxx.xp3,(xx为任意两位数,例如56,78等),但需要注意,该数字必须大于汉化补丁等其它所有修改了inventory.tjs的补丁的patch数字。如果您的汉化补丁为patch99,请将汉化补丁重命名,并将其数字调低,以确保本修改具有最高优先级,将打包后的xp3放在游戏根目录下,和汉化补丁等放在一起。
⑪:进游戏,享用🦶🦶🦶🦶🦶🦶🦶🦶🦶