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

Project1

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

[已经解决] 求大神指点一个脚步声的脚本【已解决】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2015-5-15
帖子
15
跳转到指定楼层
1
发表于 2016-8-23 14:54:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 nan4295 于 2016-8-24 16:41 编辑

之前用事件做脚步声,但是不能识别地块,而且事件的脚步声走到墙边 不松按键的话   声音会一直持续。。。

所以求大神指点一个类似于VA版本里那个能识别地块 变换脚步声的脚本,万分感谢!!!

Lv2.观梦者

梦石
0
星屑
311
在线时间
204 小时
注册时间
2007-2-4
帖子
1817
2
发表于 2016-8-23 15:33:28 | 只看该作者
本帖最后由 玄天 于 2016-8-23 15:43 编辑

搭配区域(R)不就得了。
变量里取得角色所在的区域,然后根据区域播放不同的声音。

大致思路如下:


中略其他类型的脚步声设置




实际上还能用脚本的方式更加简略播放音效的判断,这样页面就不会太长。不过这里没做就是了。

这里的重点是两个脚本的条件分歧

JAVASCRIPT 代码复制
  1. $gamePlayer.isMoving()

这是判断玩家角色是否在移动

JAVASCRIPT 代码复制
  1. $gamePlayer.isDashing()

这是判断玩家角色是否在奔跑

简单来说,这个事件脚步声的原理就是检测到玩家在移动的时候就播放SE,如果这样就不会有按着键还会一直发声的问题。因为角色碰到墙壁停止移动自然就不执行内容。
然后取得玩家所在地的区域ID(R),根据设置好的区域ID来播放不同的声音,就能实现踩沙地跟踩草地是不同声音的效果了。

重点是最后必须要加个等待,不然SE的播放会相当鬼畜。截图里的等待时间是我实测觉得最恰当的,当然你可以根据自己的感觉改动。


说实话我也找到几个脚步声插件,但是都发现限制性太大。很多插件都只限制你用1个或者3~5个脚步声SE,像我这里的情况有8个,你要做全8个就得手动修改脚本,比较没自由度。所以我觉得用事件做脚步声通常而言更加实惠,自由度也更大。就是可能执行效率上没插件那么高就是了(毕竟要另外设一个并行处理事件)。
新しい誕生祝いだッ!
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
23068
在线时间
8648 小时
注册时间
2011-12-31
帖子
3367
3
发表于 2016-8-23 16:03:12 | 只看该作者
本帖最后由 tseyik 于 2016-8-23 16:20 编辑

文件名+地形ID
予設文件名: foot_
  1. //=============================================================================
  2. // PD_FootStepSound.js
  3. //=============================================================================

  4. /*:
  5. * @plugindesc Add to sound of player character footsteps.
  6. * @author Shio_inu
  7. *
  8. * @help 面倒なので誰か代わりに翻訳して。
  9. * last update : 29th Dec 2015 v1.0
  10. *
  11. * @param File Name
  12. * @desc ファイル名です。「ここに入力したファイル名+地形タグ」のファイルが再生されます。
  13. * @default foot_
  14. */

  15. /*:ja
  16. * @plugindesc プレイヤーの移動に合わせて足音を再生するプラグインです。
  17. * @author しおいぬ
  18. *
  19. * @help 地形タグによって再生される足音が変化します。
  20. * last update : 2015/12/29 v1.0
  21. *
  22. * @param File Name
  23. * @desc ファイル名です。「ここに入力したファイル名+地形タグ」のファイルが再生されます。
  24. * @default foot_
  25. */
  26. (function(){

  27.     var parameters = PluginManager.parameters('PD_FootStepSound');
  28.     var fileName = String(parameters['File Name'] || "foot_");


  29.     var updatePlayer = Game_Player.prototype.update;
  30.     Game_Player.prototype.update = function(sceneActive) {
  31.         updatePlayer.call(this, sceneActive);
  32.         

  33.         if(!this._prevpattern){
  34.             this._prevpattern = this.pattern();
  35.         }

  36.         if(this._prevpattern != this.pattern() && !this.isInVehicle()){
  37.             var id = $gameMap.terrainTag(this._x, this._y);
  38.             if(this.pattern() != 1){
  39.                 var seObj = {"name":fileName + id,"volume":90,"pitch":100 + (10 * this.pattern()),"pan":0};
  40.                 AudioManager.playSe(seObj);
  41.             }
  42.             
  43.         }

  44.         this._prevpattern = this.pattern();
  45.     };
  46. })();
复制代码

另一個
MV Map Animation Effects(以區域ID指定行走事件(一般在事件指定音効,附加動画(如足印))有示範下載
https://galvs-scripts.com/catego ... -effects/#post-1503
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2015-5-15
帖子
15
4
 楼主| 发表于 2016-8-24 16:39:13 | 只看该作者
玄天 发表于 2016-8-23 15:33
搭配区域(R)不就得了。
变量里取得角色所在的区域,然后根据区域播放不同的声音。

用了亲的方法 果然完美解决了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2015-5-15
帖子
15
5
 楼主| 发表于 2016-8-24 16:40:27 | 只看该作者
tseyik 发表于 2016-8-23 16:03
文件名+地形ID
予設文件名: foot_

谢谢大大的回复 但是这个网站的东西我都没法下载,很可惜的说……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 01:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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