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

Project1

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

[已经解决] 怎样增加行走图的帧数

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2044
在线时间
758 小时
注册时间
2013-7-3
帖子
127
跳转到指定楼层
1
发表于 2015-8-19 12:34:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 RyanBern 于 2015-8-19 14:55 编辑

光看字面你们可能看不懂。
【附件已移除,请重新上传 -- By RyanBern】
这是我的工程打开看的话你就会看出来。
行走图有20帧 ,可动画里只有4帧该怎么改那?

点评

我靠!不小心手贱,按了一下【标记解决】惨了!!  发表于 2015-8-19 13:04

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 塞糖

查看全部评分

签名什么的?呵呵

Lv1.梦旅人

梦石
0
星屑
60
在线时间
705 小时
注册时间
2007-12-23
帖子
874
2
发表于 2015-8-19 13:48:56 | 只看该作者
用photoshop取大小相等的分别代表“直立、左脚、直立、右脚”的四桢从左到右摆放,然后从上到下4行分别是下、左、右、上四个方向即可。

本来想帮你做的,结果你的压缩包被360报毒了。


当然也有可能是误报,可是我已经不想打开的,LZ最好解决一下这个问题。

点评

天哪 大爷行行好就帮我看看吧。真的没毒啊!  发表于 2015-8-19 14:42
天哪 大爷行行好就帮我看看吧。真的没毒啊!  发表于 2015-8-19 14:40
买了正版RMMV的同学进来看一下,谢谢~
https://rpg.blue/thread-393237-1-1.html
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2044
在线时间
758 小时
注册时间
2013-7-3
帖子
127
3
 楼主| 发表于 2015-8-19 13:52:36 | 只看该作者
gonglinyuan 发表于 2015-8-19 13:48
用photoshop取大小相等的分别代表“直立、左脚、直立、右脚”的四桢从左到右摆放,然后从上到下4行分别是下 ...

这?不可能绝对没有病毒360报的不准确啊!

点评

我这是新建的工程啊 怎么中的毒?而且我发的工程根本没有所谓dll文件呐  发表于 2015-8-20 10:01
如果不是Game.exe的问题也很有可能是dll出的问题。  发表于 2015-8-19 16:32
我觉得杀毒比解决这个问题要重要。你看看你的Game.exe是不是68KB,如果大于68KB说明这个文件已经注入了病毒了,你的电脑上其它EXE也很可能被感染。  发表于 2015-8-19 16:31
额,难道是我的电脑中毒了?不行我得杀杀毒才行了。  发表于 2015-8-19 16:14
Nod32报毒,附件已移除,请重新上传素材和脚本  发表于 2015-8-19 14:54
签名什么的?呵呵
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

4
发表于 2015-8-19 22:01:27 | 只看该作者
在脚本【Sprite_Character】里面,
找到“@cw = bitmap.width / 4”(←默认47行)
把这里面的4改成你行走图的横向帧数就好。

点评

干得漂亮~  发表于 2015-8-20 13:46
不对应该是改@pattern = (@pattern + 1) % 4为@pattern = (@pattern + 1) % 20才对  发表于 2015-8-20 10:16
@pattern = (@pattern + 1) %  发表于 2015-8-20 10:15

评分

参与人数 1星屑 +90 收起 理由
RyanBern + 90 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3175
在线时间
3617 小时
注册时间
2009-4-4
帖子
4154

开拓者

