KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

吉里吉里2引擎简单教程1,初步的游戏制作篇

[ 58843 查看 / 28 回复 ]

吉里吉里2/KAG3制作说明

介绍:
吉里吉里2/KAG3是由日本W.Dee氏编写的ADV游戏(也就是通常意义上的AVG)制作引擎,拥有极为强大的功能。性能超过现在国内比较常见的高桥直树的Nscripter引擎和恋爱模拟制作大师系列,拥有众多强大的功能以及良好的编写方式,虽然难度相对较高,但是也比较容易上手。此外,扩展性极强,可以自行制作插件。目前为止,日本已有多款游戏采用吉里吉里2制作,包括TYPE-MOON的FATE,以及多个同人游戏(类型包含AVG,SLG等等)。
KEY FANS CLUB已经取得作者W.Dee氏的授权,进行吉里吉里2的中文汉化以及推广,同时用吉里吉里2制作了几款游戏(如AIR KFC AVG,CLANNAD~KFC千日特典版等)。我们希望能让更多喜欢游戏,希望制作游戏的朋友接触到这款优秀的引擎。


KFC汉化内核2.18简体中文版及相关汉化补丁下载:
(新上传了2.24版)
mail.126.com
账户:krkrkfc
密码:krkrsc


基础功能说明:
1.准备
现在先介绍一下游戏的文件夹构成,首先把KAG3目录中的template文件夹拷贝到kirikiri2目录下。同时把system文件夹中的config.~new改名为config.tjs。
bgimage:背景图像文件(后)
bgm:音乐文件
fgimage:前景图像文件(如人物等等)
image:CG图像文件
other:其它文件
rule:场景转换图像文件
scenario:剧本文件
sound:音效或语音文件
system:系统设置文件
video:视频文件或FALSH动画

注:虽然吉里吉里2中的各个文件可以不放在固定的目录中,但为了方便起见仍然推荐如此做

图像支持:
BMP
JPG
PNG
ERI
TLG5(krkr2.24以前)
TLG6(krkr2.24新版追加)

注:推荐使用吉里吉里2的工具转换的TLG5/TLG6格式,BMP格式过大,而PNG则读取速度较长,且和系统的PNG文件混淆,不利于分类文件压缩。
方法:Tools/krkrtpc.exe
打开后选好非透明和透明的转换格式,直接把图片拖放进去就行了。


音乐支持:
WAVE(无压缩)
MIDI
CD-DA
OGG

注:如果不追求音质的话,推荐使用OGG(可以使用FOOBAR转换)


视频支持:
MPEG-1(.mpeg/.mpg)
SWF(FLASH动画)

注:不推荐用MPEG-2,可能因为某些硬件不支持而无法播放。
    同样不推荐使用SWF,吉里吉里2无法直接进行控制。


UNICODE支持:
支持UNICODE,可以随意使用想用的语言。


图像构成:
完整的吉里吉里2的游戏画面按顺序包括:背景图层,前景图层,文字层(基础),文字层


2.输入
a.文字显示
用文字工具(如记事本等等)打开scenario中的first.ks(这个文件不可改名),即可开始进行编写。编写过程都以离子进行说明。
事先说明,吉里吉里2的所有代码的输入方式:
[代码内容]
@代码内容

注释符:
;在这个符号的同一行后无论输入什么内容,都不会被当作代码或者显示

段落/章节标示:
*:代表某一个段落/章节的起始点,包括分歧选项,剧情跳跃,进度保存,读取等等都离不开这个,所以在设定时请千万注意。

这是吉里吉里2的标准格式,请一定记牢。


打开first.ks文件,内容如下:
[wait time=200]
*start|スタート
[cm]
こんにちは。[l][r]
ごきげんよろしゅう。[l][r]
改ページしますよ。[p]

cm:清除全部的文字层的内容(也就是说,画面上一切文字输入的内容会全部消失)

l:文末等待鼠标/键盘点击,进行文字换行,有l出现的话,则说明必须按鼠标或键盘才能让文本内容进行下去。

