Project1

标题: 如何无缝替换行走图 [打印本页]

作者: 康姆图帕帕    时间: 2018-11-11 21:47
标题: 如何无缝替换行走图
MV默认更改行走图时会重置行走图的pattern,有什么脚本或者方案能够使新行走图延续当前行走图的pattern数值吗?
想做人物在行走中的眨眼效果。
作者: 康姆图帕帕    时间: 2018-11-12 00:06
无论更改图片index还是更换新图片,都会导致角色的pattern值刷新
作者: wabcmcc    时间: 2018-11-12 01:10
用圖片替換,感覺如何.


作者: 康姆图帕帕    时间: 2018-11-12 01:19
wabcmcc 发表于 2018-11-12 01:10
用圖片替換,感覺如何.

谢答,不过你给的这个范例里,人物行走动画和闭眼动画也是不能共存的?
我给玩家角色做了两套行走图,一套睁眼的一套闭眼的,想利用并行事件,在任何时候随机将角色睁眼的行走图替换成闭眼的,以创造出眨眼的效果。
然而没用,换上新图片会重置pattern

作者: wabcmcc    时间: 2018-11-12 02:33
本帖最后由 wabcmcc 于 2018-11-12 02:37 编辑

用"多幀行走"腳本加改版行走圖.



More Character Frames.js



作者: 康姆图帕帕    时间: 2018-11-12 11:42
wabcmcc 发表于 2018-11-12 02:33
用"多幀行走"腳本加改版行走圖.

有劳了~不过我目前用的就是4行8帧的行走图,以及,为了更强的表现力,我想让眨眼帧的出现随机化,而不是固定出现在行走图的某一帧。现在还在努力研究。
作者: yang1zhi    时间: 2018-11-12 12:37
似乎不会改变pattern
pattern的改变可能不是这个原因。

Game_CharacterBase.prototype.setImage = function(characterName, characterIndex) {
    this._tileId = 0;
    this._characterName = characterName;
        this._yuan_characterName = this._yuan_characterName || characterName
    this._characterIndex = characterIndex;
    this._isObjectCharacter = ImageManager.isObjectCharacter(characterName);
};


作者: 康姆图帕帕    时间: 2018-11-12 13:12
yang1zhi 发表于 2018-11-12 12:37
似乎不会改变pattern
pattern的改变可能不是这个原因。

会不会是这里,总是刷新pattern的值为1
Game_CharacterBase.prototype.updateAnimation = function() {
    this.updateAnimationCount();
    if (this._animationCount >= this.animationWait()) {
        this.updatePattern();
        this._animationCount = 0;
    }
};

以及this._yuan_characterName = this._yuan_characterName || characterName是什么...
作者: soulsaga    时间: 2018-11-12 13:12
本帖最后由 soulsaga 于 2018-11-12 13:22 编辑

pattern是什么..

都是走完一格才会换图的..你想不站立都难..
你需要的是待机行走图动画
作者: 康姆图帕帕    时间: 2018-11-12 13:28
本帖最后由 康姆图帕帕 于 2018-11-12 13:31 编辑
soulsaga 发表于 2018-11-12 13:12
pattern是什么..

都是走完一格才会换图的..你想不站立都难..


这样么...
那我可能要全角色图片化表示了


以及待机行走图动画已经用着呢,不过是表示人物的呼吸动作的。
要是纸娃娃图像可拆分执行就好了

作者: xiaohuangdi    时间: 2018-11-12 13:30
并什么行???
NPC移动方式是在;  自主移动-类型-路线
随机移动,随机移动,随机移动, 切换眨眼睛行走图,开启踏步动画,等待20帧,关闭踏步动画,等待120帧,切换正常行走图 [循环]
作者: soulsaga    时间: 2018-11-12 13:52
本帖最后由 soulsaga 于 2018-11-12 14:00 编辑

玩家的不是正常么..
这里会RESETPattern为1

Game_CharacterBase.prototype.updatePattern = function() {
    if (!this.hasStepAnime() && this._stopCount > 0) {
        this.resetPattern();
    } else {
        this._pattern = (this._pattern + 1) % this.maxPattern();
    }
};

