Jump to content
Rpg²S Forum

Chris Darril

Utenti
  • Posts

    634
  • Joined

  • Last visited

Posts posted by Chris Darril

  1. Quello poi non sarebbe un grosso problema. Per caso hai uno script che sovrascrive Spriteset_Map?

    Se non ricordo male è quello di default

     

     

    #==============================================================================

    # ** Spriteset_Map

    #------------------------------------------------------------------------------

    # This class brings together map screen sprites, tilemaps, etc.

    # It's used within the Scene_Map class.

    #==============================================================================

     

    class Spriteset_Map

    #--------------------------------------------------------------------------

    # * Object Initialization

    #--------------------------------------------------------------------------

    def initialize

    # Make viewports

    @viewport1 = Viewport.new(0, 0, 640, 480)

    @viewport2 = Viewport.new(0, 0, 640, 480)

    @viewport3 = Viewport.new(0, 0, 640, 480)

    @viewport2.z = 200

    @viewport3.z = 5000

    # Make tilemap

    @tilemap = Tilemap.new(@viewport1)

    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)

    for i in 0..6

    autotile_name = $game_map.autotile_names

    @tilemap.autotiles = RPG::Cache.autotile(autotile_name)

    end

    @tilemap.map_data = $game_map.data

    @tilemap.priorities = $game_map.priorities

    # Make panorama plane

    @panorama = Plane.new(@viewport1)

    @panorama.z = -1000

    # Make fog plane

    @fog = Plane.new(@viewport1)

    @fog.z = 3000

    # Make character sprites

    @character_sprites = []

    for i in $game_map.events.keys.sort

    sprite = Sprite_Character.new(@viewport1, $game_map.events)

    @character_sprites.push(sprite)

    end

    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))

    # Make weather

    @weather = RPG::Weather.new(@viewport1)

    # Make picture sprites

    @picture_sprites = []

    for i in 1..50

    @picture_sprites.push(Sprite_Picture.new(@viewport2,

    $game_screen.pictures))

    end

    # Make timer sprite

    @timer_sprite = Sprite_Timer.new

    # Frame update

    update

    end

    #--------------------------------------------------------------------------

    # * Dispose

    #--------------------------------------------------------------------------

    def dispose

    # Dispose of tilemap

    @tilemap.tileset.dispose

    for i in 0..6

    @tilemap.autotiles.dispose

    end

    @tilemap.dispose

    # Dispose of panorama plane

    @panorama.dispose

    # Dispose of fog plane

    @fog.dispose

    # Dispose of character sprites

    for sprite in @character_sprites

    sprite.dispose

    end

    # Dispose of weather

    @weather.dispose

    # Dispose of picture sprites

    for sprite in @picture_sprites

    sprite.dispose

    end

    # Dispose of timer sprite

    @timer_sprite.dispose

    # Dispose of viewports

    @viewport1.dispose

    @viewport2.dispose

    @viewport3.dispose

    end

    #--------------------------------------------------------------------------

    # * Frame Update

    #--------------------------------------------------------------------------

    def update

    # If panorama is different from current one

    if @panorama_name != $game_map.panorama_name or

    @panorama_hue != $game_map.panorama_hue

    @panorama_name = $game_map.panorama_name

    @panorama_hue = $game_map.panorama_hue

    if @panorama.bitmap != nil

    @panorama.bitmap.dispose

    @panorama.bitmap = nil

    end

    if @panorama_name != ""

    @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)

    end

    Graphics.frame_reset

    end

    # If fog is different than current fog

    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue

    @fog_name = $game_map.fog_name

    @fog_hue = $game_map.fog_hue

    if @fog.bitmap != nil

    @fog.bitmap.dispose

    @fog.bitmap = nil

    end

    if @fog_name != ""

    @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)

    end

    Graphics.frame_reset

    end

    # Update tilemap

    @tilemap.ox = $game_map.display_x / 4

    @tilemap.oy = $game_map.display_y / 4

    @tilemap.update

    # Update panorama plane

    @panorama.ox = $game_map.display_x / 8

    @panorama.oy = $game_map.display_y / 8

    # Update fog plane

    @fog.zoom_x = $game_map.fog_zoom / 100.0

    @fog.zoom_y = $game_map.fog_zoom / 100.0

    @fog.opacity = $game_map.fog_opacity

    @fog.blend_type = $game_map.fog_blend_type

    @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox

    @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy

    @fog.tone = $game_map.fog_tone

    # Update character sprites

    for sprite in @character_sprites

    sprite.update

    end

    # Update weather graphic

    @weather.type = $game_screen.weather_type

    @weather.max = $game_screen.weather_max

    @weather.ox = $game_map.display_x / 4

    @weather.oy = $game_map.display_y / 4

    @weather.update

    # Update picture sprites

    for sprite in @picture_sprites

    sprite.update

    end

    # Update timer sprite

    @timer_sprite.update

    # Set screen color tone and shake position

    @viewport1.tone = $game_screen.tone

    @viewport1.ox = $game_screen.shake

    # Set screen flash color

    @viewport3.color = $game_screen.flash_color

    # Update viewports

    @viewport1.update

    @viewport3.update

    end

    end

     

  2. Ignoranza mia che non ricordavo che XP ha già delle opzioni preimpostate per le fog :P Comunque ora ho controllato, e se vai in

    Script Editor --> Spriteset_Map

    alle righe 128 e 129, che dovrebbero essere queste:

    	@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox	@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy

    Basta sostituire il 4 con il 2 nella riga 128 (quella dell'asse x)

    	@fog.ox = $game_map.display_x / 2 + $game_map.fog_ox	@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy

    per ottenere quello che volevi tu. Se mi sbaglio fammelo sapere!

     

    Mmm nessuno cambiamento, ho anche provato a diminuire e o aumentare il valore dell'asse Y ma non succede.

     

    Ad ogni modo vorrei che fosse anche possibile applicare il dovuto script in alcuni scenari (come il bosco) mentre disattivarlo in altri, ad esempio gli interni, in cui le fog vorrei fossero proprio fisse sullo schermo.

  3. Magari mi sbaglio. Ma a prima vista questi mi sembrano script per la gestione del chara. Sì sì- Ma io voglio quello che gestisce il fog. Se non ho capito male tu hai uno script che aggiunge un ulteriore livello in primo piano. E vuoi che abbia un effetto parallasse.

    No no pardon...allora mi sarò spiegato male. Lo script dei fog è quello di default, dico solo che sfrutto le fog diversamente ovvero come superfici in primo piano come per luci, ombreggiature e magari oggetti in primissimo piano e non magari per rappresentare nebbioline e via dicendo.

     

    Nel caso del bosco mostrato in video per l'appunto gli alberi in primissimo piano fanno parte di una fog con trasparenza impostata in png solo che nel momento in cui la protagonista si muove per l'ambiente, lo spostamento della fog è lo stesso identico di quello del tileset impiegato, per cui le due superfici pur essendo tecnicamente separate appaiono come appiccicate e non viene dato quel senso di realismo e tridimensionalità sufficienti che magari gioverebbero al mio progetto :sisi:

  4. Forse le seguenti possono bastare, almeno che non ricordi male :sisi: :

     

    Game Character 1

     

    #==============================================================================

    # ■ Game_Character (分割定義 1)

    #------------------------------------------------------------------------------

    #  キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event

    # クラスのスーパークラスとして使用されます。

    #==============================================================================

     

    class Game_Character

    #--------------------------------------------------------------------------

    # ● 公開インスタンス変数

    #--------------------------------------------------------------------------

    attr_reader :id # ID

    attr_reader :x # マップ X 座標 (論理座標)

    attr_reader :y # マップ Y 座標 (論理座標)

    attr_reader :real_x # マップ X 座標 (実座標 * 128)

    attr_reader :real_y # マップ Y 座標 (実座標 * 128)

    attr_reader :tile_id # タイル ID (0 なら無効)

    attr_reader :character_name # キャラクター ファイル名

    attr_reader :character_hue # キャラクター 色相

    attr_reader :opacity # 不透明度

    attr_reader :blend_type # 合成方法

    attr_reader :direction # 向き

    attr_reader :pattern # パターン

    attr_reader :move_route_forcing # 移動ルート強制フラグ

    attr_reader :through # すり抜け

    attr_accessor :animation_id # アニメーション ID

    attr_accessor :transparent # 透明状態

    attr_accessor :turning # 透明状態

    #--------------------------------------------------------------------------

    # ● オブジェクト初期化

    #--------------------------------------------------------------------------

    def initialize

    @turning = ""

    @id = 0

    @x = 0

    @y = 0

    @real_x = 0

    @real_y = 0

    @tile_id = 0

    @character_name = ""

    @character_hue = 0

    @opacity = 255

    @blend_type = 0

    @direction = 2

    @pattern = 0

    @move_route_forcing = false

    @through = false

    @animation_id = 0

    @transparent = false

    @original_direction = 2

    @original_pattern = 0

    @move_type = 0

    @move_speed = 3

    @move_frequency = 4

    @move_route = nil

    @move_route_index = 0

    @original_move_route = nil

    @original_move_route_index = 0

    @walk_anime = true

    @step_anime = false

    @direction_fix = false

    @always_on_top = false

    @anime_count = 0

    @stop_count = 0

    @jump_count = 0

    @jump_peak = 0

    @wait_count = 0

    @locked = false

    @prelock_direction = 0

    @old_dir = 2

    end

    #--------------------------------------------------------------------------

    # ● 移動中判定

    #--------------------------------------------------------------------------

    def moving?

    # 論理座標と実座標が違っていれば移動中

    return (@real_x != @x * 128 or @real_y != @y * 128)

    end

    #--------------------------------------------------------------------------

    # ● ジャンプ中判定

    #--------------------------------------------------------------------------

    def jumping?

    # ジャンプカウントが 0 より大きければジャンプ中

    return @jump_count > 0

    end

    #--------------------------------------------------------------------------

    # ● 姿勢の矯正

    #--------------------------------------------------------------------------

    def straighten

    # 移動時アニメまたは停止時アニメが ON の場合

    if @walk_anime or @step_anime

    # パターンを 0 に設定

    @pattern = 0

    end

    # アニメカウントをクリア

    @anime_count = 0

    # ロック前の向きをクリア

    @prelock_direction = 0

    end

    #--------------------------------------------------------------------------

    # ● 移動ルートの強制

    # move_route : 新しい移動ルート

    #--------------------------------------------------------------------------

    def force_move_route(move_route)

    # オリジナルの移動ルートを保存

    if @original_move_route == nil

    @original_move_route = @move_route

    @original_move_route_index = @move_route_index

    end

    # 移動ルートを変更

    @move_route = move_route

    @move_route_index = 0

    # 移動ルート強制フラグをセット

    @move_route_forcing = true

    # ロック前の向きをクリア

    @prelock_direction = 0

    # ウェイトカウントをクリア

    @wait_count = 0

    # カスタム移動

    move_type_custom

    end

    #--------------------------------------------------------------------------

    # ● 通行可能判定

    # x : X 座標

    # y : Y 座標

    # d : 方向 (0,2,4,6,8) ※ 0 = 全方向通行不可の場合を判定 (ジャンプ用)

    #--------------------------------------------------------------------------

    def passable?(x, y, d)

    # 新しい座標を求める

    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)

    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)

    # 座標がマップ外の場合

    unless $game_map.valid?(new_x, new_y)

    # 通行不可

    return false

    end

    # すり抜け ON の場合

    if @through

    # 通行可

    return true

    end

    # 移動元のタイルから指定方向に出られない場合

    unless $game_map.passable?(x, y, d, self)

    # 通行不可

    return false

    end

    # 移動先のタイルに指定方向から入れない場合

    unless $game_map.passable?(new_x, new_y, 10 - d)

    # 通行不可

    return false

    end

    # 全イベントのループ

    for event in $game_map.events.values

    # イベントの座標が移動先と一致した場合

    if event.x == new_x and event.y == new_y

    # すり抜け OFF なら

    unless event.through

    # 自分がイベントの場合

    if self != $game_player

    # 通行不可

    return false

    end

    # 自分がプレイヤーで、相手のグラフィックがキャラクターの場合

    if event.character_name != ""

    # 通行不可

    return false

    end

    end

    end

    end

    # プレイヤーの座標が移動先と一致した場合

    if $game_player.x == new_x and $game_player.y == new_y

    # すり抜け OFF なら

    unless $game_player.through

    # 自分のグラフィックがキャラクターの場合

    if @character_name != ""

    # 通行不可

    return false

    end

    end

    end

    # 通行可

    return true

    end

    #--------------------------------------------------------------------------

    # ● ロック

    #--------------------------------------------------------------------------

    def lock

    # すでにロックされている場合

    if @locked

    # メソッド終了

    return

    end

    # ロック前の向きを保存

    @prelock_direction = @direction

    # プレイヤーの方を向く

    turn_toward_player

    # ロック中フラグをセット

    @locked = true

    end

    #--------------------------------------------------------------------------

    # ● ロック中判定

    #--------------------------------------------------------------------------

    def lock?

    return @locked

    end

    #--------------------------------------------------------------------------

    # ● ロック解除

    #--------------------------------------------------------------------------

    def unlock

    # ロックされていない場合

    unless @locked

    # メソッド終了

    return

    end

    # ロック中フラグをクリア

    @locked = false

    # 向き固定でない場合

    unless @direction_fix

    # ロック前の向きが保存されていれば

    if @prelock_direction != 0

    # ロック前の向きを復帰

    @direction = @prelock_direction

    end

    end

    end

    #--------------------------------------------------------------------------

    # ● 指定位置に移動

    # x : X 座標

    # y : Y 座標

    #--------------------------------------------------------------------------

    def moveto(x, y)

    @x = x % $game_map.width

    @y = y % $game_map.height

    @real_x = @x * 128

    @real_y = @y * 128

    @prelock_direction = 0

    end

    #--------------------------------------------------------------------------

    # ● 画面 X 座標の取得

    #--------------------------------------------------------------------------

    def screen_x

    # 実座標とマップの表示位置から画面座標を求める

    return (@real_x - $game_map.display_x + 3) / 4 + 16

    end

    #--------------------------------------------------------------------------

    # ● 画面 Y 座標の取得

    #--------------------------------------------------------------------------

    def screen_y

    # 実座標とマップの表示位置から画面座標を求める

    y = (@real_y - $game_map.display_y + 3) / 4 + 32

    # ジャンプカウントに応じて Y 座標を小さくする

    if @jump_count >= @jump_peak

    n = @jump_count - @jump_peak

    else

    n = @jump_peak - @jump_count

    end

    return y - (@jump_peak * @jump_peak - n * n) / 2

    end

    #--------------------------------------------------------------------------

    # ● 画面 Z 座標の取得

    # height : キャラクターの高さ

    #--------------------------------------------------------------------------

    def screen_z(height = 0)

    # 最前面に表示フラグが ON の場合

    if @always_on_top

    # 無条件に 999

    return 999

    end

    # 実座標とマップの表示位置から画面座標を求める

    z = (@real_y - $game_map.display_y + 3) / 4 + 32

    # タイルの場合

    if @tile_id > 0

    # タイルのプライオリティ * 32 を足す

    return z + $game_map.priorities[@tile_id] * 32

    # キャラクターの場合

    else

    # 高さが 32 を超えていれば 31 を足す

    return z + ((height > 32) ? 31 : 0)

    end

    end

    #--------------------------------------------------------------------------

    # ● 茂み深さの取得

    #--------------------------------------------------------------------------

    def bush_depth

    # タイルの場合、または最前面に表示フラグが ON の場合

    if @tile_id > 0 or @always_on_top

    return 0

    end

    # ジャンプ中以外で茂み属性のタイルなら 12、それ以外なら 0

    if @jump_count == 0 and $game_map.bush?(@x, @y)

    return 12

    else

    return 0

    end

    end

    #--------------------------------------------------------------------------

    # ● 地形タグの取得

    #--------------------------------------------------------------------------

    def terrain_tag

    return $game_map.terrain_tag(@x, @y)

    end

    end

     

     

     

    Game Character 2

     

    #==============================================================================

    # ** Game_Character (part 2)

    #------------------------------------------------------------------------------

    # This class deals with characters. It's used as a superclass for the

    # Game_Player and Game_Event classes.

    #==============================================================================

     

    class Game_Character

    #--------------------------------------------------------------------------

    # * Frame Update

    #--------------------------------------------------------------------------

    def update

    # Branch with jumping, moving, and stopping

    if turning?

    update_turn

    return

    elsif jumping?

    update_jump

    elsif moving?

    update_move

    else

    update_stop

    end

    # If animation count exceeds maximum value

    # * Maximum value is move speed * 1 taken from basic value 18

    if @anime_count > 14 - @move_speed * 2

    # If stop animation is OFF when stopping

    if not @step_anime and @stop_count > 0

    # Return to original pattern

    @pattern = @original_pattern

    # If stop animation is ON when moving

    else

    # Update pattern

    @pattern = (@pattern % 8) + 1

    end

    # Clear animation count

    @anime_count = 0

    end

    # If waiting

    if @wait_count > 0

    # Reduce wait count

    @wait_count -= 1

    return

    end

    # If move route is forced

    if @move_route_forcing

    # Custom move

    move_type_custom

    return

    end

    # When waiting for event execution or locked

    if @starting or lock?

    # Not moving by self

    return

    end

    # If stop count exceeds a certain value (computed from move frequency)

    if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)

    # Branch by move type

    case @move_type

    when 1 # Random

    move_type_random

    when 2 # Approach

    move_type_toward_player

    when 3 # Custom

    move_type_custom

    end

    end

    end

    def update_turn

    @anime_count += 1

    if @anime_count > 12 - ($game_switches[3] ? 5 : 4 ) * 2

    if (@pattern == 2 and !@reverse) or (@pattern == 0 and @reverse)

    if @t180

    start_turning

    return

    end

    if @old_name

    @character_name = @old_name.clone

    @old_name = nil

    end

    @direction = @real_dir

    @real_dir = nil

    @old_dir = @direction

    @reverse = false

    @direction_fix = false

    return

    end

    if !@reverse

    @pattern = (@pattern +1) % 3

    else

    @pattern = (@pattern -1) % 3

    end

    @anime_count = 0

    end

    end

    def turning?

    return (!@real_dir ? false : true)

    end

    def start_turning

    @anime_count = 0

    if @t180

    if @direction == 8

    @direction = 4

    @pattern = 0

    @reverse = false

    @direction_fix = true

    elsif @direction == 2

    @direction = 6

    @pattern = 0

    @reverse = false

    @direction_fix = true

    elsif @direction == 6

    @direction = 8

    @pattern = 0

    @reverse = false

    @direction_fix = true

    elsif @direction == 4

    @direction = 2

    @pattern = 0

    @reverse = false

    @direction_fix = true

    end

    @t180 = false

    return

    end

    return if @real_dir

    @real_dir = @direction

    if @old_name.nil?

    @old_name = @character_name.clone

    @character_name = @turning

    end

    if (@real_dir == 2 and @old_dir == 8) or (@real_dir == 8 and @old_dir == 2)

    if 2 == @real_dir and 8 == @old_dir

    @direction = 8

    @pattern = 0

    @reverse = false

    @direction_fix = true

    elsif 8 == @real_dir and 2 == @old_dir

    @direction = 2

    @pattern = 0

    @reverse = false

    @direction_fix = true

    end

    @t180 = true

    elsif (@real_dir == 6 and @old_dir == 4) or (@real_dir == 4 and @old_dir == 6)

    if 4 == @real_dir and 6 == @old_dir

    @direction = 6

    @pattern = 0

    @reverse = false

    @direction_fix = true

    elsif 6 == @real_dir and 4 == @old_dir

    @direction = 4

    @pattern = 0

    @reverse = false

    @direction_fix = true

    end

    @t180 = true

    else

    rd = [2, 4, 6, 8]

    od = [6, 2, 8, 4]

    for i in 0..3

    if rd != od

    if rd == @real_dir and od == @old_dir

    @direction = (i+1)*2

    @pattern = 2

    @reverse = true

    elsif od == @real_dir and rd == @old_dir

    @direction = (i+1)*2

    @pattern = 0

    @reverse = false

    @direction_fix = true

    end

    end

    end

    end

    end

    #--------------------------------------------------------------------------

    # * Frame Update (jump)

    #--------------------------------------------------------------------------

    def update_jump

    # Reduce jump count by 1

    @jump_count -= 1

    # Calculate new coordinates

    @real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1)

    @real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1)

    end

    #--------------------------------------------------------------------------

    # * Update frame (move)

    #--------------------------------------------------------------------------

    def update_move

    # Convert map coordinates from map move speed into move distance

    distance = 2 ** @move_speed

    # If logical coordinates are further down than real coordinates

    if @y * 128 > @real_y

    # Move down

    @real_y = [@real_y + distance, @y * 128].min

    end

    # If logical coordinates are more to the left than real coordinates

    if @x * 128 < @real_x

    # Move left

    @real_x = [@real_x - distance, @x * 128].max

    end

    # If logical coordinates are more to the right than real coordinates

    if @x * 128 > @real_x

    # Move right

    @real_x = [@real_x + distance, @x * 128].min

    end

    # If logical coordinates are further up than real coordinates

    if @y * 128 < @real_y

    # Move up

    @real_y = [@real_y - distance, @y * 128].max

    end

    # If move animation is ON

    if @walk_anime

    # Increase animation count by 1.5

    @anime_count += 1.5

    # If move animation is OFF, and stop animation is ON

    elsif @step_anime

    # Increase animation count by 1

    @anime_count += 1

    end

    end

    #--------------------------------------------------------------------------

    # * Frame Update (stop)

    #--------------------------------------------------------------------------

    def update_stop

    # If stop animation is ON

    if @step_anime

    # Increase animation count by 1

    @anime_count += 1

    # If stop animation is OFF, but current pattern is different from original

    elsif @pattern != @original_pattern

    # Increase animation count by 1.5

    @anime_count += 1.5

    end

    # When waiting for event execution, or not locked

    # * If lock deals with event execution coming to a halt

    unless @starting or lock?

    # Increase stop count by 1

    @stop_count += 1

    end

    end

    #--------------------------------------------------------------------------

    # * Move Type : Random

    #--------------------------------------------------------------------------

    def move_type_random

    # Branch by random numbers 0-5

    case rand(6)

    when 0..3 # Random

    move_random

    when 4 # 1 step forward

    move_forward

    when 5 # Temporary stop

    @stop_count = 0

    end

    end

    #--------------------------------------------------------------------------

    # * Move Type : Approach

    #--------------------------------------------------------------------------

    def move_type_toward_player

    # Get difference in player coordinates

    sx = @x - $game_player.x

    sy = @y - $game_player.y

    # Get absolute value of difference

    abs_sx = sx > 0 ? sx : -sx

    abs_sy = sy > 0 ? sy : -sy

    # If separated by 20 or more tiles matching up horizontally and vertically

    if sx + sy >= 20

    # Random

    move_random

    return

    end

    # Branch by random numbers 0-5

    case rand(6)

    when 0..3 # Approach player

    move_toward_player

    when 4 # random

    move_random

    when 5 # 1 step forward

    move_forward

    end

    end

    #--------------------------------------------------------------------------

    # * Move Type : Custom

    #--------------------------------------------------------------------------

    def move_type_custom

    # Interrupt if not stopping

    if jumping? or moving?

    return

    end

    # Loop until finally arriving at move command list

    while @move_route_index < @move_route.list.size

    # Acquiring move command

    command = @move_route.list[@move_route_index]

    # If command code is 0 (last part of list)

    if command.code == 0

    # If [repeat action] option is ON

    if @move_route.repeat

    # First return to the move route index

    @move_route_index = 0

    end

    # If [repeat action] option is OFF

    unless @move_route.repeat

    # If move route is forcing

    if @move_route_forcing and not @move_route.repeat

    # Release forced move route

    @move_route_forcing = false

    # Restore original move route

    @move_route = @original_move_route

    @move_route_index = @original_move_route_index

    @original_move_route = nil

    end

    # Clear stop count

    @stop_count = 0

    end

    return

    end

    # During move command (from move down to jump)

    if command.code <= 14

    # Branch by command code

    case command.code

    when 1 # Move down

    move_down

    when 2 # Move left

    move_left

    when 3 # Move right

    move_right

    when 4 # Move up

    move_up

    when 5 # Move lower left

    move_lower_left

    when 6 # Move lower right

    move_lower_right

    when 7 # Move upper left

    move_upper_left

    when 8 # Move upper right

    move_upper_right

    when 9 # Move at random

    move_random

    when 10 # Move toward player

    move_toward_player

    when 11 # Move away from player

    move_away_from_player

    when 12 # 1 step forward

    move_forward

    when 13 # 1 step backward

    move_backward

    when 14 # Jump

    jump(command.parameters[0], command.parameters[1])

    end

    # If movement failure occurs when [ignore if can't move] option is OFF

    if not @move_route.skippable and not moving? and not jumping?

    return

    end

    @move_route_index += 1

    return

    end

    # If waiting

    if command.code == 15

    # Set wait count

    @wait_count = command.parameters[0] * 2 - 1

    @move_route_index += 1

    return

    end

    # If direction change command

    if command.code >= 16 and command.code <= 26

    # Branch by command code

    case command.code

    when 16 # Turn down

    turn_down

    when 17 # Turn left

    turn_left

    when 18 # Turn right

    turn_right

    when 19 # Turn up

    turn_up

    when 20 # Turn 90° right

    turn_right_90

    when 21 # Turn 90° left

    turn_left_90

    when 22 # Turn 180°

    turn_180

    when 23 # Turn 90° right or left

    turn_right_or_left_90

    when 24 # Turn at Random

    turn_random

    when 25 # Turn toward player

    turn_toward_player

    when 26 # Turn away from player

    turn_away_from_player

    end

    @move_route_index += 1

    return

    end

    # If other command

    if command.code >= 27

    # Branch by command code

    case command.code

    when 27 # Switch ON

    $game_switches[command.parameters[0]] = true

    $game_map.need_refresh = true

    when 28 # Switch OFF

    $game_switches[command.parameters[0]] = false

    $game_map.need_refresh = true

    when 29 # Change speed

    @move_speed = command.parameters[0]

    when 30 # Change freq

    @move_frequency = command.parameters[0]

    when 31 # Move animation ON

    @walk_anime = true

    when 32 # Move animation OFF

    @walk_anime = false

    when 33 # Stop animation ON

    @step_anime = true

    when 34 # Stop animation OFF

    @step_anime = false

    when 35 # Direction fix ON

    @direction_fix = true

    when 36 # Direction fix OFF

    @direction_fix = false

    when 37 # Through ON

    @through = true

    when 38 # Through OFF

    @through = false

    when 39 # Always on top ON

    @always_on_top = true

    when 40 # Always on top OFF

    @always_on_top = false

    when 41 # Change Graphic

    @tile_id = 0

    @character_name = command.parameters[0]

    @character_hue = command.parameters[1]

    if @original_direction != command.parameters[2]

    @direction = command.parameters[2]

    @original_direction = @direction

    @prelock_direction = 0

    end

    if @original_pattern != command.parameters[3]

    @pattern = command.parameters[3]

    @original_pattern = @pattern

    end

    when 42 # Change Opacity

    @opacity = command.parameters[0]

    when 43 # Change Blending

    @blend_type = command.parameters[0]

    when 44 # Play SE

    $game_system.se_play(command.parameters[0])

    when 45 # Script

    result = eval(command.parameters[0])

    end

    @move_route_index += 1

    end

    end

    end

    #--------------------------------------------------------------------------

    # * Increase Steps

    #--------------------------------------------------------------------------

    def increase_steps

    # Clear stop count

    @stop_count = 0

    end

    end

     

     

     

    Game Character 3

     

    #==============================================================================

    # ** Game_Character (part 3)

    #------------------------------------------------------------------------------

    # This class deals with characters. It's used as a superclass for the

    # Game_Player and Game_Event classes.

    #==============================================================================

     

    class Game_Character

    #--------------------------------------------------------------------------

    # * Move Down

    # turn_enabled : a flag permits direction change on that spot

    #--------------------------------------------------------------------------

    def move_down(turn_enabled = true)

    # Turn down

    if turn_enabled

    turn_down

    end

    # If passable

    if passable?(@x, @y, 2)

    # Turn down

    turn_down

    # Update coordinates

    @y += 1

    # Increase steps

    increase_steps

    # If impassable

    else

    # Determine if touch event is triggered

    check_event_trigger_touch(@x, @y+1)

    end

    end

    #--------------------------------------------------------------------------

    # * Move Left

    # turn_enabled : a flag permits direction change on that spot

    #--------------------------------------------------------------------------

    def move_left(turn_enabled = true)

    # Turn left

    if turn_enabled

    turn_left

    end

    # If passable

    if passable?(@x, @y, 4)

    # Turn left

    turn_left

    # Update coordinates

    @x -= 1

    # Increase steps

    increase_steps

    # If impassable

    else

    # Determine if touch event is triggered

    check_event_trigger_touch(@x-1, @y)

    end

    end

    #--------------------------------------------------------------------------

    # * Move Right

    # turn_enabled : a flag permits direction change on that spot

    #--------------------------------------------------------------------------

    def move_right(turn_enabled = true)

    # Turn right

    if turn_enabled

    turn_right

    end

    # If passable

    if passable?(@x, @y, 6)

    # Turn right

    turn_right

    # Update coordinates

    @x += 1

    # Increase steps

    increase_steps

    # If impassable

    else

    # Determine if touch event is triggered

    check_event_trigger_touch(@x+1, @y)

    end

    end

    #--------------------------------------------------------------------------

    # * Move up

    # turn_enabled : a flag permits direction change on that spot

    #--------------------------------------------------------------------------

    def move_up(turn_enabled = true)

    # Turn up

    if turn_enabled

    turn_up

    end

    # If passable

    if passable?(@x, @y, 8)

    # Turn up

    turn_up

    # Update coordinates

    @y -= 1

    # Increase steps

    increase_steps

    # If impassable

    else

    # Determine if touch event is triggered

    check_event_trigger_touch(@x, @y-1)

    end

    end

    #--------------------------------------------------------------------------

    # * Move Lower Left

    #--------------------------------------------------------------------------

    def move_lower_left

    # If no direction fix

    unless @direction_fix

    # Face down is facing right or up

    @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)

    end

    # When a down to left or a left to down course is passable

    if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or

    (passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))

    # Update coordinates

    @x -= 1

    @y += 1

    # Increase steps

    increase_steps

    end

    end

    #--------------------------------------------------------------------------

    # * Move Lower Right

    #--------------------------------------------------------------------------

    def move_lower_right

    # If no direction fix

    unless @direction_fix

    # Face right if facing left, and face down if facing up

    @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)

    end

    # When a down to right or a right to down course is passable

    if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or

    (passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))

    # Update coordinates

    @x += 1

    @y += 1

    # Increase steps

    increase_steps

    end

    end

    #--------------------------------------------------------------------------

    # * Move Upper Left

    #--------------------------------------------------------------------------

    def move_upper_left

    # If no direction fix

    unless @direction_fix

    # Face left if facing right, and face up if facing down

    @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)

    end

    # When an up to left or a left to up course is passable

    if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or

    (passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))

    # Update coordinates

    @x -= 1

    @y -= 1

    # Increase steps

    increase_steps

    end

    end

    #--------------------------------------------------------------------------

    # * Move Upper Right

    #--------------------------------------------------------------------------

    def move_upper_right

    # If no direction fix

    unless @direction_fix

    # Face right if facing left, and face up if facing down

    @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)

    end

    # When an up to right or a right to up course is passable

    if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or

    (passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))

    # Update coordinates

    @x += 1

    @y -= 1

    # Increase steps

    increase_steps

    end

    end

    #--------------------------------------------------------------------------

    # * Move at Random

    #--------------------------------------------------------------------------

    def move_random

    case rand(4)

    when 0 # Move down

    move_down(false)

    when 1 # Move left

    move_left(false)

    when 2 # Move right

    move_right(false)

    when 3 # Move up

    move_up(false)

    end

    end

    #--------------------------------------------------------------------------

    # * Move toward Player

    #--------------------------------------------------------------------------

    def move_toward_player

    # Get difference in player coordinates

    sx = @x - $game_player.x

    sy = @y - $game_player.y

    # If coordinates are equal

    if sx == 0 and sy == 0

    return

    end

    # Get absolute value of difference

    abs_sx = sx.abs

    abs_sy = sy.abs

    # If horizontal and vertical distances are equal

    if abs_sx == abs_sy

    # Increase one of them randomly by 1

    rand(2) == 0 ? abs_sx += 1 : abs_sy += 1

    end

    # If horizontal distance is longer

    if abs_sx > abs_sy

    # Move towards player, prioritize left and right directions

    sx > 0 ? move_left : move_right

    if not moving? and sy != 0

    sy > 0 ? move_up : move_down

    end

    # If vertical distance is longer

    else

    # Move towards player, prioritize up and down directions

    sy > 0 ? move_up : move_down

    if not moving? and sx != 0

    sx > 0 ? move_left : move_right

    end

    end

    end

    #--------------------------------------------------------------------------

    # * Move away from Player

    #--------------------------------------------------------------------------

    def move_away_from_player

    # Get difference in player coordinates

    sx = @x - $game_player.x

    sy = @y - $game_player.y

    # If coordinates are equal

    if sx == 0 and sy == 0

    return

    end

    # Get absolute value of difference

    abs_sx = sx.abs

    abs_sy = sy.abs

    # If horizontal and vertical distances are equal

    if abs_sx == abs_sy

    # Increase one of them randomly by 1

    rand(2) == 0 ? abs_sx += 1 : abs_sy += 1

    end

    # If horizontal distance is longer

    if abs_sx > abs_sy

    # Move away from player, prioritize left and right directions

    sx > 0 ? move_right : move_left

    if not moving? and sy != 0

    sy > 0 ? move_down : move_up

    end

    # If vertical distance is longer

    else

    # Move away from player, prioritize up and down directions

    sy > 0 ? move_down : move_up

    if not moving? and sx != 0

    sx > 0 ? move_right : move_left

    end

    end

    end

    #--------------------------------------------------------------------------

    # * 1 Step Forward

    #--------------------------------------------------------------------------

    def move_forward

    case @direction

    when 2

    move_down(false)

    when 4

    move_left(false)

    when 6

    move_right(false)

    when 8

    move_up(false)

    end

    end

    #--------------------------------------------------------------------------

    # * 1 Step Backward

    #--------------------------------------------------------------------------

    def move_backward

    # Remember direction fix situation

    last_direction_fix = @direction_fix

    # Force directino fix

    @direction_fix = true

    # Branch by direction

    case @direction

    when 2 # Down

    move_up(false)

    when 4 # Left

    move_right(false)

    when 6 # Right

    move_left(false)

    when 8 # Up

    move_down(false)

    end

    # Return direction fix situation back to normal

    @direction_fix = last_direction_fix

    end

    #--------------------------------------------------------------------------

    # * Jump

    # x_plus : x-coordinate plus value

    # y_plus : y-coordinate plus value

    #--------------------------------------------------------------------------

    def jump(x_plus, y_plus)

    # If plus value is not (0,0)

    if x_plus != 0 or y_plus != 0

    # If horizontal distnace is longer

    if x_plus.abs > y_plus.abs

    # Change direction to left or right

    x_plus < 0 ? turn_left : turn_right

    # If vertical distance is longer, or equal

    else

    # Change direction to up or down

    y_plus < 0 ? turn_up : turn_down

    end

    end

    # Calculate new coordinates

    new_x = @x + x_plus

    new_y = @y + y_plus

    # If plus value is (0,0) or jump destination is passable

    if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)

    # Straighten position

    straighten

    # Update coordinates

    @x = new_x

    @y = new_y

    # Calculate distance

    distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round

    # Set jump count

    @jump_peak = 10 + distance - @move_speed

    @jump_count = @jump_peak * 2

    # Clear stop count

    @stop_count = 0

    end

    end

    #--------------------------------------------------------------------------

    # * Turn Down

    #--------------------------------------------------------------------------

    def turn_down

    unless @direction_fix or turning?

    if @direction != 2

    @direction = 2

    start_turning if @turning != ""

    end

    @stop_count = 0

    end

    end

    #--------------------------------------------------------------------------

    # * Turn Left

    #--------------------------------------------------------------------------

    def turn_left

    unless @direction_fix or turning?

    if @direction != 4

    @direction = 4

    start_turning if @turning != ""

    end

    @stop_count = 0

    end

    end

    #--------------------------------------------------------------------------

    # * Turn Right

    #--------------------------------------------------------------------------

    def turn_right

    unless @direction_fix or turning?

    if @direction != 6

    @direction = 6

    start_turning if @turning != ""

    end

    @stop_count = 0

    end

    end

    #--------------------------------------------------------------------------

    # * Turn Up

    #--------------------------------------------------------------------------

    def turn_up

    unless @direction_fix or turning?

    if @direction != 8

    @direction = 8

    start_turning if @turning != ""

    end

    @stop_count = 0

    end

    end

    #--------------------------------------------------------------------------

    # * Turn 90° Right

    #--------------------------------------------------------------------------

    def turn_right_90

    case @direction

    when 2

    turn_left

    when 4

    turn_up

    when 6

    turn_down

    when 8

    turn_right

    end

    end

    #--------------------------------------------------------------------------

    # * Turn 90° Left

    #--------------------------------------------------------------------------

    def turn_left_90

    case @direction

    when 2

    turn_right

    when 4

    turn_down

    when 6

    turn_up

    when 8

    turn_left

    end

    end

    #--------------------------------------------------------------------------

    # * Turn 180°

    #--------------------------------------------------------------------------

    def turn_180

    case @direction

    when 2

    turn_up

    when 4

    turn_right

    when 6

    turn_left

    when 8

    turn_down

    end

    end

    #--------------------------------------------------------------------------

    # * Turn 90° Right or Left

    #--------------------------------------------------------------------------

    def turn_right_or_left_90

    if rand(2) == 0

    turn_right_90

    else

    turn_left_90

    end

    end

    #--------------------------------------------------------------------------

    # * Turn at Random

    #--------------------------------------------------------------------------

    def turn_random

    case rand(4)

    when 0

    turn_up

    when 1

    turn_right

    when 2

    turn_left

    when 3

    turn_down

    end

    end

    #--------------------------------------------------------------------------

    # * Turn Towards Player

    #--------------------------------------------------------------------------

    def turn_toward_player

    # Get difference in player coordinates

    sx = @x - $game_player.x

    sy = @y - $game_player.y

    # If coordinates are equal

    if sx == 0 and sy == 0

    return

    end

    # If horizontal distance is longer

    if sx.abs > sy.abs

    # Turn to the right or left towards player

    sx > 0 ? turn_left : turn_right

    # If vertical distance is longer

    else

    # Turn up or down towards player

    sy > 0 ? turn_up : turn_down

    end

    end

    #--------------------------------------------------------------------------

    # * Turn Away from Player

    #--------------------------------------------------------------------------

    def turn_away_from_player

    # Get difference in player coordinates

    sx = @x - $game_player.x

    sy = @y - $game_player.y

    # If coordinates are equal

    if sx == 0 and sy == 0

    return

    end

    # If horizontal distance is longer

    if sx.abs > sy.abs

    # Turn to the right or left away from player

    sx > 0 ? turn_right : turn_left

    # If vertical distance is longer

    else

    # Turn up or down away from player

    sy > 0 ? turn_down : turn_up

    end

    end

    end

     

     

     

    Sprite Character

     

    class Game_Temp

    $min = 0.0

    $max = 1.0

    end

    class Sprite_Character < RPG::Sprite

    attr_accessor :character # character

    def initialize(viewport, character = nil)

    super(viewport)

    @character = character

    update

    end

    def update

    super

    # If tile ID, file name, or hue are different from current ones

    if @tile_id != @character.tile_id or

    @character_name != @character.character_name or

    @character_hue != @character.character_hue

    # Remember tile ID, file name, and hue

    @tile_id = @character.tile_id

    @character_name = @character.character_name

    @character_hue = @character.character_hue

    # If tile ID value is valid

    if @tile_id >= 384

    self.bitmap = RPG::Cache.tile($game_map.tileset_name,

    @tile_id, @character.character_hue)

    self.src_rect.set(0, 0, 32, 32)

    self.ox = 16

    self.oy = 32

    # If tile ID value is invalid

    else

    self.bitmap = RPG::Cache.character(@character.character_name,

    @character.character_hue)

    @cw = bitmap.width / 9

    @ch = bitmap.height / 4

    self.ox = @cw / 4

    self.oy = @ch

    end

    end

    # Set visible situation

    self.visible = (not @character.transparent)

    # If graphic is character

    if @tile_id == 0

    # Set rectangular transfer

    sx = @character.pattern * @cw

    sy = (@character.direction - 2) / 2 * @ch

    self.src_rect.set(sx, sy, @cw, @ch)

    end

    # Set sprite coordinates

    self.x = @character.screen_x

    self.y = @character.screen_y

    self.z = @character.screen_z(@ch)

    var = @character.screen_y + 2.0

    min = $min

    max = $max

    calc = max * (var / 480) + min

    if @character.opacity != 254

    self.zoom_x = calc

    self.zoom_y = calc

    end

    self.opacity = @character.opacity

    self.blend_type = @character.blend_type

    self.bush_depth = @character.bush_depth

    # Animation

    if @character.animation_id != 5

    animation = $data_animations[@character.animation_id]

    animation(animation, true)

    @character.animation_id = 0

    end

    end

    end

     

  5. Bellissima atmosfera :Q_

    Splendido sentirselo dire *.* grazie!!!

     

    Questo è molto più visibile! *Guardy cambia schermo! xD*

     

    Ancora una volta trovo eccelse le animazioni, ottima la foresta, soprattutto ben organizzata... e sei riuscito a rendere un'atmosfera davvero magnifica!

     

    Bravissimo Chris!^^

    GRAZIEEEEEE...e finalmente ricevo complimenti sulle animazioni :sisi:

    vi dicevo io che una volta trovato il programma giusto per catturare video vi avrei mostrato delle buone atmosfere :sisi:

     

    CHRIS

  6. Ebbene si carissimi, ho bisogno del vostro aiuto/consiglio/appoggio/parere tecnico :D

    credo che in media sappiate che sto sviluppando un videogioco dall'estate 2009 che porta il nome di REMOTHERED e che a conti fatti è il remake in chiave più simil-realistica e attuale del capolavoro datato 1995 Clock Tower (di origine nipponica).

     

    Ebbene vi linko un video che vi farà meglio comprendere le basi del perchè di questo topic su questa sezione :sisi:

    REMOTHERED - Vagando per la foresta (Gameplay)

     

    Qualora aveste visto il video vi sarete accorti che lo scenario proposto in questione è una "ricca" foresta notturna, ebbene composta conseguenzialmente da:

    1) Panorama di sfondo con alberi più lontani e resa video vagamente annebbiata

    2) Tileset composto con molteplici varianti

    3) Fog adoperato come layer superiore e non come per effetti atmosferici del tipo nebbia o oscurità incombenti.

     

    Ebbene impostate le dovute trasparenze non disdegnerei poter contare sulla possibilità di una movenza a se dei tre differenti piani mostrati. Il panorama fà già il suo dovuto compito distintamente dal tileset e si muove con più lentezza, soggetto alla maggior distanza rispetto alla visuale, ma la fog rimane LETTERALMENTE appiccicata al tileset, muovendosi con esso.

     

    Il punto della questione sarebbe trovar il modo o comunque un script editato a dovere che possa consentire, laddove richiesto, il movimento a se della fog impostata (ferma) una volta in movimento o magari di alcuni settori del tileset impiegato. In questo caso più velocemente che gli altri due layers mostrati più a distanza...

     

    Tenendo comunque in considerazione che per il gioco sfrutto già i seguenti script e settings:

    - Script rimpicciolimento prospettico

    - Script animazioni a 9 frames

    - Script in-fra-frames (frames aggiuntivi per la rotazione, realizzato da Progm - Team Rhaxen)

    - I tilesets hanno impostazioni numerate a seconda del tipo di superficie calpestata (con annesso suono)

     

    Vi ringrazierei all'infinito qualora sapreste aiutarmi o quanto meno consigliarmi. Ma ho già un mega-grazie per quelli che sono arrivati fin qui. :sisi:

     

    CHRIS

  7. Essendo nel tuo interesse visto che posso vedere i video così, perchè non mi regali uno schermo piatto super costoso? XDXD

    ^ ^

     

    La scena l'ho intuita, non riesco a vedere i dettagli, ma sembra interessante, non mi spiacerebbe vedere anche una scena di fuga e poi in capo di "contrattacco" :3

    ^ ^

    Ma questa E' una scena di fuga XD

    ammazza...ma non si vede proprio niente allora XD

  8. FINALMENTE forse IL video più interessante e succoso mostrato fin ad oggi :sisi:

    REMOTHERED - Vagando per la foresta (Gameplay)

     

    Vi prego, sorvolate sui due/tre nei visibili e soprattutto sulle animazioni (in ultimazione) del secondo personaggio in ordine di apparizione.

     

    E ovviamente comprendete il solito neo della registrazione con camtasia o fraps (dimezzamento frame rate e resa video sfocata)

     

    Spero vi piaccia, aspetto commenti :rovatfl:

     

    CHRIS

  9. Sembra bello, dico sembra perchè ho sempre il solito problema del mio vecchio schermo troppo scuro D:

    Vedo un poco la parte rossa ed il braccino bianco di lei che si muove, in compenso intuisco quelle che sembrano buone animazioni! XDXD

    Mi sa che a questo gioco dovrò giocare sul portatile! XDXD

    ^ ^

    La parte davanti al libro ho visto meglio, ma... cosa significa icona teschio e quella posizione? :D

    ^ ^

    Purtroppo solito discorso :'(

    L'ho provato in computer diversi ma alla fine fine riesco a vedere da tutte le postazioni, non vorrei schiarirlo troppo perchè ahimè ne perderebbe tantissimo in atmosfera per cui sto vedendo di applicarmici con moderazione.

     

    Icona mani = raccogliere/tatto

    Icona testa = parlare/esaminare

    Icona cervello = visuale spirituale, una sorta di sesto senso che le permetterà di vedere cose altrimenti invisibili ad occhio nudo

     

    Visto, le animazioni sono molto fluide e che dire: "Come al solito hai fatto un gran bel lavoro!"

     

    Purtroppo devo quotare Guardian per quanto riguarda il fatto che sia estremamente buio. Per quanto abbia uno schermo molto luminoso, in questo video (a differenza degli altri che hai postato in precedenza.) devo ammettere di aver faticato un po' di più ad inquadrare la scena. Il mio consiglio sarebbe di renderlo leggermente, ma proprio leggermente più chiaro, soprattutto nella prima stanza, tutto sommato nella seconda con la candella ci sono più spazi di luce!^^

     

    Buona fortuna e buon making!

    Grazie Dexter, specie per quanto riguarda il commento fatto alle animazioni, del resto mi sono spremuto proprio al massimo pur di rendere delle animazioni fluide, ma anche causa registrazioni pessime in passato con fraps la fluidità veniva letteralmente dimezzata :)

     

    Una cosa. CAMBIA l'effetto di cambio testa\mani.

    Sentire il rumore di una lama ogni volta che si cambia non è molto bello per i propri nervi tesi.

    Sono d'accordo :( purtroppo i musicisti sono sempre pronti a comporre nuove splendide celebrazioni ma gli ho più e più volte chiesto di realizzarmi suoni ed effetti default per l'intero sistema di gioco, e rimandano continuamente :(

     

    CHRIS

  10. Si però è anche vero che qualora mettessi i save point manuali...non sarebbero sempre accessibili, ma solo e in esclusivo caso di save points come le vecchie "care" macchine da scrivere della serie Resident Evil, in parole povere dovremmo poter raggiungere dei punti particolari delle mappe per poter salvare.
  11. Vorrei un caro consiglio da tutti voi cari ragazzi.

     

    In quanto Remothered vanterà differenti epiloghi di gioco che si dirameranno vivendo esperienze sensibilmente variegate avevo fortemente pensato di eliminare i salvataggi manuali e sostituirli con quelli automatici anche perchè i save points manuali faciliterebbero troppo il completamento del gioco in tutte le sue varianti facendo perdere a mio avviso la sensazione di ansia e survival.

     

    Cosa mi consigliate?

     

    L'esperienza che volevo proporre era un pò come succedeva in Forbidden Siren e Heavy Rain, come se si stesse realmente vivendo una vita parallela, le cui scelte avrebbero seriamente modificato irrimediabilmente tutto il corso delle vicende, però mettendo a DOC l'idea di non star mai facendo la cosa sbagliata, ma solo una cosa letteralmente diversa da un'altra.

     

    CHRIS

  12. Interessante. Ma... apparte che il suono dell'interferenza continua a cnhe dopo che cambi oggetto. ò_ò Ma, ho trovato la fase di caricamento un po' lunghina. Ci saranno tante cose da collegare, no?

    Non pensi che questo possa rallentare il gioco?

    Non è una fase di caricamento, ma una fase giocabile dove dovrai rispettare la sequenza di tasti pigiandoli nel momento in cui si illuminano.

     

    Rallentare? No, ne dubito, anzi a mio avviso conferisce in un certo senso a dargli varietà e spessore un pò più strategico e ragionato.

     

    Per quanto riguarda il suono dell'interferenza, beh, deve anche avere il tempo di esaurirsi, ma sto provvedendo ;)

     

    CHRIS

  13. Menù abbastanza piattino XD, a me piacciono corposi, comunque son gusti! :D Anzi c'è da dire molto intonato col resto di skin e skinnine, bene per l'uniformità di stile! E:3

    Beh c'è anche che graficamente è ancora incompleto, stavo pensando di scrivere in alto a destra successivamente alla scelta della sezione, "Fase Rem" e "Animorum".

     

    Uhm radio a nastri? :D Ah giusto devo commentare l'animorum in generale... XD interessante... ma torniamo alla nostra cara radio a nastri che mi fa tanto project zero! :3

    ^ ^

    Comunque se son così tanti spero in qualche spoiler sui poteri esoterici! :D

    Beh ho giocato ai vari Fatal Frame (Project Zero) ma le protagoniste trovano una radio che riesce a percepire i lamenti degli spettri ritrovando particolari pietre dal valore esoterico, ma non hanno alcuno spessore nel gameplay, ma solo da un punto di vista narrativo, per cui la somiglianza è solo alla base poichè questa radio serve invece come mezzo per correlare in fase rem due o più elementi al fine di trovare la giusta direzione di gioco :sisi:

     

    Beh i poteri esoterici saranno molteplici ma non numerosi quanto in un comune gdr, Jennifer si accorgerà solo per caso che aperto l'Animorum il nemico verrà come ustionato e di conseguenza adopererà più e più volte il libro per difendersi dai nemici o ad esempio aprirsi un varco attraverso fastidiose ramificazioni che non la lasciano passare.

     

    ?

    Non è un po' strano quel sbloccare ed eseguire? Oppure intendi contemporaneamente? Cioè mi sa strano che prima raggiungi un tot di esperienza e sblocchi senza poter usare e poi lo raggiungi un altro tot e puoi usarlo... ma forse male ho capito io ed è contemporaneamente sblocchi ed usi!

    ^ ^

    Aahahahaha sarà che mi sono spiegato male :sisi: volevo intendere che Jennifer col passare del tempo, e a seguire dell'usufrutto di poteri esoterici, ne acquisirà dei nuovi, un pò come i punti EXP di un comune gdr, arrivata ad esempio al livello 10 Jennifer potrà "imparare" l'incantesimo "urlo del demonio": avendo a disposizione 30 punti esoterici e l'incantesimo per essere attivato ne costa ad esempio 18, starà a voi scegliere se sbloccare o no l'incantesimo o se magari preferite sfruttare i punti esoterici per sbloccare invece l'incantesimo "occhio maligno" che ne costa 29. Capito adesso? :sisi: Una volta sbloccati gli incantesimi saranno comunque equipaggiabili solo uno per volta. :sisi:

     

    Come detto più che interessante la fase REM, apre anche diverse piste per il completamento del gioco :3, uh ecco spiegato un nastro! XD Capito dal video come funziona, non mi dispiace il minigiochino. Magari per collegare telefono-chiama qualcuno non era proprio necessario evocare delle divinità, ma... XDXD

    ^ ^

    E' appunto questo il problema, ehehehe nei giochi si crede di star agendo attivamente sul corso degli eventi ma in realtà si è completamente passivi e si è vittima del corso inesorabile, sebbene talvolta particolarmente variegato, degli eventi. Si arriva ad esempio a capire ASSIEME, o addirittura DOPO l'eroe stesso, qualcosa nella trama. "Oh ma è tutto chiaro, ho trovato la penna di Mary accanto al corpo di Anne...dunque è lei l'assassina!!" Di solito si è così, ma in questo caso no, non lo sarà! Scovato ad esempio l'elemento "penna" starà a voi correlare eventualmente l'oggetto con l'elemento "Mary", poichè magari avrete ricordato che all'inizio del gioco Mary giocherellava con una penna mentre discuteva col gruppo. Stesso discorso vale per il telefono, Jennifer è confusa, non sa che fare e crede di far la cosa sbagliata qualunque cosa decida. Il correlare Mary al telefono è una netta presa di posizione: "DEVO AVVISARE MARY!". :tongue: E comunque no, nessuna divinità, lei in realtà è in fase rem, in altre parole, in una fase di simil-trance mentre dorme :sisi:

     

    Non posso fare a meno di chiedere... e quell'ovalino più piccolo nel mezzo del menù? :3

    ^ ^

    Ahehm credimi, è stato il primo dei tre ovali, poi una volta a lavoro su photoshop mi sono reso conto di averlo lasciato per ultimo e adesso non so più xkè l'ho fatto X'D :sisi:

    Oddio cioè si, è anche un elemento che a mio avviso riempie ulteriormente la schermata, però non ricordo se l'avevo concepito come elenco voci tipo "correla, esamina, etc". Quindi per quanto ne cocerne la fase rem almeno al momento ha uno scopo da definire, per quanto riguarda invece l'animorum servirà per l'acquisizione del potere esoterico (talvolta nocivo).

     

    CHRIS

  14. Detto Fatto :sisi:

     

    Questo è il menu di gioco in cui Jennifer potrà accedere regolarmente, ulteriormente suddiviso in Fase Rem e Animorum:

    http://img716.imageshack.us/img716/7288/unledtime0001118.png

     

    L'animorum ci porta diritti al libro dei Custodi delle Anime che Jennifer troverà poco più avanti nel gioco insieme ad una vecchia radio a nastri e sarà sempre accessibile per accedere alla lista di poteri esoterici equipaggiabili uno per volta ed eseguibili durante l'esplorazione di gioco come ad esempio per frenare i nemici (mai ucciderli) o magari conseguire ad un qualche enigma di gioco. I potenziamenti esoterici saranno molteplici e decisamente diversi fra loro, molto in stile RPG per intenderci, con tanto di "esperienza" sufficiente richiesta per poterli sbloccare ed eseguire, ma questo ve lo mosterò POI.

     

    La fase REM invece (quello che ci vedremo trattare in questo spazio), elenca automaticamente tutti gli elementi rilevanti incontrati durante il gioco, che si tratti di personaggi, oggetti o anche scenari più o meno rilevanti. Se un numero di elementi è facilmente accessibile sin dall'inizio del gioco, molti altri invece saranno meno accessibili, difficilmente reperibili e talvolta arrivabili solo mediante correlazione di due elementi precedentemente sbloccati. La fase REM a differenza poi dell'Animorum non sarà accessibile in caso di presenza nemica.

     

    http://img51.imageshack.us/img51/9339/unledtime0011204.png

     

    In questo caso Jennifer è ancora a pochi passi dall'inizio del gioco, per cui gli unici elementi sbloccati sono un telefono e i personaggi che ha incontrato. Lo specchio di sinistra servirà da elenco per gli elementi della fase REM, quello di destra invece servirà da anteprima per l'elemento evidenziato che verrà appositamente descritto in basso al centro per facilitarne la comprensione.

     

    Al margine massimo inferiore potete notare un nastro con adiacente una banda in cui puntano dei aghi di rame con relative intestazioni (Q, A, Z a sinistra e W, S, X a destra). Correlati due elementi qualsiasi partirà il nastro ed un'energia fra gli aghi di rame, quando l'apposito ago si colorerà non vi resterà che premere il corrispettivo tasto e rispettare correttamente la sequenza, in caso contrario la trasmissione verrà interrotta e gli elementi non verranno correlati. Ovviamente nel caso in cui la sequenza sia stata rispettata, potreste sbloccare un nuovo elemento nell'elenco apposito o direttamente venir proiettati a dei "flash forward" in cui sarete materia inconsistente e dovrete tentare di agire sugli eventi al fine di giovare la posizione vostra o di un amico. Le intuizioni invece verranno semplicemente descritte, modificando comunque lo scopo di gioco. Talvolta però correlare elementi scollegati fra loro vi porterà a nuove errate convinzioni e ad un peggiore epilogo di gioco.

     

    A seguire un link al video della Fase Rem con correlazione, minigame, conseguente nuovo elemento sbloccato ed un'intuizione:

     

    REMOTHERED - Fase Rem (Video del gameplay)

     

    Spero in vostri commenti :sisi:

     

    CHRIS

  15. Chiedo INFINITIVAMENTE venia, purtroppo per tutte e quasi le 24h non sono riuscito a toccare pc, rpg maker e remothered ne tanto più fraps e camtasia per gli screenshots.

     

    Domani pubblicherò il tutto e l'attesa sarà ri-premiata, sorry :happy:

     

    CHRIS

  16. Domani (in realtà fra qualche ora ehehehe :sisi: ) posterò degli screen o meglio ancora (e almeno spero di riuscirci in tempo) un video della fase REM di Remothered che consiste nell'archiviare elementi e o eventuali indizi da correlare al fine di sbloccare intuizioni o predizioni.

     

    Nel caso delle intuizioni vi faccio un esempio:

    trovate un paio di occhiali, una volta esaminati apparirà sullo schermo la voce "Aggiunto un nuovo elemento al menu intuizioni e predizioni". Nell'esaminare l'oggetto, Jennifer preciserà sui dettagli puramente "superficiali" dell'elemento, ma starà voi, anche in seguito alla vostra attenzione di gioco, correlare (eventualmente) l'oggeto ad un evento o ad un personaggio del gioco (anch'essi elementi sbloccabili nel menu, accessibile previa ESC/X). Selezionare gli occhiali e correlarli ad esempio ad Anne, ne conseguirà un minigioco; se avete fatto correttamente e qualora la correlazione fosse corretta Jennifer ne uscirà precisando "Oh...Anne è passata di qui! Devo trovarla!" e così il gioco prenderà una piega differente. :sisi:

     

    Nel caso invece delle predizioni:

    il più delle volte sono elementi "spirituali" non riscontrabili ad occhio nudo ma solo ed esclusivamente percettibili attraverso il sesto senso di Jennifer, selezionando in game l'icona del cervello scorrendo col tasto A, una volta riscontrata un'interferenza notevole avrete eventualmente trovato qualcosa dalla non trascurabile potenza spirituale e si aprirà in automatico il menu intuizioni e predizioni, correlate l'energia ad un elemento, il minigioco che ne succede e se tutto è stato fatto per bene, inclusa la correlazione, Jennifer verrà proiettata come materia inconsistente in una visione "flash-forward" o comunque una predizione, in cui avrete TOTALE influenza sugli scenari di gioco tramite forza spiritica, per tentare di modificare gli eventi, ma non sul personaggio che vi vedrete assistere, come nel caso di Laura in fuga dal killer, spingete il mobile per bloccare la porta da cui il killer tenterà di apparire e cambierete il corso degli eventi, talvota in meglio...talvolta in peggio :sisi:

     

    CHRIS

  17. Ma noooooo ehehehe aspè

    mi sa che c'è stato un fraintendimento :sisi: Mary è si una tutrice all'orfanatrofio Granite, ma questo in cui le tipe stanno arrivando non è l'orfanatrofio ma la magione del proprietario terriero, il signor Barrows, che le ha adottate, così Mary le sta solo accompagnando indirizzando leazze rag alle loro camere. ehehehehe :sisi:

     

    Beh la giornalista Dakota Wrang è un personaggio di contorno come tanti altri, breve apparizione e banale incursione nella trama, nulla di più :biggrin:

     

    CHRIS

×
×
  • Create New...