Jump to content

Looking for technical advice with the Kirikiri engine


ShoujoQ

Recommended Posts

Hi, I'm currently working on translating a visual novel which is built on the kirikiri engine. I've got a workflow set up (using a modified version of krkrz scene manager) and am progressing in the translation, but I am looking for advice from someone who knows how the engine works, especially with regard to how it stores and calls strings.

The krkrz scene manager code that unpacks the SCN files stored inside the .xp3 packages reads out the strings in the order they appear in the bytestream of the SCN file, which happens to be alphabetical order - this is obviously quite inconvenient for translation, since this is not the order they appear in in-game.

My question is: does anyone know where in the game's files the strings are being set out in the order they appear in game and, if so, how are the strings being referenced by that file?

Thanks in advance.

Link to comment
Share on other sites

some other guy asking me the same question on facebook, idk if he's you or not, lol...
btw, yes, krkrz scene manager will take out the string in alphabetical order, and idk how to fix it, and you better ask the original author (@marcus-beta) about that...

but you can use multiline editor instead, the interface is almost same as krkrz scene manager, but its better, it has 2 interface for the original and translated string, and the string appear in the correct order, but the interface is in chinese...

Link to comment
Share on other sites

3 hours ago, Huang Ling Yin said:

and you better ask the original author (@marcus-beta) about that...

I already did that a while ago (he said that the strings coming out in alphabetical was unavoidable due to the way the .SCN format works), which is why I decided to look for the alternate route of asking someone where the strings are being called from at run-time.

As for the multiline editor you linked, I had a look at it, but it doesn't seem to open the .SCN files. As for the interface being better, that's a non-issue, because I already made my own fork of marcus's code with a functional interface that has features like string searching, text file dumping and text file injection alongside the ability to edit the .SCN binary files.

This is the interface I'm working with (which I developed):
4d3911caac.png

Edited by ShoujoQ
Link to comment
Share on other sites

9 hours ago, Huang Ling Yin said:

but well, as long as you have no issue with your own tools, its a good then...

The problem is that my tool (built on top of marcus's krkz scene manager code) produces a list of strings in alphabetical order, rather than the order they appear in-game, making translation quite a bit slower than it would be otherwise. Hence why I asked here about where these strings are being called from at run-time (because there doesn't seem to be any ordering ID in the .scn file itself).

Link to comment
Share on other sites

Hm... Man, to restore the string order is required fully decompile the PSB, or in the min, recogite all bytecode to seek opcodes position...
In my project i hook the game with AGTH and my program seek the clipboard automatically...

Before I have tried wrote a code to seek only the string call, but he fails because others bytecode parameters trigger my "search";
I don't test this ineditor, but be careful, some psb/scn tools don't update all offsets generating a corrupted script, by sample the fan patch for Dracu-Riot have all scripts corrupted, only works because is stored as MDF, the kirikiri decompress while running, but if the script have a resource inside the psb isn't possible "bypass" the corruption...
And old versions of my tool can corrupt too, if your fork is outdated i recommend update it.
 

Edited by marcus-beta
Link to comment
Share on other sites

On 26/08/2017 at 9:01 AM, Huang Ling Yin said:

ah, speaking about dracu riot, i remember i have a tools to deal with it somewhere, let me check it...
in mean time, @ShoujoQ can you give me sample of your script? just one is enough, but give me the both translated and untranslated, so i can test...

Here's a link to the first scn file of the game, untranslated:
https://www.dropbox.com/s/9kox3dwcbkl3jdx/[untranslated] kis_k01_1.txt.scn?dl=0

and here it is translated:
https://www.dropbox.com/s/7zp5jfeb7qkaacx/[translated] kis_k01_1.txt.scn?dl=0

Here's the process of translation using my tool:
1) Open the untranslated .scn file and then dump it to a text file. This produces a plain text file with each Japanese line listed twice, then a blank line before the next Japanese line.
2) I then edit this text file, editing the second copy of each Japanese line to the English equivalent, inserting newlines as \n where necessary.
3) This text file is then "injected" back into the untranslated .scn file - the tool searches for each Japanese line in order, replacing it in the .scn file with the English translation just below it in the plain text file.
4) Save the translated .scn file, then repack it into the game.

Here's an example of one of those plain text files (with some irrelevant strings that don't need translating chopped off the top):
https://www.dropbox.com/s/aoiargj0cwvo0ni/[translated] kis_k01_1.txt?dl=0

Edited by ShoujoQ
Link to comment
Share on other sites

