Chris Darril
-
Posts
634 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Chris Darril
-
-
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.
-
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

-
Forse le seguenti possono bastare, almeno che non ricordi male
: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
-
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
vi dicevo io che una volta trovato il programma giusto per catturare video vi avrei mostrato delle buone atmosfere
CHRIS
-
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
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.
CHRIS
-
Forse qua si vede meglio, anyway, credetemi...è stato un lavoraccio far coincidere l'intera foresta fra fog, panorama e tileset...
http://www.facebook.com/video/video.php?v=116720821745048
EDIT: Avevo cercato di incorporarne il codice per condividere direttamente il video, ma a quanto pare non funziona
-
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
-
FINALMENTE forse IL video più interessante e succoso mostrato fin ad oggi
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
-
Avendo Windows 7 in un nuovo Sony Vaio mi compare solo "Personalizza"
Di proprietà invece non c'è proprio traccia :P
-
E da dove dovrei settarlo?
-
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
-
-
Ma non vorrei che il tutto andasse a deficitare la difficoltà di gioco...
-
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.
-
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
-
@TIO:
Un piccolo grande problemuccio: la home non è aggiornata con lo screen vincitore

-
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
-
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
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
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?
Una volta sbloccati gli incantesimi saranno comunque equipaggiabili solo uno per volta.
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!".
E comunque no, nessuna divinità, lei in realtà è in fase rem, in altre parole, in una fase di simil-trance mentre dorme
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
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
-
infatti

se ci sei anche al prossimo ho paura che dovrai valutare me 
Beh allora...
CATTIVO Mode ON
XD
-
Vittoria meritata sicuramente!
Nel complesso però questo screen contest mi pare abbastanza scadente.
D'accordissimo...
e stavolta sono stato anche il più buono tutto sommato

-
Detto Fatto
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
CHRIS
-
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
-
Domani (in realtà fra qualche ora ehehehe
) 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.
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
CHRIS
-
Ma noooooo ehehehe aspè
mi sa che c'è stato un fraintendimento
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
Beh la giornalista Dakota Wrang è un personaggio di contorno come tanti altri, breve apparizione e banale incursione nella trama, nulla di più
CHRIS

SCRIPT Interactive Fogs & Tilesets
in Richieste scripts RGSS (XP)
Posted
Se non ricordo male è quello di default