RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 319|回复: 1

[转载] Ren'Py引擎从入门到放弃(支线6)——还在探索阶段的Live2D

[复制链接]
发表于 2019-6-28 18:46:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 BuErShen 于 2019-6-28 18:48 编辑

Ren'Py引擎从入门到放弃(支线6)——还在探索阶段的Live2D

世上无难事,只要肯放弃。

支线系列是独立于基础之外的内容,会引用一些外部平台大佬的内容,感觉有困难的同学可以暂时不(fang)看(qi)。

本篇内容讲解 asfdfdfd于2018年8月,在GitHub上新建的 renpy-live2d 项目。作用是尝试在 Ren'Py中引入通用的 Live2D资源。请善用各种搜索引擎,尤其是墙外的,可以解决大部分疑问。若遇到疑难问题可私信,但我不保证一定能解决。

第一个问题:Live2D是什么?

答:百度知道。Live2D有两个大的分支:Cubism 和 Euclid。Cubism本质是2D图像网格变形,Euclid 则引入了3D建模(据说由于定位跟主流3D引擎重合度太大所以黄了)。renpy-live2d项目使用的是Cubism。

第二个问题:如何安装和配置 renpy-live2d ?

答:先给项目链接……

GitHub - asfdfdfd/renpy-live2d: Live2D module for RenPy

readme文件里有介绍如何使用。简单翻译一下:

  • 先去下载 release 的压缩文件。当前最新版本是0.0.3(2019年5月17日提交),所以下载 renpy-live2d-v0.0.3.zip 文件。
  • 然后把zip包中的内容(一个live2d目录)解压到自己项目的 game 目录下。
  • 下载 Cubism的原生SDK并替换刚才解压的 live2d/CubismSDK/Core 同名目录下的内容。

我下载的是原生SDK版本是Cubism3SDKforNative-beta12。说是替换,其实原来的Core目录里除了一个空文件什么东西都没有……

安装说明后面,项目创建者写了一段使用样例。
[RenPy] 纯文本查看 复制代码
define h = Character("Hiyori")

init python:
    from live2d.displayable import Live2DDisplayable
    from renpy.loader import transfn

    sprite_live2d = Live2DDisplayable()

init:
    image sprite_live2d = sprite_live2d

label start:

    show sprite_live2d

    $ live2d_model_hiyori = sprite_live2d.scene.create_model(transfn(u'live2d_resources/Hiyori/'), u'Hiyori.model3.json')

    $ live2d_model_hiyori.start_random_motion(group = u"Idle", priority = 3)

    h "You've created a new Ren'Py game."

    $ live2d_model_hiyori.start_motion(group = u"TapBody", no = 0, priority = 3)

    h "Once you add a story, pictures, and music, you can release it to the world!"

    return

我们可以新建一个空的工程,然后把样例代码复制进 script.rpy 中直接运行……当然是会报错的~因为我们的工程里没有对应的资源文件——Hiyori(日语好像是“日和”)。资源文件也在刚才下载的CubismSDK中,路径是 Cubism3SDKforNative-beta12\Samples\Res 。总共有4个角色,在 game 目录下建个 live2d_resources 子目录并把角色的资源都放进去。最后运行工程就能看到日和同学了(与样例不同,我把背景改成了白色)。
与样例不同,我把背景改成了白色.jpg

第三个问题:怎样指定角色的动作?

答:renpy-live2d项目的创建者提供在PyLAppModel类中定义了两个函数:
[RenPy] 纯文本查看 复制代码
cdef class PyLAppModel:

    ...
        
    # TODO: Return CubismMotionQueueEntryHandle.
    def start_motion(self, unicode group, no, priority):
        self.thisptr.StartMotion(group.encode("UTF-8"), no, priority)

    # TODO: Return CubismMotionQueueEntryHandle.        
    def start_random_motion(self, unicode group, priority):
        self.thisptr.StartRandomMotion(group.encode("UTF-8"), priority)

设计的意图可能是用这俩函数指定角色动作的组(group)或某个组的动作编号。但貌似还没完成……现在角色默认所有动作循环播放……希望会有更新。

广告部分:有问题可以私信我。优先推荐“RenPy中文空间”论坛,技术讨论区一般都会有人解答。疑难解答 板块好像是相对最活跃的了。




“Ren'Py引擎从入门到放弃”系列教程



发表于 2019-7-14 21:44:59 | 显示全部楼层
试验了一下,能够正常显示live2d人物。存在很多问题:1)人物太小了。2)如果多次执行这段代码,会重复生成多个sprite(日和小姐),晃动起来,如同千手观音。很费劲啊,做游戏就是费力不讨好啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号 | 苏公网安备 32092302000068号 )

GMT+8, 2019-8-26 01:53 , Processed in 0.102303 second(s), 27 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表