The script isn't that bad, the format's just... annoying. Script opcodes 0x15, 0x16, 0x17 and 0x18 are strings, which one just determines how big the data following the opcode is, 0x15 is 1 byte, 0x18 is 4 bytes. That points to the location of the string entry in the list from the header at 0x10. First few bytes are the same kind of deal for that table, first one is data type, followed by the number of entries, and then the stride. After that you can add your opcode data to it, get the location of the string, load that up, and boom you have the string.

Should be pretty easy to decompile and add new strings or move them all around.

Here's a script which extracts the strings in the script order (which isn't necessarily the read order in-game cause of jumps) from ShoujoQ's script: https://pastebin.com/5XWvDW17 - It's *extremely* messy and badly-written, and only covers a few of the opcodes, so it won't work for every script, but should give you an idea of how it works and you can expand on it if you wanted to get them all, if someone like Marcus wanted to keep trying to make a proper decompiler.

Here's an example with the in-order strings from ShoujoQ's script:

 

c6a1a048dee42e7c7df11c586f8f1dba


kis_k01_1.txt
*start
env
envupdate
init
new
bgm
wait
meswinload
page
both
*start:2
f.あさひ好感度 = 0
f.まひる好感度 = 0
f.やよい好感度 = 0
f.さや好感度 = 0
f.あさひ進行度 = 0
f.まひる進行度 = 0
f.やよい進行度 = 0
f.さや進行度 = 0
stage
zpos
leveloffset
zoomx
zoomy
bg08_00
trans
crossfade
2000
bgm11
包丁_1
bgm_BGM11
autosave
cg_あさひ.stand
character
ypos
order
xpos
visvalue
MoveAction
100
@+100
パジャマ1
困り
手髪

SinAction
パジャマ2
怒り
手口
@-10
考え
手下げ
手前
500
真剣
ぽりぽり
delayrun
vl1
emo_あさひ
emotion
ハテナ_2
cg_ハテナ_2
考え2
手胸
msgoff
bg01_00
universal
map901.png
1000
time
sync
true
cg_まひる.stand
bgm02
制服1
手胸1
bgm_BGM02
pretrans
emo_まひる
ぐじぐじ_1
制服2
泣き
手胸2
cg_ぐじぐじ_1
やよい.stand
通常
手開き
cg_やよい.stand

手腰
emo_やよい
照れ
手組み
さや.stand
cg_さや.stand
驚き

笑い