r:文字内容改行,新的文字会在第二行出现。

p:作用类似l,但是点击后文字不会换行,而是继续在同一行持续下去。

以上是文字输入的基本功能,熟练的掌握这些,就可以很方便的进行文本输入。



b.背景显示
由于吉里吉里2的默认画面是640x480,所以先以此举例,至于如何修改后面会说明。
[image storage="bg0" page=fore layer=base]
这个就是背景的基本输入方法,虽然也可以用来显示CG,但是后面也推荐用别的方法来。

代码说明:
image:显示图片的代码,只有这个是行头代码,后面的全部都是参数,所以不要搞混。
storage(不可省略):图片路径,用来表示图片的名称,前后要用引号。
page(可省略,如省略则默认为fore):标准输入为:fore/back。表示表层或者里层,如果不加场景转换特效的话,一定要fore,否则图片是不会显示出来的。
layer(不可省略):标准输入为:base/0以上的整数。如果为base则被认定为背景,如果是0以上的整数,则会被认定为相应的前景。




c.前景显示
前景一般是用来显示人物图片的,所以这里面会涉及到背景透明色的问题。如果大家有看过一些游戏的素材的话,会发现很多人物素材的背景是全黑或者绿色等等,这个就是用来作为透明色的部分,吉里吉里2同样支持透明色,在修改图片时请把作为透明的部分统一用一种颜色来填充,作为背景透明色。显示为:XXXXXX,如果用PhotoShop或其他图片工具时,会很方便的找到这些颜色的代码。吉里吉里2同样支持mask(Nscr引擎的图片格式)。
以下是前景的基本输入法:
[image layer=0 page=fore storage="as" visible=true key=0xff00ff left=340 top=100]

代码说明:
image:图片显示代码
layer(不可省略):层次参数。基本输入为0以上的整数。一般输入为0/1/2,默认设置中前景最大为2(3个)。
storage(不可省略):图片路径,用来表示图片的名称,前后要用引号。
page(可省略,如省略则默认为fore):标准输入为:fore/back。表示表层或者里层,如果不加场景转换特效的话,一定要fore,否则图片是不会显示出来的。
visible(可省略):基本输出为:true/false。true表示显示次图层,flase则相反。
key(可省略,如省略则不进行透明处理):透明色制定,基本输入为:0x000000/adapt。如果已经决定好透明色,请指定为更换000000为透明色。adapt则是让程序自己寻找图片中使用最多的颜色作为透明色。
left(可省略):图片的左方位置指定,所有图片都是以左上方(坐标:0,0)为基础点。
top(可省略):图片的上方位置指定。


mask说明:
如果使用mask,请把mask文件名保存为原图片_m,文件扩展名同原图文件,色彩指定为:256色灰度。
原图人物部分为白色,透明背景指定为黑色。
如果使用mask,则代码输入的key参数去掉,举例如下:
原图:人物.png
上传文件4647

mask:人物_m.png
上传文件4648


[image layer=0 page=fore storage="人物" visible=true left=340 top=100]




d.音乐播放
吉里吉里2所支持的格式全部可以播放,但请注意WAVE一定是没有经过压缩
如采用ogg播放则务必将wuvorbis.dll文件放置在krkr.exe同一目录中,并在first.ks最开始输入@loadplugin module=wuvorbis.dll,启动ogg支持

基本代码:
[playbgm storage="bgm01"]
[stopbgm]

代码说明:
playbgm:音乐播放代码
storage(不可省略):音乐文件路径,用来表示音乐文件的名称,前后要用引号。

stopbgm:停止音乐播放的代码。




e.音效播放
音效播放的全部注意同音乐播放部分

基本代码:
[playse storage="se1.wav"][ws]
[stopse]

代码说明:
playse:音效播放代码
storage(不可省略):音效文件路径,用来表示音效文件的名称。
stopse:停止音效播放的代码

ws:等待音效播放完毕的代码




f.转换效果
经常会在游戏中看到图片之间转换时的淡如淡出,卷帘,百叶窗等等效果,吉里吉里2中通过转换效果实现。