FBS2.gif (403.07 KB, 下载次数: 34)

FBS2.gif

作者: 康姆图帕帕    时间: 2018-11-12 14:06
soulsaga 发表于 2018-11-12 13:52
玩家的不是正常么..
这里会RESETPattern为1

是的啊,每次更换角色的图片或者index都会重置pattern为1
不能让新图片继承原图片的pattern吗
作者: soulsaga    时间: 2018-11-12 14:07
康姆图帕帕 发表于 2018-11-12 14:06
是的啊,每次更换角色的图片或者index都会重置pattern为1
不能让新图片继承原图片的pattern吗 ...

你注译掉this.resetPattern();这行看看..
作者: 康姆图帕帕    时间: 2018-11-12 14:29
本帖最后由 康姆图帕帕 于 2018-11-12 15:01 编辑

好像找到原因了...还是在mog_charposes里..

Game_Character.prototype.setCharacterFrames = function() {
        this.clearCharacterFrames();
        var frames = this._characterName.match(/(\(F(\d+\.*\d*))/i)
        if (frames) {
           this._frames.enabled = true;//检测到多帧图片会打开这个

        if (this._frames.enabled) {this._pattern = 0};
        this._pattern = this._frames.enabled ? 0 : 1;//重置帧
};

//==============================
// * is Original Pattern  静止帧
//==============================
Game_CharacterBase.prototype.isOriginalPattern = function() {
        var orgPattern = this._frames.enabled ? 0 : 1;
    return this.pattern() === orgPattern;
};

//==============================
// * Pattern  帧循环
//==============================
Game_CharacterBase.prototype.pattern = function() {
        var pattern = this._frames.enabled ? [this._frames.max,0] : [3,1];
    return this._pattern < pattern[0] ? this._pattern : pattern[1];
};

//==============================
// * reset Pattern  帧重置
//==============================
Game_CharacterBase.prototype.resetPattern = function() {
        var initPattern = this._frames.enabled ? 0 : 1;
    this.setPattern(initPattern);
};

不知道改哪个....

MOG_CharPoses.zip

6.01 KB, 下载次数: 44


作者: 康姆图帕帕    时间: 2018-11-12 14:56
本帖最后由 康姆图帕帕 于 2018-11-12 14:59 编辑
soulsaga 发表于 2018-11-12 14:07
你注译掉this.resetPattern();这行看看..


动图不好搞
这个是随机替换角色图像的并行事件



这是待机时的帧动画

可以看到每当角色的图片(亮)被替换(暗)或者换回来时,pattern就会自动回归到1了
作者: 康姆图帕帕    时间: 2018-11-12 16:46
删去了以下代码
        if (this._frames.enabled) {this._pattern = 0};
        this._pattern = this._frames.enabled ? 0 : 1;
问题似乎解决了,目前还不清楚这种简单粗暴的处理方式会带来其他什么不可知的bug
作者: tseyik    时间: 2018-11-12 17:47
Spriter Plugin
https://forums.rpgmakerweb.com/i ... riter-plugin.90340/
介紹
允許用戶使用Spriter Pro保存文件和sprite部件用於骨架動畫

特徵

    使用Spriter,可以輕鬆創建具有精靈部分的功能性,流暢,富有表現力的動畫, 而無需創建大量的精靈表 。
    此外,Spriter插件允許您操縱新的Spriter精靈,並為它們提供如下特殊功能:
        以慢速或快進方式移動精靈。
        更改精靈的位圖,以便使用不同的視覺角色完成相同的動畫。
        示例:將皮膚設置從男性更改為女性,執行完全相同的動作。
        更改/添加現有動畫的新部件。
        示例: 為角色添加帽子 / 更改角色的頭髮 。
        根據動畫週期添加聲音效果 。
        例子:足跡,每當角色的腳落地時。
作者: 梦想家大魔王    时间: 2018-11-12 18:11
你研究一下用骨骼动画吧,这个可以实现你的要求。
作者: 左羊tgbt    时间: 2023-5-21 15:58
wabcmcc 发表于 2018-11-12 02:33
用"多幀行走"腳本加改版行走圖.

请问下这个插件有汉化版的吗




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1