emo_さや
♪_1
cg_♪_1
笑い2
手頭
vl2
vl3
手上げ
@+15
@0
焦り_1
cg_焦り_1
微笑み
@-100
acdec
四人右・小
左奥
四人左・小
右奥
手髪2
@-20
手顔
bgm10
bgm_BGM10
微笑み2
四人右端・小
四人左端・小
1500
sysmovie
file
onikissOP
bgm01
bgm_BGM01
event
&gettutorial(1)
beginskip
!SystemConfig.tutorial||SystemConfig.kissSelect
cg_&gettutorial(1)
endskip
dummy
cg_dummy
*キスを待つkiss_1
小気味良い音が響く台所。
お兄ちゃん
「…………」
タコさんウィンナーに卵焼き、ミニトマトにアスパラガス、見事なバランスで盛られた四つの弁当を前に、俺は誰も居ないリビングで見事な箸捌きを披露する。
時折、視線を傾けては見るが、まだ愛しい妹達の姿は見当たらない。
「流石にこれは……」
平日。朝。七時三十分。時計を見れば、そろそろ良い時間になってしまっている。
「ちゅー、しなきゃ」
「妹達に目覚めのちゅーを……しに行かなきゃ!」
どのタイミングで目覚めのキスをしに行くかを計算しながら、一口大にカットした茹でブロッコリーを箱に詰め込んでいく。
ミートボールを入れて、ミニグラタンに粉チーズを振って、バランで幅を整えて――――
「う、むむむ……ちょっと時間的にマズイかも」
いい加減に妹達に目覚めのキスをしなければならない! 遅刻して落ち込む妹の顔など見たくは無い!
だが、妹の弁当に手を抜くなど それこそ兄として許される事では無い!
「あぁどうすれば良いっ!? 俺は一体どうすれば良いんだ!?」
「ふ……わぁ…………朝っぱらからどうしたの……お兄ちゃん……?」
ash_01647
「お、おぉっ!? あ、あさひっ! 起きたかっ!」
そこには、長女であり第一妹であるあさひが立っていた。
「あれだけうるさかったら誰だって起きるよ……ふわ……ぁ」
ash_01648
そう言うと、あさひは寝ぼけ眼のまま大きな欠伸を一つ零し、そのままゆっくりと距離を詰めてくる。
――――だが
「あれ……しないの?」
ash_01649
「ごめん……今、手が離せなくて……それより、他の妹達を起こしてきてくれ!」
「んー、はぁい」
ash_01650
残念そうに唇を尖らせる、あさひ。お兄ちゃんも残念です。
「母さんはいつもの如く夜遅くまで鑑定してたみたいだから、起こさなくていいからな」
「うん、わかったぁ……」
ash_01651
まだ完全に目覚めていないのだろう。間延びした声で、あさひは来た道を戻っていった。
「おは……よぅ……ございます……お兄ちゃん……」
mhr_00090
目の前に並んだ朝食に視線を落としながら、次女であるまひるは寝ぼけ眼で瞼を擦る。
「おはよう、まひる。それにしても珍しいな、全員まとめて寝坊なんて」
朝が弱いまひるはともかく。
「えぇと、その……」
mhr_00091
だが、まひるは言いづらそうに視線を泳がせる。
「昨日、ホラー映画を観たせいっ、おに……兄さんが借りてきたやつのせいよ……」
yyi_00117
その代わりに答えたのは、三女であるやよいだった。
最近『お兄ちゃん』呼びに抵抗が出てきたのか、『兄さん』と呼ぼうと奮闘中……らしいが。
正直かなり言い難そうだ。まぁ、そう簡単に癖とか慣れは直らないからなぁ。
「おはよう、やよい。と言うかクマ凄いな」
「……誰のせいだと思ってんのよ」
yyi_00118
だが、その頬を膨らませたその顔には、明らかに不満の色が浮かんでいる。
「え、お、俺のせいだった?」
「……違うけど」
yyi_00119
「その、昨日のホラー映画…………井戸の中から女の人の幽霊が出てくる話で……その」
yyi_00120
yyi_00121
「……絶対見ない。あんなの二度と見ない」
yyi_00122
小さく呟く様に言ったやよいの声は震えていた、こんなに怯えたやよいを見るのは、何年ぶりだろうか。
「そんなに怖かったのか?」
「うぅん。そこまで怖くは無かったよ? でもほら、二人とも、と言うか、やっちゃんは怖がりさんだからねぇ。色々と大変だったんだよぉ?」
sya_00116
「さ、さやぁっっっ!?」
yyi_00123
そう言って四女のさやが、悪戯っぽい笑みを浮かべる。
「やっちゃんも、まー姉も、ぷるぷる震えて泣きそうだったんだからぁ!」
sya_00117
「井戸から幽霊がモリモリ出てくるたびに、きゃー! とか、うやー! とか、まるで動物みたいな声出してたんだからぁ!」
sya_00118
両手を大袈裟に振り上げながら、その時の様子を楽しげに表現するさや。あいかわらず朝から元気で何よりだ。
「特にやっちゃんなんて、井戸から幽霊が出てくる時に、おにーちゃーん! おにーちゃーん! たすけておにーちゃーん、って……!」
sya_00119
「わ、わわわっ! ち、違うしっ……! そ、それはウソだしぃっ……!」
yyi_00124
やよいが顔を真っ赤にしながら、さやの口を塞ごうと奮起するが。
「よっと! はっ! せいやっ!」
sya_00120
「ま、待ちなさいよっ……ちょっ、こらっ!? さやぁっ!?」
yyi_00125
ヒッキー系万年読書少女であるやよいが、リア充系活発運動少女であるさやを捉えられる筈が無かった。
「ふ……わぁっ……駄目だよ、二人ともぉ。朝から騒がしくしちゃあ…………」
mhr_00092
その光景を、欠伸混じりの声で諌めるまひる。
「あぁ、相変わらず可愛いなぁ。このやり取りを見ただけで一週間分くらいの生命力が湧いてきたよ」
「お兄ちゃん。いい加減に二人を止めないと、流石に遅刻しちゃうよ?」
ash_01652
いつの間にか、俺が作った朝食を食べ始めているあさひの声に釣られ、時計へと目を向けると――――わお!
「やよいっ! さやっ! 早くご飯を食べないと、遅れるぞ!?」
「えっ!? あっ!? ホントだっ!?」
yyi_00126
俺の言葉に反応し、走り回っていた二人が慌ててテーブルにつき、俺が作った朝食にガッつき始める。
「わ、わっ! ちょーマズいっぽいっ! お兄ちゃんっ! ふりかけーっ! ふりかけ取ってぇっ! ふりかけで一気に掻き込んじゃうからぁ!」
sya_00121
「さやちゃん。そこまで慌てなくっても大丈夫だよ。ほら、お兄ちゃんがおかずを作ってくれたんだから、しっかり味わおう?」
mhr_00093
「ふっ、箸が止まってるわね。その隙に……卵焼きゲット!」
yyi_00127
「あーーーーっ!? さやの卵焼きーっ! もーーっ! やっちゃんってばぁっ!」
sya_00122
「ふふ……恥をかかせてくれた仕返しよ……ってあぁっ! わたしのミートボール!?」
yyi_00128
「へっへーんっ! 早いもの勝ちだよっ! ってあぁっ!? あさ姉っ! 大皿ごと取るのは反則だよぉっ!」
sya_00123
「二人とも肉ばっかり食べ過ぎよ。お兄ちゃんやお母さんが食べる分がなくなっちゃうでしょ? これはお預けよ、お預け」
ash_01653
朝食と言う戦場の中で、部外者である俺を気遣ってくれるあさひ。
「あさひは優しいなぁ……でも、俺の分は食べちゃって良いぞ。どうせそんな食べないし」
「で、でも」
ash_01654
「と言うか……もう残ってないし」
「え?」
ash_01655
「もぐもぐもぐもぐ……もぐ……もぐ……こくん……!」
sya_00124
「んぐ、んぐ……こくん……もぐ……もぐ……ん、ぷぁ……!」
yyi_00129
そこには、もの凄い勢いであさひが持った大皿から肉を奪取しては、リスの如く頬を膨らませていく下の妹二人の姿。
ash_01656
「もぐもぐもぐもぐ……はっ!?」
sya_00125
「んくっ……んくっ、はっ!?」
yyi_00130
「……二人とも、何か言い訳はある?」
ash_01657
「おに……兄さんが良いって言ったから」
yyi_00131
「おにいちゃんが作ってくれたものを残すのはダメだから!」
sya_00126
二人して最後の一口を飲み込んでから、笑顔で答える。
「…………私はどんな対応をすれば良いと思う、お兄ちゃん?」
ash_01658
「ご飯を全部食べてくれるだけでも嬉しいから、大丈夫だぞ!」
「あぁ、そうね。お兄ちゃんならそう言うと思ってたわ」
ash_01659
ふぅ、と溜息を一つ吐いてあさひが自分の食事を再開する。
「さて、ごぼうサラダでも……あら、ごぼうサラダがもう無い?」
ash_01660
「んくんくっ……ふぅ。美味しかったぁ……あ、あれ? もしかしてあさひちゃんも、ごぼうサラダ食べたかった……!?」
mhr_00094
「いや、いいわ」
ash_01661
「……私には、強い味方がいるから」
ash_01662
そう言って笑うあさひの手には、パックのふりかけが握られていた。
――――ほどなくして
「おにいちゃーん、まぁだぁ?」
sya_00127
「……このままじゃ遅刻しちゃう」
yyi_00132
「……と言うか、別に毎回デコ弁じゃなくても大丈夫なのに」
yyi_00133
「ま、待てっ……桜でんぶがっ、後もう少しで綺麗にハートのスマイルが描けるから!」
学園に向かう準備を終えた妹達に急かされながら、俺は最後の弁当箱に仕上げとなる彩りを付けていく。
「はぁ……愛情は感じるけど、遅刻寸前まで頑張らなくても良いのに……嬉しいけど」
ash_01663
「うん、凄いよね、お兄ちゃんのお弁当。私があれくらい作れる様になる為にはどれくらいかかるんだろ……?」
mhr_00095
「むぅ……その、兄さん……そろそろ出たいんだけど?」
yyi_00134
「おにいちゃん。さや達、そろそろ待つのも限界だよぉ……」
sya_00128
「う、うんっ! だからちょっと待って! すぐ、すぐに終わらせるから」
愛しい妹達を遅刻させる訳にはいけない、その一心で俺は限界まで手の動きを速め。
みんな
「そうじゃなくて――――」
ash_01664
mhr_00096
yyi_00135
sya_00129
そんな彼女達の声に、思わず俺の手が止まり視線がそちらへと向けられる。
「お兄ちゃん――――――キッスの準備はまだですかっ!?」
ash_01665
mhr_00097
yyi_00136
sya_00130
「我愛情梱包無事終了也!」
全ての弁当を完成させ、俺は改めて妹達の方へと向き直す。
「あ、お兄ちゃん。今日私ちょっと急ぐから一番ね」
ash_01666
「お、そうか? それじゃ、あさひ」
弁当箱を渡し。
「うん、準備おっけーだよ」
ash_01667
互いに、ゆっくりと近づいていく。自然に、自然に、自然なキス。
共通1日目 kis_k01
eva01a_3
cg_eva01a_3
*dummyselect1
「んっ」
ash_01668
kiss_hitmask
*キスしたkiss_1
キスをする
*キス外すkiss_1
キスをしない
*キス焦らされるkiss_1
時間切れ
eva01f_3
cg_eva01f_3
「? どうしたの? はやく、キスしないの?」
ash_01669
eva01e_3
cg_eva01e_3
「ちょ、どうしたの? 唇にだよ? はい、お兄ちゃん」
ash_01670
layer_h1
layer_h2
layer_h3
rotate
opacity
heart_m
heart_s
eva01b_3
cg_eva01b_3
cg_heart_m
cg_heart_s
*合流1
「ちゅっ……ん」
ash_01671
750

