标题: R半身像对话技术 [打印本页]
作者:
普罗_puluo 时间: 2023-12-11 01:19 标题: R半身像对话技术
估计大部分人都玩过galgame,对半身像对话的剧情模式应该不陌生。对于作者懒得摆R形象 或者R剧情出场人数很少的作品,可以考虑使用半身像对话来代替R剧情。
[attach]149836[/attach]
要注意的是,这次我准备开辟一条新的技术路线:DLL静态注入技术。听名字好像很高大上,其实就是 我把功能写到了dll中,大家直接把dll接入exe即可,不需要大段大段抄代码了。
DLL注入是日后引擎发展的一个趋势,可以对引擎架构进行解耦(即把不同的功能分散到不同的DLL模块中,彼此之间互不干扰的设计)。因此本帖会对“dll注入”的具体方法做一个简单的介绍。
实装方法
首先发布一下dll文件:
[attach]149828[/attach]
将该文件放置到游戏目录中,然后打开Stud_PE,用该软件打开ekd5.exe,来到【函数】一栏:
[attach]149829[/attach]
如上图 在空白区域右键,选择【输入新的输入表】,dll选择DanTiao.dll,函数选择Chat,然后点【加入】:
[attach]149830[/attach]
加入成功后,在左侧可以看到DanTiao.dll,我们展开这一项,可以看到下图中箭头处有个数字,该数字+400000H称作外部函数指针,大家记住这个数字就好,后面有用。
[attach]149831[/attach]
接下来改一点汇编,改的内容非常少,6.2~6.4都是这样改(6.1及以下未测试):
004139A0 > \8B45 F4 mov eax,dword ptr ss:[ebp-C]
004139A3 . 8038 30 cmp byte ptr ds:[eax],30
004139A6 . 75 04 jnz short Ekd5.004139AC
004139A8 . 6A 01 push 1
004139AA . EB 02 jmp short Ekd5.004139AE
004139AC > 6A 00 push 0
004139AE > FF75 FC push dword ptr ss:[ebp-4]
004139B1 . FF75 F8 push dword ptr ss:[ebp-8]
004139B4 . FF75 F4 push dword ptr ss:[ebp-C]
004139B7 . FF15 14315400 call dword ptr ds:[543110] ; 这里的这个543110 就是上面说的外部函数指针,大家按照自己的情况填入该数值
[attach]149832[/attach]
现在引擎已经具备半身像对话的功能了。接下来讲一下剧本的写法,也非常简单:
[attach]149833[/attach]
第一行是说话人,取值1~2;
第二行开始是对话内容,目前对话框的尺寸最多支持两行。
然后说一下图片的要求,
首先需要建立一个BMP文件夹,每一个角色的头像名称为 data编号+“.bmp”,尺寸为192×272;每一个角色还需要一个暗掉的头像 名称为 data编号+"_.bmp";
然后需要往BMP文件夹放一个对话框图像,名称为border.bmp,尺寸为600×120。
示例:
[attach]149834[/attach]
(对话框图片取自【国风轶事】,因为没有获得公开授权,所以这里不会公开对话框的原图)
字体参数
本节为非必需项,如果想自定义文字风格的可以看一下。
用od打开dll,查找到以下地址:(如果找不到的话可以直接搜索二进制:6A 00 6A 00 6A 01 6A 02 6A 01 6A 00 6A 00 6A 00 68 90 01 00 00 6A 00 6A 00 6A F9 6A F0)
[attach]149835[/attach]
对于这些参数,可以查询https://learn.microsoft.com/zh-c ... -wingdi-createfonta,来获悉各个参数的意义并做修改,主要是字体高度和宽度可能需要修改,至于加粗、斜体、下划线个人不推荐用,影响观感。
更新前瞻
下一版本准备优化一下图片显示,尝试制作渐入渐出的效果;
尝试实现简易的gif半身像;
实现彩色文字 以及 文字显示整型变量数字的功能。
以上全是饼,现在需要测试当前版本是否稳定 以及是否有恶性bug,待初版完善后会继续更新上述的功能。
因为本人精力有限,测试不多,欢迎大家测试反馈bug
[ 本帖最后由 普罗_puluo 于 2023-12-22 02:33 编辑 ]
附件:
[半身像dll]
DanTiao.rar (2023-12-11 01:19, 25.38 K) / 该附件被下载次数 82
http://xycq.org.cn/forum/attachment.php?aid=149828
图片附件:
1.png (2023-12-11 01:25, 76.19 K) / 该附件被下载次数 32
http://xycq.org.cn/forum/attachment.php?aid=149829
图片附件:
2.png (2023-12-11 01:25, 87.81 K) / 该附件被下载次数 24
http://xycq.org.cn/forum/attachment.php?aid=149830
图片附件:
3.png (2023-12-11 01:25, 41.82 K) / 该附件被下载次数 21
http://xycq.org.cn/forum/attachment.php?aid=149831
图片附件:
4.png (2023-12-11 01:25, 122.33 K) / 该附件被下载次数 29
http://xycq.org.cn/forum/attachment.php?aid=149832
图片附件:
5.png (2023-12-11 01:25, 28.08 K) / 该附件被下载次数 74
http://xycq.org.cn/forum/attachment.php?aid=149833
图片附件:
6.png (2023-12-11 01:25, 214.87 K) / 该附件被下载次数 30
http://xycq.org.cn/forum/attachment.php?aid=149834
图片附件:
7.png (2023-12-11 01:25, 150.11 K) / 该附件被下载次数 27
http://xycq.org.cn/forum/attachment.php?aid=149835
图片附件:
8.png (2023-12-11 01:25, 381.42 K) / 该附件被下载次数 27
http://xycq.org.cn/forum/attachment.php?aid=149836
作者:
斑鸠凉 时间: 2023-12-11 09:46
普罗大大回来了呢~
作者:
ささきこじろう 时间: 2023-12-11 11:27
有点意思。
作者:
鲍三郎 时间: 2023-12-11 12:39
作者:
59054695 时间: 2023-12-11 14:20
我的天,你真是小天使啊!!!!
2020202020202020
作者:
star175 时间: 2023-12-11 15:16 标题: 回复 #1 普罗_puluo 的帖子
这种修改方法很有意思,以后换引擎就方便了
作者:
norton 时间: 2023-12-12 09:21
大佬们都回来了。看到希望了!
作者:
鲍三郎 时间: 2023-12-12 11:57
作者:
十里风波恶 时间: 2023-12-12 13:43
好哎
作者:
一流也 时间: 2023-12-12 20:18
原帖由 star175 于 2023-12-11 15:16 发表
这种修改方法很有意思,以后换引擎就方便了
6.3exe 和6.4exe可以再重发帖子吗?谢谢。
作者:
狂笑四海 时间: 2023-12-14 13:57
前些日子有想过类似橙光游戏剧情模式,写起来比较轻松。
请问为啥要多准备一张暗色的头像?
作者:
普罗_puluo 时间: 2023-12-14 23:45 标题: 回复 #11 狂笑四海 的帖子
两个人说话的时候,说话的人是亮的,没说话的人是暗的,这样可以很快速地区分出谁在说话。
作者:
狂笑四海 时间: 2023-12-16 00:45 标题: 回复 #12 普罗_puluo 的帖子
可是……如果当前场景人物超过2个呢?
作者:
普罗_puluo 时间: 2023-12-16 01:45 标题: 回复 #13 狂笑四海 的帖子
目前最多支持2人同屏,可以用对话2切换当前显示的角色。
当然增加到3人也完全可以,不过感觉容易扰乱视线,让人摸不清谁在发言
作者:
狂笑四海 时间: 2023-12-16 08:47 标题: 回复 #14 普罗_puluo 的帖子
我想问的是:同屏A和B两个人,如果A(或者B)不说话也有必要显示头像吗?
按之前引擎设定,谁说话就显示谁,是不是更好一点。
作者:
普罗_puluo 时间: 2023-12-16 15:37 标题: 回复 #15 狂笑四海 的帖子
可以,只要你使用【对话2】的时候,把另一个人设置成无就好了。
不过对话2的第一行依旧要标注说话人是1还是2
作者:
狂笑四海 时间: 2023-12-18 01:53 标题: 回复 #16 普罗_puluo 的帖子
谢谢解答,基本明白了。在指令15中1和2两个位置不指定人物,则不会显示头像。
其实用这个办法也不用准备暗色头像图片了吧?
作者:
普罗_puluo 时间: 2023-12-18 12:26 标题: 回复 #17 狂笑四海 的帖子
如果全程都是单头像对话的话 就不需要暗色头像了。
[attach]149843[/attach]
占楼传个头像(逃
[ 本帖最后由 普罗_puluo 于 2023-12-22 02:37 编辑 ]
图片附件:
tx.jpg (2023-12-22 02:36, 55.24 K) / 该附件被下载次数 21
http://xycq.org.cn/forum/attachment.php?aid=149843
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) |
Powered by Discuz! 5.0.0 |