基本代码:
[backlay]
[image storage="bg1" layer=base page=back]
[trans method=crossfade time=1500]
[wt]

代码说明:
backlay:图层由表向里复制代码。基本输入为:basr/0以上的整数。base为背景,0以上的整数则为前景。
trans:转换效果代码。
method(不可省略):转换的类型参数。基本输入为:universal/crossfade/scroll。由于功能不同,所以分别举例。
time(不可省略):转换的过程时间。
wt:转换效果停止。

[trans method=crossfade time=1500]
cross为淡入淡出效果。指定time即可。

[trans method=universal rule="rule1" vague=1 time=1500]
universal为外部图片使用,需要制定转换效果的图片。,须指定time,rule(转换效果的图片),vague
vague(不可省略):指定为0以上整数即可,表示领域值。
rule(不可省略):图片路径,用来表示图片的名称,前后要用引号。

[trans method=scroll from=right stay=false time=1500]
scroll:卷动效果。需要指定from,stay,time三个参数。
from(不可省略):基本输入为:left/right/top/bottom。分别为效果的起始位置:左,右,上,下。
stay(不可省略):表里层转换。基本输入为:stayfore/stayback/nostay。stayfore为外部开始卷动,stayback为内部开始卷动,nostay为两图一同卷动。




g.分歧选项
用于游戏中进行选择的场合,包括设置,剧情分歧,选择等等都会用到。指定进行跳跃的部分前一定要用*部分制定,具体如例。

基本代码:
[cm]
[link target=*select1]選択肢1[endlink][r]
[link target=*select2]選択肢2[endlink][r]
[link target=*select3]選択肢3[endlink][r]
[s]

*select1
[cm]
選択肢1が選択されました。[l]
[s]

*select2
[cm]
選択肢2が選択されました。[l]
[s]

*select3
[cm]
選択肢3が選択されました。[l]
[s]

代码说明:
link:选择效果代码。
target:跳跃的目的地。
endlink:结束跳跃。
s:文本停止。表示文本内容的一部分到此结束。

如果要跳跃的目的在其他的ks文件中,则需要加入storage="xxx.ks"参数,进行文件指定。





h.保存/读取
最常用的游戏进度保存/读取,很遗憾,吉里吉里2不支持随时保存的功能,所有的存储点都需要自己指定。

基本代码:
*label2|セーブ場所2
[cm]
ここはセーブ場所2[l][r]

*label3|セーブ場所3
[cm]
ここはセーブ場所3[l][r]

代码说明:
*:保存点的标记。
|:分隔符后面的内容是保存点说明。
*s1|第一天
保存后会看到说明显示:第一天。




i.游戏发布
先说明一个简单的方法,即压缩到一个exe文件中。
使用Releaser.exe,开启后直接指定游戏的制作目录,然后选择.exe方式压缩
指定好输出位置后确定即可。




j.config设置。
游戏许多的相关设置都在config.tjs中,打开修改即可。由于文件是日文jis码,所以先用南极星或IE等把全部内容改为可正常显示即可。

一些常用修改:

// ◆ タイトル(游戏标题)
// ウィンドウのキャプション(タイトル)および
// タスクバーに表示されるものです。
;System.title = "吉里吉里2(游戏标题,可随意修改)";



// ◆ 画面サイズ(游戏画面)
// scWidth に画面の幅、scHeight に画面の高さをピクセル単位で指定します。
// 標準的に使われている 640x480 や 800x600 のような画面サイズではないサイズ
// に設定すると、フルスクリーンにできない場合があります。
;scWidth = 640;
;scHeight = 480;



// ◆ 左右上下マージン(文字层的文字显示位置)
// マージン (余白) を pixel 単位で指定します。メッセージ枠用の画像を指定し
// た場合は、メッセージ枠の表示範囲内に設定する必要があります。
// これらは、position タグの marginl, maringt, marginr, marginb 属性に対応
// します。
;marginL = 4; // 左
;marginT = 4; // 上
;marginR = 4; // 右
;marginB = 4; // 下