*キスを待つkiss_2
「んっ……ぅ……はふ……」
ash_01672
俺達は一秒にも満たない短い時間の軽いキスをする。
「ふふ……」
ash_01673
あぁ、キスの後と言うのは、どうしてこうも意味も無くニヤけてしまうのだろう。そんな事を思いながら俺達は視線を絡ませ――――
「好きだよお兄ちゃん。それじゃ、いってくるね」
ash_01674
あさひは嬉しそうに微笑み、家を出ていった。うん、今日の笑顔も100点満点だ。
「じゃあ、わたしの番、だね」
mhr_00098
「おう」
「ん……」
mhr_00099
まひるがその場でそっと目を瞑る。その唇を迎えに行くのがお兄ちゃんたる俺の役割だ。
evb01a_3
cg_evb01a_3
*dummyselect2
「ふぁ……」
mhr_00100
*キスしたkiss_2
*キス外すkiss_2
*キス焦らされるkiss_2
evb01j_3
cg_evb01j_3
「? どうしたの? キスしてくれないの……?」
mhr_00101
「あ、あれ? 唇にちゅー、だったよね……?」
mhr_00102
*合流2
「ちゅ……っ……」
mhr_00103
&gettutorial(2)
cg_&gettutorial(2)
*キスを待つX
f.キャラ選択 = 0
「あ……ふ……」
mhr_00104
長い睫毛が僅かに揺れ、俺のもので容易く沈み込んだ柔らかな唇が、ゆっくりと離れ、とろん、と火照った吐息と共に、まひるの顔が離れていく。
「えへへ、今日も力が沸いて来ました、お兄ちゃん♪」
mhr_00105
砂糖をクリームに溶かす様な自然な笑みを浮かべ、まひるは両手を胸の前でぎゅっとして元気一杯アピールする。
「それじゃ、行ってきます!」
mhr_00106
頬を染めて可愛らしい笑みを浮かべて家を出るまひる。最高にプリティだ。いいね!
「よっしよっしよーしっ! よーやく、さや達の番だねっ!」
sya_00131
「う、うぅ……わたしは別にいいわよ」
yyi_00137
「だーめ、ほらっ! ルールっ! ルぅールなんだから、ちゃんとしなきゃ?」
sya_00132
「あぅ……わ、わかったわよ」
yyi_00138
「る、ルールだから……ルールだから仕方ない、うん。まぁ、ルールだし、うん……」
yyi_00139
次は自分だと言わんばかりにキラキラと目を輝かせるさやと、泳がせた視線を時折チラチラとこちらに送ってくるやよい。
さて、次は――――
「どっちからする? おにいちゃん」
sya_00133
*dummyselect3
evd01h_3
evc01a_3
*キスしたkiss_3
やよいにキスをする
*キス外すkiss_3
やよいにキスをしない
*キス焦らされるkiss_3
やよい時間切れ
*キスしたkiss_4
さやにキスをする
*キス外すkiss_4
さやにキスをしない
*キス焦らされるkiss_4
さや時間切れ
*dummy1
*sel_やよい
*キスを待つkiss_3
f.キャラ選択++
cg_evc01a_3
*dummyselect4
「ひぅっ……」
yyi_00140
evc01j_3
cg_evc01j_3
f.キャラ選択==0
「す、するなら早くしてよぉ…………恥ずかしいからぁ」
yyi_00141
evc01k_3
cg_evc01k_3
「く、口に、するんじゃなかったっけ……?」
yyi_00142
evc01e_3
cg_evc01e_3
焦り_2
cg_焦り_2
f.キャラ選択==0x03
*キャラ選択_合流_1
*sel_さや
f.キャラ選択|=0x01
「ん……んぅ……」
yyi_00143
「……んっ……ぷぁっ」
yyi_00144
キスをしたあとも腰を引きながら、威嚇された小動物の様に膝を震わせてるやよい。
「は……ぁぅ……と、凸ちゅは………駄目だってばぁ」
yyi_00145
「そうじゃないとキスさせてくれないからな、やよいは」
確か……お兄ちゃん呼びを改め出した頃くらいから、やよいはあまりキスさせてくれなくなってしまった。
だから、こうやって殆ど不意を打つ様な形でのキス。いわゆる凸ちゅをする事で、やよいとのキスコミュニケーションを図っている。
「イヤだったか?」
「ぁ……ぅ……」
yyi_00146
「イヤ……じゃない…………」
yyi_00147
それから、困った様に眉を折り曲げ。
「ま、まぁ、ルールだからね。仕方ないよね」
yyi_00148
「仕方ない……なんてったって、ルールだから」
yyi_00149
顔を真っ赤にしながら、弁当箱を手に取る姿は、堪らなくキュートだ。
*キスを待つkiss_4
cg_evd01h_3
*dummyselect5
「んーっ!」
sya_00134
evd01c_3
cg_evd01c_3
「どしたのおにいちゃん? 早くしないと遅刻しちゃうよ?」
sya_00135
evd01f_3
cg_evd01f_3
「ちゅーするのはそこじゃないよぉ?」
sya_00136
evd01a_3
cg_evd01a_3
*合流4
f.キャラ選択|=0x02
「ちゅーっっっ!」
sya_00137
evd01b_3
cg_evd01b_3
キスを終えようとすると、ちっちゃな手を思いっきり広げると同時に、さやが唇を押し付ける様に当ててくる。
「おにーちゃんっ♪」
sya_00138
「ちゅっ、ちゅっ。ちゅっ!」
sya_00139
「ちゅぅっ、ちゅちゅちゅ」
sya_00140
元々の体温が高いせいもあってか、さやとのキスは、蕩けそうになる程に気持ちが良い。
「ちゅーーーーっ、ちゅちゅっ!」
sya_00141
さやは最後に思いっきり唇を押し付けると、ゴムが反発する様に一気に体を離す。
「えへへーーっ! 今日もおにいちゃんパワー全開だぁっ!」
sya_00142
白い歯を見せながら、さやは両手を上げて可愛らしいガッツポーズを取る。
こんなふうにさやはいつも自分から積極的にキスをしてくれる。圧倒的なまでにチャーミングだなぁ。
bgm09
bgm_BGM09
bg24_00
blackline
cg_blackline
stopaction
map900b.png
800
300
bg06_00
cg_はは.stand
シャツ1
bgm03
bgm_BGM03
kis_k01_2.txt
「それじゃ、いこっか、やっちゃん!」
sya_00143
「あっ……ま、待ちなさいよぉっ!」
yyi_00150
スキップでもしそうな勢いで家を出ていくさやと、それを追いかけるやよい。
後ろ姿が見え無くなるのを見届けてから、俺はふぅと息をつく。
――――うちの家のハウスルールは、ちょっと特殊だ。
「いってらっしゃい」や「おやすみなさい」だけではなく、日常の様々な場面で挨拶代わりにキスをする。元々キス魔である母さんの影響だろう。
「いただきます」や「ごちそうさま」、「お願い」や「ありがとう」の時にでも、キスされてきたし、キスをしてきた。
――――まぁ、一番上である兄のそんな姿を見た妹達が同じ様に真似するのは当然の事で
気づけば、我が妹口家では欧米式のコミニュケーションと言うには少しばかり派手なキス挨拶がまかり通っていたのだ! スゴイ!
まぁ、自他共に認めるシスコンである俺にとっては、この状況は天国と言っても過言では無いのだが! 最高!
「さて、今日も妹達の為にしっかり働きましょうかね!」
そうして俺は仕事の為に母屋へと向かう。
「よいしょ、よいしょ……ゲホッ……」
「拭き拭き拭きっと…………よし、こんなもんか」
掃除し終えた工芸品を、俺は『鑑定前』と書かれた大きなダンボールの中に入れる。
「次は……と」
『掃除前』と書かれたダンボールに入った埃被った茶碗の埃を軽く拭き取り、『煮沸用』と書かれたダンボールの中に入れる。
中学校を卒業してから数年。俺は若くして他界した父に変わって、骨董屋の跡取りとして、こうやって母の手伝いをして妹を養っている。
「……えっと、これは……あっちだな」
そこそこ大変ではあるものの、妹がいる充実した毎日を送らせて貰っている。幸せだ。
「ふわ、ぁ……お兄ちゃんってば朝っぱらから元気があって良いわねぇ」
hha_00013
「ちょいちょい……」
hha_00014
手まねきを合図に少し背をかがめて頭を低くしてやる。
「ちゅ……おはよう、お兄ちゃん」
hha_00015
ちょこんとジャンプして頬にキス、ハウスルールを作った大元の人物。
「おはよう母さん。ご飯は冷蔵庫に入れてたけど、食べた?」
彼女は『妹口ようこう』とてもそうは見えないが、俺達五人兄妹の母親だ。
「うんにゃ。後で食べる予定よん」
hha_00016
なにせ、妹達と並べても一番背が小さい。
加えてその幼い顔立ちから、初めて会う人は母さんを一番下の妹だと勘違いしてしまう程だ。
「それより大事な話があるんだけどいい?」
hha_00017
「改まってどしたの?」
「小さい頃に一度会った源五郎さん覚えてる? 私の鑑定の師匠の……」
hha_00018
「ああ、母さんが『源ゴリラ』って呼んでた人」
「そうそう、そのゴリラがね、そろそろお兄ちゃんに会わせろってうるさいの」
hha_00019
「へ? 俺に? 何故??」
「かあさんが『鑑定士としてチョー優秀な息子』って言ったから」
hha_00020
「……え?」
「ついでに『8歳で大観の真贋を見分けた―』とか『陶器を叩くだけで年代がわかる―』とか……そんな事を言いまくったから」
hha_00021
「ちょっ、ちょっと待ってくれよ母さん。俺はまだようやく作風を覚えた程度で……」
「だってあの時、お兄ちゃんを軽く見てたんだもんあのゴリラ」
hha_00022
「い、いや……だからって、なんでそんなウソを?」
「かあさんがお兄ちゃんを自慢したいからに決まってるでしょう? 息子と妹を置き換えたら、お兄ちゃんだってわかる筈よ?」
hha_00023
「なるっ! ああ、なんて事だ確かに判る! 俺でも解る! その気持ちはすっごく理解出来るよ母さん!」
「というわけ、だからお兄ちゃんには、鑑定士の勉強をしてもらいたいなと言うわけよ」
hha_00024
「ゴリラ問題はさておき、いつまでもかあさん任せってワケにはいかないじゃない?」
hha_00025
「まぁ……あ、もしかして金銭的にマズいとか?」
「そこは別にそう言う訳じゃないわよ。でもそろそろ頃合かなーって思ったの」
hha_00026
「ん、それで母さんや妹みんなが幸せになるなら頑張るよ」
「そう言う事。お兄ちゃんは頭の回転が早くて助かるわ、ちゅっ」
hha_00027
俺の首に手を回して、母さんは柔らかい唇を俺の頬に当てる。
見た目は子供だと言うのに、妙に色っぽいキスは、やはり母さんが大人であると言う事を実感させる。
「と言う訳で、話は戻るんだけど……お兄ちゃんには鑑定士の資格を取る為の勉強して欲しいの」
hha_00028
「と言うか、しなさい。これ比較的に珍しい、かあさん命令、おっけぃ?」
hha_00029
その笑顔には、一切の反論を許さない、説明の出来ない強さがあった。
「わかった、でも……」
古美術の勉強自体は嫌いでは無い、むしろ好きな部類なのだが――――
「店が終わったあとに勉強するとしても、食後は妹達との心休まる団欒の時間が……」
あさひと一緒に見てるドラマと、空き時間にやよいを弄りつつ、さやとゲームしてから、まひるとおしゃべりの時間を作らないと……
「はぁ、お兄ちゃんの事だからそういうと思ったけど……今日のかあさんは心を鬼にしちゃいます!」
hha_00030
「しかし同じ屋根の下に可愛い妹がいる状況で、勉強だけに集中出来る空間なんて……」
「あるじゃない、ここに」
hha_00031
母さんの小さな人差し指が、びっ、っと真下に向けられる。
「お兄ちゃんの部屋を、向こうの離れから、こっちの母屋の方に移しなさい」
hha_00032
「そうしたら、集中、出来るでしょ?」
hha_00033
――――有無を言わさぬスマイルだった
「ぅ……でも、それじゃあ妹とのスキンシップ時間が少なく」
「それくらいしなきゃ、お兄ちゃんは勉強に集中出来ないでしょ?」
hha_00034
うん。違い無い。母さんの言ってる事に一切の間違いは無い。目の前に妹がいたらイチャイチャする。間違いない。
「い、いやでも……」
「ね、これは必要な事なの。だって、このままじゃ、いつまでたっても師匠や鑑定協会の人に紹介できないし、何より――――」
hha_00035
「お兄ちゃんの為にも、妹達の為にもならないでしょ……?」
hha_00036
「っ……!」
妹達の為にならない、と言う言葉に思わず言葉が詰まる。
「学園に行かせてあげられなかった親の言える事じゃないけれど……」
hha_00037
「いや、そこは本当に気にしてないから気にしないでよ」
「むしろ妹達が楽しそうに学園に行く姿を見送る事が出来る今の、自分が妹達を支えていると言う実感を得られている今の、なんと幸せな事か!」
送る幸せ、迎える幸せ、プライスレス。
今のこの幸せは、俺が学園なんぞに通っていたら間違い無く存在していないものだ。
「あぁうん……そうだよね、うん。お兄ちゃんならそう言うよね」
hha_00038
「お兄ちゃんだからね、当然だね」
「……ま、まぁ、とりあえず、そう言う事で今日中に部屋替え、終わらせときなさいね?」
hha_00039
妹達を思えばこそ、か……頑張らないとな。

 

