THE NVL Maker

 找回密码
 注册
搜索
查看: 17260|回复: 8

[系统修改] 逐帧动画的定格、继续播放等效果

[复制链接]

23

主题

60

帖子

2

精华

游戏开发者

积分
70
发表于 2015-4-13 13:57:01 | 显示全部楼层 |阅读模式
例如一段逐帧动画,我想在动画的第一帧先定格,显示人物对话,然后播放逐帧动画,然后定格在最后一帧,继续对话,这样的效果该怎么弄呢?(我试过用第一帧替换人物立绘的方法,但是中间有个切换的过程,显得不连贯,用最后一帧替换人物立绘呢,却提前出现了。)
回复

使用道具 举报

16

主题

992

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1013
发表于 2015-4-14 09:39:08 | 显示全部楼层
动画可以在动画里面插入控制的。
有animstart, animstop, wa这些用来控制播放和停止。
然后如果你用的是那个逐帧插件的话,
[eval exp="animplayer_object.pause()"]<-暂停动画
[eval exp="animplayer_object.restart()"]<=继续动画

开始动画第一帧就暂停可以在        function onTimer()这个函数(AnimPlayer.ks)里面,                var filename=file+" ("+count+").png";后面加入一行:
if (count==0) pause();
然后再有就是如果你动画不设循环的话它会在最后一帧自动停下的。


回复

使用道具 举报

23

主题

60

帖子

2

精华

游戏开发者

积分
70
 楼主| 发表于 2015-4-14 16:28:53 | 显示全部楼层
D大如您所说,在插件里加入if (count==0) pause();确实可以停在任何一帧,但是不能继续播放了。
如果要随时控制暂停和播放要怎么做呢?
您所说的:[eval exp="animplayer_object.pause()"]<-暂停动画
[eval exp="animplayer_object.restart()"]<=继续动画
这个具体怎么操作啊?具体写在哪里呢?
回复

使用道具 举报

16

主题

992

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1013
发表于 2015-4-15 16:32:07 | 显示全部楼层
修改了一下那个插件

下面这些都是放在剧本里的。

开始动画(但不播放):
[animinit  file=xxx isplaying=false]
播放一帧后定格:
[animnext]
继续动画:
[animreplay]
手头没什么好的测试用图片,所以可能有错,有错再和我说_(:з」∠)_








本帖子中包含更多资源

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

x
回复

使用道具 举报

23

主题

60

帖子

2

精华

游戏开发者

积分
70
 楼主| 发表于 2015-4-15 22:17:51 | 显示全部楼层
感谢D大百忙抽时间解答小白问题,按您的方法,一切OK,完全没有问题,只是最后一帧不能停下,如果在插件里加入if (count==XXX) pause();,就可以解决,但是如果我的脚本有很多动画,怎么办呢?都会在指定的那一帧停下来吧?有 没有办法在剧本里控制停在某一帧呢?
回复

使用道具 举报

16

主题

992

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1013
发表于 2015-4-18 00:08:36 | 显示全部楼层
peterliu0010 发表于 2015-4-15 22:17
感谢D大百忙抽时间解答小白问题,按您的方法,一切OK,完全没有问题,只是最后一帧不能停下,如果在插件里加 ...

如果设置loop=false好像就会在最后一帧停下?如果不是的话再和我说,我改改。
回复

使用道具 举报

23

主题

60

帖子

2

精华

游戏开发者

积分
70
 楼主| 发表于 2015-4-18 11:35:40 | 显示全部楼层
D大终于回复了想必您很忙,打扰了。

已经设置loop=false,但是最后一帧没有停下来,麻烦你优化一下。

您知道我做的游戏以动画为主,属于动画版的电子小说类型,然后加些分支剧情增加玩家互动,所以我想把动画这一块做的精致些,为我们mvl发扬光大。
回复

使用道具 举报

16

主题

992

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1013
发表于 2015-4-18 19:13:05 | 显示全部楼层
peterliu0010 发表于 2015-4-18 11:35
D大终于回复了想必您很忙,打扰了。

已经设置loop=false,但是最后一帧没有停下来,麻烦你优化一下。

哦哦我看了下,把那个插件268行
dm("动画结束");
uninit();
这个地方的uninit();换成pause();应该就会在最后一帧自动停下了。
==============================================

或者:新传了一个插件,这个追加了endtarget参数。


用法是@animinit file=xxx endtarget=30 类似这样就会播放到编号为30的那帧以后停下。

本帖子中包含更多资源

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

x
回复

使用道具 举报

23

主题

60

帖子

2

精华

游戏开发者

积分
70
 楼主| 发表于 2015-4-18 20:30:57 | 显示全部楼层
感谢D大,问题已经完美解决了,谢谢您。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|nvlmaker

GMT+8, 2024-5-13 06:21 , Processed in 0.011860 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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