5
发表于 2015-8-20 12:00:52 | 只看该作者
这个用法的话,就是在你的行走图文件后面,
比如说001-Fighter01有3帧,就把它的文件名改成001-Fighter01[3],有7帧就把文件名改成001-Fighter01[7]
如果后面不加中括号的话,默认是4帧。
  1. #==============================================================================
  2. # 移動パターン増加 Ver 1.00
  3. # 配布元・サポートURL
  4. # By COGHWELL
  5. # http://members.jcom.home.ne.jp/cogwheel/
  6. #==============================================================================
  7. # Translated by Calvin624
  8. # http://www.xasabs.wordpress.com
  9. #===============================================================================
  10. ###############################-DESCRIPTION-####################################
  11. #===============================================================================
  12. # To define the amount of frames an image has simply edit the image name
  13. # as shown below:
  14. # Example[X].png
  15. #
  16. # Where X is the amount of frames
  17. #==============================================================================

  18. #==============================================================================
  19. # ■ Game_Character (分割定義 2)
  20. #------------------------------------------------------------------------------
  21. #  キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event
  22. # クラスのスーパークラスとして使用されます。
  23. #==============================================================================

  24. class Game_Character
  25.   #--------------------------------------------------------------------------
  26.   # ● フレーム更新
  27.   #--------------------------------------------------------------------------
  28.   def update
  29.     # ジャンプ中、移動中、停止中で分岐
  30.     if jumping?
  31.       update_jump
  32.     elsif moving?
  33.       update_move
  34.     else
  35.       update_stop
  36.     end
  37.     # アニメカウントが最大値を超えた場合
  38.     # ※最大値は、基本値 18 から移動速度 * 1 を引いた値
  39.     # ファイル名に[n]が入っている場合、通常の(n-1)/4の速度でパターン更新
  40.     if @character_name[/\[(\d+)\]/]
  41.       @anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
  42.       if @anime_count * ($1.to_i - 1) / 4 > 18 - @move_speed * 2
  43.         # 停止時アニメが OFF かつ 停止中の場合
  44.         if not @step_anime and @stop_count > 0
  45.           # パターンをオリジナルに戻す
  46.           @pattern = @original_pattern
  47.         # 停止時アニメが ON または 移動中の場合
  48.         else
  49.           # パターンを更新
  50.           @pattern = @pattern % ($1.to_i - 1) + 1
  51.         end
  52.         # アニメカウントをクリア
  53.         @anime_count = 0
  54.       end
  55.     else
  56.     # 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
  57.       if @anime_count > 18 - @move_speed * 2
  58.         # 停止時アニメが OFF かつ 停止中の場合
  59.         if not @step_anime and @stop_count > 0
  60.           # パターンをオリジナルに戻す
  61.           @pattern = @original_pattern
  62.         # 停止時アニメが ON または 移動中の場合
  63.         else
  64.           # パターンを更新
  65.           @pattern = (@pattern + 1) % 4
  66.         end
  67.         # アニメカウントをクリア
  68.         @anime_count = 0
  69.       end
  70.     end
  71.     # ウェイト中の場合
  72.     if @wait_count > 0
  73.       # ウェイトカウントを減らす
  74.       @wait_count -= 1
  75.       return
  76.     end
  77.     # 移動ルート強制中の場合
  78.     if @move_route_forcing
  79.       # カスタム移動
  80.       move_type_custom
  81.       return
  82.     end
  83.     # イベント実行待機中またはロック状態の場合
  84.     if @starting or lock?
  85.       # 自律移動はしない
  86.       return
  87.     end
  88.     # 停止カウントが一定の値 (移動頻度から算出) を超えた場合
  89.     if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
  90.       # 移動タイプで分岐
  91.       case @move_type
  92.       when 1  # ランダム
  93.         move_type_random
  94.       when 2  # 近づく
  95.         move_type_toward_player
  96.       when 3  # カスタム
  97.         move_type_custom
  98.       end
  99.     end
  100.   end
  101. end

  102. #==============================================================================
  103. # ■ Sprite_Character
  104. #------------------------------------------------------------------------------
  105. #  キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを
  106. # 監視し、スプライトの状態を自動的に変化させます。
  107. #==============================================================================

  108. class Sprite_Character < RPG::Sprite
  109.   #--------------------------------------------------------------------------
  110.   # ● フレーム更新
  111.   #--------------------------------------------------------------------------
  112.   def update
  113.     super
  114.     # タイル ID、ファイル名、色相のどれかが現在のものと異なる場合
  115.     if @tile_id != @character.tile_id or
  116.        @character_name != @character.character_name or
  117.        @character_hue != @character.character_hue
  118.       # タイル ID とファイル名、色相を記憶
  119.       @tile_id = @character.tile_id
  120.       @character_name = @character.character_name
  121.       @character_hue = @character.character_hue
  122.       # タイル ID が有効な値の場合
  123.       if @tile_id >= 384
  124.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  125.           @tile_id, @character.character_hue)
  126.         self.src_rect.set(0, 0, 32, 32)
  127.         self.ox = 16
  128.         self.oy = 32
  129.       # タイル ID が無効な値の場合
  130.       else
  131.         self.bitmap = RPG::Cache.character(@character.character_name,
  132.           @character.character_hue)
  133.         # ファイル名に[n]が入っている場合、パターン数を横:n, 縦:4とみなす
  134.         if @character.character_name[/\[(\d+)\]/]
  135.           @cw = bitmap.width / $1.to_i
  136.           @ch = bitmap.height / 4
  137.         # ファイル名に[D]が入っていない場合、通常通り横:4, 縦:4とする
  138.         else
  139.           @cw = bitmap.width / 4
  140.           @ch = bitmap.height / 4
  141.         end
  142.         self.ox = @cw / 2
  143.         self.oy = @ch
  144.       end
  145.     end
  146.     # 可視状態を設定
  147.     self.visible = (not @character.transparent)
  148.     # グラフィックがキャラクターの場合
  149.     if @tile_id == 0
  150.       # 転送元の矩形を設定
  151.       sx = @character.pattern * @cw
  152.       sy = (@character.direction - 2) / 2 * @ch
  153.       self.src_rect.set(sx, sy, @cw, @ch)
  154.     end
  155.     # スプライトの座標を設定
  156.     self.x = @character.screen_x
  157.     self.y = @character.screen_y
  158.     self.z = @character.screen_z(@ch)
  159.     # 不透明度、合成方法、茂み深さを設定
  160.     self.opacity = @character.opacity
  161.     self.blend_type = @character.blend_type
  162.     self.bush_depth = @character.bush_depth
  163.     # アニメーション
  164.     if @character.animation_id != 0
  165.       animation = $data_animations[@character.animation_id]
  166.       animation(animation, true)
  167.       @character.animation_id = 0
  168.     end
  169.   end
  170. end


  171. # ついでにメニュー画面でパターンが多いグラフィックを使用した場合の表記変更

  172. #==============================================================================
  173. # ■ Window_Base
  174. #------------------------------------------------------------------------------
  175. #  ゲーム中のすべてのウィンドウのスーパークラスです。
  176. #==============================================================================

  177. class Window_Base < Window
  178.   #--------------------------------------------------------------------------
  179.   # ● グラフィックの描画
  180.   #     actor : アクター
  181.   #     x     : 描画先 X 座標
  182.   #     y     : 描画先 Y 座標
  183.   #--------------------------------------------------------------------------
  184.   def draw_actor_graphic(actor, x, y)
  185.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  186.     if actor.character_name[/\[(\d+)\]/]
  187.       cw = bitmap.width / $1.to_i
  188.       ch = bitmap.height / 4
  189.     else
  190.       cw = bitmap.width / 4
  191.       ch = bitmap.height / 4
  192.     end
  193.     src_rect = Rect.new(0, 0, cw, ch)
  194.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  195.   end
  196. end

  197. #==============================================================================
  198. # ■ Window_SaveFile
  199. #------------------------------------------------------------------------------
  200. #  セーブ画面およびロード画面で表示する、セーブファイルのウィンドウです。
  201. #==============================================================================

  202. class Window_SaveFile < Window_Base
  203.   #--------------------------------------------------------------------------
  204.   # ● リフレッシュ
  205.   #--------------------------------------------------------------------------
  206.   def refresh
  207.     self.contents.clear
  208.     # ファイル番号を描画
  209.     self.contents.font.color = normal_color
  210.     name = "File #{@file_index + 1}"
  211.     self.contents.draw_text(4, 0, 600, 32, name)
  212.     @name_width = contents.text_size(name).width
  213.     # セーブファイルが存在する場合
  214.     if @file_exist
  215.       # キャラクターを描画
  216.       for i in [email protected]
  217.         bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
  218.         if @characters[i][0][/\[(\d+)\]/]
  219.           cw = bitmap.width / $1.to_i
  220.           ch = bitmap.height / 4
  221.         else
  222.           cw = bitmap.width / 4
  223.           ch = bitmap.height / 4
  224.         end
  225.         src_rect = Rect.new(0, 0, cw, ch)
  226.         x = 300 - @characters.size * 32 + i * 64 - cw / 2
  227.         self.contents.blt(x, 68 - ch, bitmap, src_rect)
  228.       end
  229.       # プレイ時間を描画
  230.       hour = @total_sec / 60 / 60
  231.       min = @total_sec / 60 % 60
  232.       sec = @total_sec % 60
  233.       time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  234.       self.contents.font.color = normal_color
  235.       self.contents.draw_text(4, 8, 600, 32, time_string, 2)
  236.       # タイムスタンプを描画
  237.       self.contents.font.color = normal_color
  238.       time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
  239.       self.contents.draw_text(4, 40, 600, 32, time_string, 2)
  240.     end
  241.   end
  242. end

  243. #==============================================================================
  244. # ■ Game_Player
  245. #------------------------------------------------------------------------------
  246. #  プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの
  247. # 機能を持っています。このクラスのインスタンスは $game_player で参照されます。
  248. #==============================================================================

  249. class Game_Player < Game_Character
  250.   #--------------------------------------------------------------------------
  251.   # ● アニメーションアップデート
  252.   #--------------------------------------------------------------------------
  253.   def anime_update
  254.     # アニメカウントが最大値を超えた場合
  255.     # ※最大値は、基本値 18 から移動速度 * 1 を引いた値
  256.     # ファイル名に[n]が入っている場合、通常の(n-1)/4の速度でパターン更新
  257.     if @character_name[/\[(\d+)\]/]
  258.       @anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
  259.       if @anime_count * ($1.to_i - 1) / 4 > 18 - @move_speed * 2
  260.         # 停止時アニメが OFF かつ 停止中の場合
  261.         if not @step_anime and @stop_count > 0
  262.           # パターンをオリジナルに戻す
  263.           @pattern = @original_pattern
  264.         # 停止時アニメが ON または 移動中の場合
  265.         else
  266.           # パターンを更新
  267.           @pattern = @pattern % ($1.to_i - 1) + 1
  268.         end
  269.         # アニメカウントをクリア
  270.         @anime_count = 0
  271.       end
  272.     else
  273.     # 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
  274.       if @anime_count > 18 - @move_speed * 2
  275.         # 停止時アニメが OFF かつ 停止中の場合
  276.         if not @step_anime and @stop_count > 0
  277.           # パターンをオリジナルに戻す
  278.           @pattern = @original_pattern
  279.         # 停止時アニメが ON または 移動中の場合
  280.         else
  281.           # パターンを更新
  282.           @pattern = (@pattern + 1) % 4
  283.         end
  284.         # アニメカウントをクリア
  285.         @anime_count = 0
  286.       end
  287.     end
  288.   end
  289. end
复制代码

评分

参与人数 2星屑 +170 收起 理由
RyanBern + 150 认可答案
x水管修理工x + 20 感谢回复

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-23 05:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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