Edited by Kelebek1
Link to comment
Share on other sites

  • 2 weeks later...

I wrote the tool to edit and publish it, and don't finish the easy work to who wants translate research and learn, but this is what i got... allways... :/
Lonely, I sayed this in the email before but i wanna more people learn, you are one that needs... I hope if you try research and learn about what you can do. 
Isn't too hard, with maybe 10 lines of code you can do the tool automatically seek the game text...

Edited by marcus-beta
Link to comment
Share on other sites

cmon Lonely, Marcus did his best doing that, try it yourself sometime with a game of your choice. attach to a running game with debugger and try to figure out, how binary scripts are interpreted...  reverse-engineering script interpreters is a tiresome and time-consuming process, script interpreters are much more complex and code is usually dispersed among hundreds subroutines, and if it's written on C++ with heavy use of virtual functions, deciphering it all might take quite a time...

Edited by Huang Ling Yin
Link to comment
Share on other sites

2 hours ago, Huang Ling Yin said:

cmon Lonely, Marcus did his best doing that, try it yourself sometime with a game of your choice. attach to a running game with debugger and try to figure out, how binary scripts are interpreted...  reverse-engineering script interpreters is a tiresome and time-consuming process, script interpreters are much more complex and code is usually dispersed among hundreds subroutines, and if it's written on C++ with heavy use of virtual functions, deciphering it all might take quite a time...