// ◆ 初期位置(文字层的初期位置)
// これらは、position タグのそれぞれ left top width height の属性に対応しま
// す。
;ml = 0;  // 左端位置
;mt = 0;  // 上端位置
;mw = 640-0;  // 宽度
;mh = 480-0;  // 高度



// ◆ BGM再生メディア(音乐类型)
// type 変数に設定する文字列で、使用するサウンドバッファを決めることができ
// ます。
// "Wave"  : WaveSoundBuffer ( wav等(プラグインで再生できる物も含む) )
// "MIDI"  : MIDISoundBuffer ( mid,smf )
// "CDDA"  : CDDASoundBuffer ( cda )
;type = "Wave";
1

评分次数

    分享 转发
    TOP

    回复:吉里吉里2引擎简单教程1,初步的游戏制作篇

    CLANNAD KFC1000 Day Edition的确是用吉里吉里2制作的,吉里吉里和NSCR的压缩格式是完全不同的……

    这个是相对比较简单的基础说明,以后还会写更多的制作技巧……如果大家有什么需要的或者不明白也可以在这个帖子提出来,一起进行解决的
    TOP

    回复:吉里吉里2引擎简单教程1,初步的游戏制作篇

    是完全免费的,这点在和原作者沟通时已经得到了原作者的证实和同意,可以修改引擎的内核,也可以自由修改里面的文件,创作品可以用于任何用途,但引擎本体不能进行任何商业用途。

    AVG.NET……这个大概可以通过RPG.NET来实现吧……


    简体中文汉化的2.18版已经上传,以后有其他汉化界面的版本发布……
    不过仍然推荐使用新的2.24版进行制作,由于2.19版后系统上有较大变化,所以对旧版并不完全兼容。
    TOP

    回复:吉里吉里2引擎简单教程1,初步的游戏制作篇

    新上传了2.18汉化版的界面及窗口汉化文件,见首帖
    TOP

    回复:吉里吉里2引擎简单教程1,初步的游戏制作篇

    追加一个自定义名字的内容,以后松散的内容会贴在这里,为查找方便以后会单独整理的。

    *inputname    输入名字的代码
    [eval exp="f.name='KEY'"]    变数控制代码,定义主人公名字为"KEY"(默认)
    [input name=f.name prompt="我叫..." title="请输入自己的ID"]  定义一个输入名字的窗口
    ;----------------------------------------------------   
    ;ID叫主人公
    [if exp="f.name=='主人公'"]    条件分歧+变数控制,假如名字输入为:"主人公"
    [ct]                          得到反馈
    这个ID不能使用[p]              返回结果
    [jump target=*return_name]    返回重新输入
    [endif]                        结束分歧
    ;;----------------------------------------------------
    ;输入的名字过长               
    [if exp="f.name.length>10"]    假如名字输入的长度超过10个字符
    [ct]                          得到反馈
    ID请在10个字以内[p]            返回结果
    [jump target=*return_name]    返回重新输入
    [endif]                        结束分歧
    ;----------------------------------------------------
    [cm]               
    ID是[font color=0xff0080][emb exp=f.name][font color=default],这样可以吗?[r]          定义字体
    [delay speed=nowait]                                                                 
    [link target=*scene01]A.好的[endlink][r]                                            条件分歧:确定
    [link target=*inputname]B.换个名字[endlink]                                        条件分歧:否定
    [delay speed=user]                 
    [s]                                                                                  此内容结束
    ;--------------------------------------------
    *return_name                                                                          否定的结果
    [ct]
    [jump target=*inputname]                                                              返回重新输入
    [s]                                                                                  此内容结束


    以上内容代码涉及到了变数和其他内容,以后的新加部分会有详细解释……
    TOP

    回复:吉里吉里2引擎简单教程1,初步的游戏制作篇

    修正了原文的一些错误……对不起大家……

    音效部分的引号不强制
    剧本文件为first.ks
    TOP