设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1410|回复: 1
打印 上一主题 下一主题

[有事请教] 非SV模式下,分段伤害怎么持续显示?

[复制链接]

Lv2.观梦者

梦石
0
星屑
447
在线时间
58 小时
注册时间
2021-10-20
帖子
40
跳转到指定楼层
1
发表于 2021-11-24 00:20:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
就是连续攻击次数哪里,怎么样才能做到在动画的过程中就持续显示伤害了,而是等动画结束了才一起出来。
最近用了MOGBATTLEHUD插件,发现怪用技能打人是分段伤害显示的,但是人打怪还是等技能结束了才出伤害。
另外有没有加强打击感的插件呢?麻烦介绍一下,谢谢各位大佬

Lv3.寻梦者

梦石
0
星屑
1075
在线时间
133 小时
注册时间
2019-5-1
帖子
59
2
发表于 2021-11-25 11:22:12 | 只看该作者
本帖最后由 chinx 于 2021-11-25 19:04 编辑

你想要的这种分段伤害显示,目前有2个比较推荐的方法可以支持:
一是用moghunter(MOG)的动画闪光伤害,也就是说,只要动画发生闪光,就跳伤害,也可以配置什么情形下生效、调低闪光强度降低画面污染提高观感。但这个插件似乎有一些问题我不太记得了。
二是用yanfly(YEP)的战斗行动序列插件,亲自编排什么时候第几帧执行什么动作,第几帧发生伤害,综合演出效果最好但学习成本较高。

第二个问题关于打击感,说它是玄学也没毛病,这完全是靠自己的理解了,因为打击感这种东西,事实上是行动产生的结果的反馈,
这些结果包括了画面闪烁、晃动、音效声场响度的变化配合、所有动作嵌合的精准程度、帧速率的迟滞/加速变化等等。
目前看来MV还没有现成的插件可以做到这些全部内容。你可以先从震动入手(yanfly的行动序列3插件会导致震动只能横向晃动,Y轴需要自己修改插件)。


顺便提一下,我个人修改YEP_X_ActSeqPack3.js以支持Y轴震动的方法如下,供参考:

JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // Spriteset_Battle
  3. //=============================================================================
  4.  
  5. Yanfly.ASP3.Game_Screen_prototype_startShake = Game_Screen.prototype.startShake;
  6. Game_Screen.prototype.startShake = function(power, speed, duration){
  7.         Yanfly.ASP3.Game_Screen_prototype_startShake.call(this, power, speed, duration);
  8.         this._randomRateX = [-1, 0, 1][Math.randomInt(3)];
  9.         this._randomRateY = [-1, 0, 1][Math.randomInt(3)];
  10. };
  11.  
  12. Spriteset_Battle.prototype.updatePosition = function() {
  13.     var zoom = $gameScreen.zoomScale();
  14.     var clamp = BattleManager.cameraClamp();
  15.     this.scale.x = zoom;
  16.     this.scale.y = zoom;
  17.     var screenX = -1 * $gameScreen.zoomX() * zoom + Graphics.boxWidth / 2;
  18.     var screenY = -1 * $gameScreen.zoomY() * zoom + Graphics.boxHeight / 2;
  19.     if (clamp && zoom >= 1.0) {
  20.       var clampX1 = -Graphics.boxWidth * zoom + Graphics.boxWidth;
  21.       var clampY2 = -Graphics.boxHeight * zoom + Graphics.boxHeight;
  22.       this.x = Math.round(screenX.clamp(clampX1, 0));
  23.       this.y = Math.round(screenY.clamp(clampY2, 0));
  24.     } else if (clamp && zoom < 1.0) {
  25.       this.x = Math.round((Graphics.boxWidth - Graphics.boxWidth * zoom) / 2);
  26.       this.y = Math.round((Graphics.boxHeight - Graphics.boxHeight * zoom) / 2);
  27.     } else {
  28.       this.x = Math.round(screenX);
  29.       this.y = Math.round(screenY);
  30.     }
  31.     if($gameScreen._shakeDuration % 10 == 0){
  32.             $gameScreen._randomRateX = [-1, 0, 1][Math.randomInt(3)];
  33.             $gameScreen._randomRateY = [-1, 0, 1][Math.randomInt(3)];
  34.     }
  35.     this.x += Math.round($gameScreen.shake()*($gameScreen._randomRateX || 1));
  36.     this.y += Math.round($gameScreen.shake()*($gameScreen._randomRateY || 1));//震动加Y轴
  37. };

评分

参与人数 1+1 收起 理由
edchgl + 1 感谢大佬

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 17:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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