I already did it and gave out my code.

Link to comment
Share on other sites

11 hours ago, Kelebek1 said:

I already did it and gave out my code.

Just more easy now...

And i said to everyone who don't know assembly and want "implement" a best way to recive the string order...
A alternative is wrote the tool to seek the clipboard and inject the AGTH or ITG in the game... very, but very easy...

Link to comment
Share on other sites

  • 3 weeks later...

By the way, guys, you know...

How to fix the problem when the Japanese name in .SCN are "tied" with the gradient of the text?

For example, lines of  寧々子 character is pink. If I changed the name in .SCN (寧々子 > Neneko), then it will be just white lines as usual. 

Anyone know what I need to do for fixing that? Thanks!

Link to comment
Share on other sites

1 hour ago, Lonely said:

By the way, guys, you know...

How to fix the problem when the Japanese name in .SCN are "tied" with the gradient of the text?

For example, lines of  寧々子 character is pink. If I changed the name in .SCN (寧々子 > Neneko), then it will be just white lines as usual. 

Anyone know what I need to do for fixing that? Thanks!

No idea without see the game, but don't have the name in any other place?
Maybe somewhere have a list of names and your respective effect... translating the name missmatch that list?, I don't know, I just guessed...

Edited by marcus-beta
Link to comment
Share on other sites

Lonely, are you by any chances translate hatsuimo?
its a difficult game you know, not talking about the story but mostly tH3 TeXT i5 Typ lYk T51s aNd h@rD 2 r34d :D
(and also, the kansai dialect)

btw, if i'm not mistaken, the color settings is stored in messagelayer.tjs maybe you can take a look...

Edited by Huang Ling Yin
Link to comment
Share on other sites

On 25.09.2017 at 4:10 AM, Huang Ling Yin said:

Lonely, are you by any chances translate hatsuimo?
its a difficult game you know, not talking about the story but mostly tH3 TeXT i5 Typ lYk T51s aNd h@rD 2 r34d :D
(and also, the kansai dialect)

btw, if i'm not mistaken, the color settings is stored in messagelayer.tjs maybe you can take a look...

Are you mean Hatsugamai, maybe?

 

Hm... Maybe, maybe... But not in English, unfortunately. Just trying to do text for at least demo version, but it still takes a time, I can't promise anything.

So, yeah, white lines and pink lines.

Link to comment
Share on other sites

5 hours ago, Lonely said:

Are you mean Hatsugamai, maybe?

 

Hm... Maybe, maybe... But not in English, unfortunately. Just trying to do text for at least demo version, but it still takes a time, I can't promise anything.

So, yeah, white lines and pink lines.

To me, while isn't chinese is good to see a translation project
So, good lucky

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...