RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
"Wait for move's completion" Bug Tip

0 Members and 1 Guest are viewing this topic.

***
Rep:
Level 88
I hate to hate things.
 All right , i was having this problem for some time now, and i'd like to make something very clear: CHANGING THE STANDARD SCRIPTS AFFECTS NON-RELATED EVENT BEHAVIORS.
First, i'm using the original english version of RMXP. I was having trouble making autobattles - the 'force action' command didn't work - and "wait for move's completion" command also stopped working in animated cutscenes after it's second instruction in a single event, when i just decide to do the obvious: to start a standard game (no new scripts) and re-make the events with the standard RTP. The comands, then, worked.
It seems that using extra scripts for animated battles, intros, special menus and advanced Message systems have a PROFOUND impact in the behaviour of the standard event commands. The guys don't usually test all variations of the scripts, leaving undetected bugs.
 I may be speaking the obvious for the rardcore users here, but i didn't find the exact subject in the forums, so i'm placing the tip: if cutscenes and such stop working for some unknow reason, check the event again with a standard new game.

"wait for move's completion" can be replace by "wait" (thought value will be found by trial and error). For the autobattle, unfortunately, there's no solution.
I need some real WORKING AVI script in RMXP!
3D ANIMATIONS:
http://www.youtube.com/profile?user=Ericmor
3D and 2D anime ART:
http://ericmor.deviantart.com/gallery/

********
EXA
Rep:
Level 92
Pikachu on a toilet
Project of the Month winner for April 2007
Lol, that's not the original RMXP. It's the illegal Dyna Edition. In the legal one the Auto-battle/Force action works fine. ;) In the legal one "Wait for move's completion" works as well.
Get King of Booze for Android, for iOS, for OUYA or for Windows!
Visit our website.
You can also love/hate us on Facebook or the game itself.


Get DropBox, the best free file syncing service there is!

***
Rep:
Level 88
I hate to hate things.
Long time no read, Blizzard ;D hows going man? :D
 But, mine IS the original version - paid 60 shells  for Enterbrain and all - but when i add that TON of scripts, those events starts to behave like that...
Or 'DYNA' is any game that uses those scripts? Remember, i'm still using that animated battle system merged with zoom mode that you gave me... maybe the bug lies there?  ???
In any case, i've workarounding those limitations so i can post my long due demo...  :P
I need some real WORKING AVI script in RMXP!
3D ANIMATIONS:
http://www.youtube.com/profile?user=Ericmor
3D and 2D anime ART:
http://ericmor.deviantart.com/gallery/

********
EXA
Rep:
Level 92
Pikachu on a toilet
Project of the Month winner for April 2007
Yeah, it could be that the CBS is causing the bug. My RMXP (I didn't pay, but I have the legal one) works just fine with both commands. =/
Get King of Booze for Android, for iOS, for OUYA or for Windows!
Visit our website.
You can also love/hate us on Facebook or the game itself.


Get DropBox, the best free file syncing service there is!

***
Rep:
Level 88
I hate to hate things.
Mmmm... WHERE in the CBS code would the bug hide? Something related to force action, but WHAT?!?
 I was almost testing with the old ABS, but the zoom code is so cool that i won't let it go even with the bug.  ;8
 
I need some real WORKING AVI script in RMXP!
3D ANIMATIONS:
http://www.youtube.com/profile?user=Ericmor
3D and 2D anime ART:
http://ericmor.deviantart.com/gallery/

********
EXA
Rep:
Level 92
Pikachu on a toilet
Project of the Month winner for April 2007
Lol! Try to check out every method where you can find the phrase force_action. Press CTRL+F for script specific search or CTRL+SHIFT+F for global search on scripts. Also check out stuff like def make_attack_action_result in the DBS. You might find the bug that way.
Get King of Booze for Android, for iOS, for OUYA or for Windows!
Visit our website.
You can also love/hate us on Facebook or the game itself.


Get DropBox, the best free file syncing service there is!

***
Rep:
Level 88
I hate to hate things.
Mmmm.... can't find those two instructions... NOWHERE on the entire database... weird.   ???
Blizz, i'm reposting the ABS-Zoom script here, just so you can check if is your original version or something.  :P
Animated Battle System with Zoom

Code: [Select]
#==============================================================================
#------------------------------------------------------------------------------
#   Animated Side-view Battle System - by Minkoff
#------------------------------------------------------------------------------
#   3D Pseudio Battle Camera - by KGC
#------------------------------------------------------------------------------
#   - merged together by Blizzard
#------------------------------------------------------------------------------
#
# - Note from Blizzard:
#
# Don't put enemies too far to the right or too far to the left. The camera
# will go out of your screen and the battleback will glitch. I have left all
# the commented lines from the ASB, but KGC's comment were not readable, so I
# have removed them. If you want to disable the camera for whatever reason
# you can define which switch should perform the disabling (below). Turning on
# the switch with the ID called BLOCK_SWITCH will disable the camera then.
#
# N-Joy! =D
#
#==============================================================================

#==============================================================================
# module KGC
#==============================================================================

module KGC
  $game_special_elements = {}
  $imported = {}
  $data_states = load_data("Data/States.rxdata")
  $data_system = load_data("Data/System.rxdata")
  BC_SPEED_INIT = 24 # you can change this number
#  BLOCK_SWITCH = 25 # you can change this number
end

$imported["BattleCamera"] = true
$imported["Base Reinforce"] = true

#==============================================================================
# ** Sprite_Battler
#==============================================================================

class Sprite_Battler < RPG::Sprite
 
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  alias cbs_initialize initialize
  def initialize(viewport, battler = nil)
    # Configuration
    @speed = 6
    @frames = 8
    @poses = 11
    @mirror_enemies = true
    @stationary_enemies = false
    @stationary_actors = false
    @calculate_speed = false
    @phasing = false
    # DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING
    @frame, @pose = 0, 0
    @last_time = 0
    @last_move_time = 0
    cbs_initialize(viewport, battler)
    self.mirror = !!battler and @mirror_enemies
    viewport.z = 99
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias cbs_update update
  def update
    return unless @battler
    # Regular Update
    cbs_update
    # Start Routine
    unless @started
      @pose = state
      @width = @width / @frames
      @height = @height / @poses
      @display_x = @battler.screen_x
      @display_y = @battler.screen_y
      @destination_x = @display_x
      @destination_y = @display_y
      @started = true
    end
    # Cut Out Frame
    self.src_rect.set(@width * @frame, @height * @pose, @width, @height)
    # Position Sprite
    if moving and not $scene.camera.moving
      self.x = @display_x
      self.y = @display_y
    else
      self.x = @battler.screen_x
      self.y = @battler.screen_y
    end
    self.z = @battler.screen_y
    self.ox = @width / 2
    self.oy = @height
    # Setup Animation
    time = Graphics.frame_count / (Graphics.frame_rate / @speed)
    if @last_time < time
      @frame = (@frame + 1) % @frames
      if @frame == 0
        if @freeze
          @frame = @frames - 1
          return
        end
        @pose = state
      end
    end
    @last_time = time
    # Move It
    move if moving and not $scene.camera.moving
    # KGC
    #return if @battler == nil
    #unless $game_switches[BLOCK_SWITCH]
      factor1 = Math.sqrt((240 + @display_y.to_f) / (240 + @battler.origin_y))
      factor2 = (240 + @display_y.to_f) / (240 + @battler.origin_y)
      if @display_y > @battler.origin_y
        n = @battler.zoom - 1 + factor1 * factor2
     # else
     #   n = @battler.zoom - 1 + factor2 * factor2
     # end
    else
      n = 1
    end
    self.zoom_x = self.zoom_y = n
  end
  #--------------------------------------------------------------------------
  # * Current State
  #--------------------------------------------------------------------------
  def state
    # Damage State
    if [nil,{}].include?(@battler.damage)
      # Battler Fine
      @state = 0
      # Battler Wounded
      @state = 2 if @battler.hp < @battler.maxhp / 4
      # Battler Dead
      if @battler.dead?
        @state = 10
        # Fix Opacity
        self.opacity = 255
      end
    end
    # Guarding State
    @state = 3 if @battler.guarding?
    # Moving State
    if moving
      # Battler Moving Left
      @state = 4 if moving.eql?(0)
      # Battler Moving Right
      @state = 5 if moving.eql?(1)
    end
    # Return State
    return @state
  end
  #--------------------------------------------------------------------------
  # * Move
  #--------------------------------------------------------------------------
  def move
    time = Graphics.frame_count / (Graphics.frame_rate.to_f / (@speed * 5))
    if @last_move_time < time
      # Pause for Animation
      return if @pose != state
      # Phasing
      if @phasing
        d1 = (@display_x - @origin_x).abs
        d2 = (@display_y - @origin_y).abs
        d3 = (@display_x - @destination_x).abs
        d4 = (@display_y - @destination_y).abs
        self.opacity = [255 - ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max
      end
      # Calculate Difference
      difference_x = (@display_x - @destination_x).abs
      difference_y = (@display_y - @destination_y).abs
      # Done? Reset, Stop
      if [difference_x, difference_y].max.between?(0, 8)
        @display_x = @destination_x
        @display_y = @destination_y
        @pose = state
        return
      end
      # Calculate Movement Increments
      increment_x = increment_y = 1
      if difference_x < difference_y
        increment_x = 1.0 / (difference_y.to_f / difference_x)
      elsif difference_y < difference_x
        increment_y = 1.0 / (difference_x.to_f / difference_y)
      end
      # Calculate Movement Speed
      if @calculate_speed
        total = 0; $game_party.actors.each{ |actor| total += actor.agi }
        speed = @battler.agi.to_f / (total / $game_party.actors.size)
        increment_x *= speed
        increment_y *= speed
      end
      # Multiply and Move
      multiplier_x = (@destination_x - @display_x > 0 ? 8 : -8)
      multiplier_y = (@destination_y - @display_y > 0 ? 8 : -8)
      @display_x += (increment_x * multiplier_x).to_i
      @display_y += (increment_y * multiplier_y).to_i
    end
    @last_move_time = time
  end
  #--------------------------------------------------------------------------
  # * Set Movement
  #--------------------------------------------------------------------------
  def setmove(destination_x, destination_y)
    unless (@battler.is_a?(Game_Enemy) and @stationary_enemies) or
           (@battler.is_a?(Game_Actor) and @stationary_actors)
      @original_x = @display_x
      @original_y = @display_y
      @destination_x = destination_x
      @destination_y = destination_y
    end
  end
  #--------------------------------------------------------------------------
  # * Movement Check
  #--------------------------------------------------------------------------
  def moving
    if (@display_x != @destination_x and @display_y != @destination_y and !@battler.dead?)
      return (@display_x > @destination_x ? 0 : 1)
    end
  end
  #--------------------------------------------------------------------------
  # * Set Pose
  #--------------------------------------------------------------------------
  def pose=(pose)
    @pose = pose
    @frame = 0
  end
  #--------------------------------------------------------------------------
  # * Freeze
  #--------------------------------------------------------------------------
  def freeze
    @freeze = true
  end
  #--------------------------------------------------------------------------
  # * Fallen Pose
  #--------------------------------------------------------------------------
  def collapse
  end
 
end

#==============================================================================
# Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
 
  attr_reader :origin_x, :origin_y
 
  alias initialize_KGC_BattleCamera initialize
  def initialize(troop_id, member_index)
    initialize_KGC_BattleCamera(troop_id, member_index)
    @origin_x = $data_troops[@troop_id].members[@member_index].x
    @origin_y = $data_troops[@troop_id].members[@member_index].y
  end
 
  def screen_x
    return @origin_x - $scene.camera.x * self.zoom
  end
 
  def old_screen_x
    return screen_x
  end
 
  def screen_y
    return @origin_y - $scene.camera.y * self.zoom
  end
 
  def old_screen_y
    return screen_y
  end
 
  def zoom
    #unless $game_switches[BLOCK_SWITCH]
      n = (1.00 + $scene.camera.z / 512.00) * ((@origin_y - 304) / 256.00 + 1)
    #else
    #  n = 1
    #end
    return n
  end
 
end

#==============================================================================
# ** Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
 
  attr_reader :origin_x, :origin_y
 
  alias setup_KGC_BattleCamera setup
  def setup(actor_id)
    setup_KGC_BattleCamera(actor_id)
    @origin_x = 0
    @origin_y = 0
  end
 
  def screen_x
    return @origin_x - $scene.camera.x * self.zoom
  end
 
  def screen_y
    return @origin_y - $scene.camera.y * self.zoom
  end
 
  def old_screen_x
    if self.index != nil
      return self.index * 45 + 450
    else
      return 0
    end
  end
 
  def old_screen_y
    return self.index * 35 + 200
  end
 
  def old_screen_z
    return 320 - old_screen_y
  end
 
  def zoom
   # unless $game_switches[BLOCK_SWITCH]
      n = (1.00 + $scene.camera.z / 512.00) * ((@origin_y - 304) / 256.00 + 1)
   # else
   #   n = 1
   # end
    return n
  end
 
  def set_coordinates
    @origin_x = old_screen_x
    @origin_y = old_screen_y
  end
 
end

#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle
 
  attr_reader :camera
 
  #--------------------------------------------------------------------------
  # * KGC
  #--------------------------------------------------------------------------
  alias main_KGC_BattleCamera main
  def main
    @camera = Camera.new
    for actor in $game_party.actors
      actor.set_coordinates
    end
    main_KGC_BattleCamera
  end
  #--------------------------------------------------------------------------
  # * KGC
  #--------------------------------------------------------------------------
  alias update_KGC_BattleCamera update
  def update
    @camera.update
    update_KGC_BattleCamera
  end
  #--------------------------------------------------------------------------
  # * Action Animation, Movement
  #--------------------------------------------------------------------------
  alias cbs_update_phase4_step3 update_phase4_step3
  def update_phase4_step3(battler = @active_battler)
    @rtab = !@target_battlers
    target = (@rtab ? battler.target : @target_battlers)[0]
    @moved = {} unless @moved
    return if @spriteset.battler(battler).moving
    case battler.current_action.kind
    when 0 # Attack
      if not (@moved[battler] or battler.guarding?)
        offset = (battler.is_a?(Game_Actor) ? 40 : -40)
        @spriteset.battler(battler).setmove(target.origin_x + offset, target.origin_y) ###
        @moved[battler] = true
        return
      elsif not battler.guarding?
        @spriteset.battler(battler).pose = 6 #+ rand(2)
        @spriteset.battler(battler).setmove(battler.origin_x, battler.origin_y) ###
      end
    when 1 # Skill
      @spriteset.battler(battler).pose = 8
    when 2 # Item
      @spriteset.battler(battler).pose = 8
    end
    @moved[battler] = false
    @rtab ? cbs_update_phase4_step3(battler) : cbs_update_phase4_step3
  end
  #--------------------------------------------------------------------------
  # * Hit Animation
  #--------------------------------------------------------------------------
  alias cbs_update_phase4_step4 update_phase4_step4
  def update_phase4_step4(battler = @active_battler)
    for target in (@rtab ? battler.target : @target_battlers)
      damage = (@rtab ? target.damage[battler] : target.damage)
      if damage.is_a?(Numeric) and damage > 0
        @spriteset.battler(target).pose = 1
      end
    end
    @rtab ? cbs_update_phase4_step4(battler) : cbs_update_phase4_step4
  end
  #--------------------------------------------------------------------------
  # * Victory Animation
  #--------------------------------------------------------------------------
  alias cbs_start_phase5 start_phase5
  def start_phase5
    for actor in $game_party.actors
      return if @spriteset.battler(actor).moving
    end
    for actor in $game_party.actors
      unless actor.dead?
        @spriteset.battler(actor).pose = 9
        @spriteset.battler(actor).freeze
      end
    end
    cbs_start_phase5
  end
  #--------------------------------------------------------------------------
  # * Change Arrow Viewport
  #--------------------------------------------------------------------------
  alias cbs_start_enemy_select start_enemy_select
  def start_enemy_select
    cbs_start_enemy_select
    @enemy_arrow.dispose
    @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2)
    @enemy_arrow.help_window = @help_window
  end
  #--------------------------------------------------------------------------
  # * KGC
  #--------------------------------------------------------------------------
  alias update_phase3_enemy_select_KGC_BattleCamera update_phase3_enemy_select
  def update_phase3_enemy_select
  #  unless $game_switches[BLOCK_SWITCH]
      if !$imported["ActiveCountBattle"] || @action_battler == nil
        @camera.move_target(@enemy_arrow.enemy)
      end
  #  end
    update_phase3_enemy_select_KGC_BattleCamera
  end
  #--------------------------------------------------------------------------
  # * KGC
  #--------------------------------------------------------------------------
  alias end_enemy_select_KGC_BattleCamera end_enemy_select
  def end_enemy_select
  #  unless $game_switches[BLOCK_SWITCH]
      if !$imported["ActiveCountBattle"] || @action_battler == nil
        @camera.move(160, 160, 0)
      end
  #  end
    end_enemy_select_KGC_BattleCamera
  end
 
end

#==============================================================================
# ** Spriteset_Battle
#==============================================================================

class Spriteset_Battle
 
  attr_reader :actor_sprites
 
  #--------------------------------------------------------------------------
  # * Change Enemy Viewport
  #--------------------------------------------------------------------------
  alias cbs_initialize initialize
  def initialize
    cbs_initialize
    @enemy_sprites = []
    for enemy in $game_troop.enemies.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport2, enemy))
    end
  end
  #--------------------------------------------------------------------------
  # * Find Sprite From Battler Handle
  #--------------------------------------------------------------------------
  def battler(handle)
    for sprite in @actor_sprites + @enemy_sprites
      return sprite if sprite.battler == handle
    end
  end
  #--------------------------------------------------------------------------
  # * KGC
  #--------------------------------------------------------------------------
  alias update_KGC_BattleCamera update
  def update
    update_KGC_BattleCamera
    if $DEBUG
      if Input::trigger?(Input::Z)
        c = $scene.camera
        zoom = c.z / 512.00 + 1
        p "#{c.x}, #{c.y}, #{c.z}"
        p "#{@battleback_sprite.x + 320}, #{@battleback_sprite.y + 304}, #{zoom}"
      end
    end
   # unless $game_switches[BLOCK_SWITCH]
      cx, cy, cz = $scene.camera.x, $scene.camera.y, $scene.camera.z
      bx, by = @battleback_sprite.x + 320, @battleback_sprite.y + 304
      if bx != cx || by != cy || @bz != cz
        zoom = cz / 512.00 + 1
        @battleback_sprite.zoom_x = zoom * 1.5
        @battleback_sprite.zoom_y = zoom * 1.5
        if $imported["Base Reinforce"]
          @battleback_sprite.ox = @battleback_sprite.bitmap.width * 0.52
          @battleback_sprite.oy = @battleback_sprite.bitmap.height / 2
          mag_x = 600.0 / @battleback_sprite.bitmap.width
          mag_y = 300.0 / @battleback_sprite.bitmap.height
          @battleback_sprite.zoom_x *= mag_x
          @battleback_sprite.zoom_y *= mag_y
        end
        @battleback_sprite.x = -cx * zoom / 2 - 320 + @battleback_sprite.ox * 2
        @battleback_sprite.y = -cy * zoom / 2 - 144 + @battleback_sprite.oy * 2
        @bz = cz
      end
   # end
  end

end

#==============================================================================
# ** Arrow_Base
#==============================================================================

class Arrow_Base < Sprite
 
  #--------------------------------------------------------------------------
  # * Reposition Arrows
  #--------------------------------------------------------------------------
  alias cbs_initialize initialize
  def initialize(viewport)
    cbs_initialize(viewport)
    self.ox = 14
    self.oy = 10
  end
 
end

#==============================================================================
# Camera
#==============================================================================

class Camera
 
  attr_reader :moving
  attr_reader :x, :y, :z
  attr_accessor :move_speed
 
  def initialize
    @x, @y, @z = 0, 0, 0
    @move_x = @move_y = @move_z = 0
    @move_speed = KGC::BC_SPEED_INIT
    @moving = false
  end
 
  def move(x, y, z)
    @move_x, @move_y, @move_z = x - @x - 160, y - @y - 160, z - @z
  end
 
  def move_target(target)
    return if target == nil || !target.is_a?(Game_Enemy)
   # unless $game_switches[BLOCK_SWITCH]
      tx, ty = target.origin_x, target.origin_y - 144
      tz = (304 - target.origin_y) * 5
      move(tx, ty, tz)
   # end
  end
 
  def centering
    @move_x, @move_y, @move_z = -@x, -@y, -@z
  end
 
  def update
   # unless $game_switches[BLOCK_SWITCH]
      @moving = false
      mv = [[@move_x.abs * @move_speed / 160, 1].max, @move_speed].min
      if @move_x > 0
        @x += mv
        @move_x = [@move_x - mv, 0].max
        @moving = true
      elsif @move_x < 0
        @x -= mv
        @move_x = [@move_x + mv, 0].min
        @moving = true
      end
      mv = [[@move_y.abs * @move_speed / 160, 1].max, @move_speed].min
      if @move_y > 0
        @y += mv
        @move_y = [@move_y - mv, 0].max
        @moving = true
      elsif @move_y < 0
        @y -= mv
        @move_y = [@move_y + mv, 0].min
        @moving = true
      end
      mv = [[@move_z.abs * @move_speed / 96, 1].max, @move_speed * 2].min
      if @move_z > 0
        @z += mv
        @move_z = [@move_z - mv, 0].max
        @moving = true
      elsif @move_z < 0
        @z -= mv
        @move_z = [@move_z + mv, 0].min
        @moving = true
      end
   # end
  end
 
end

I need some real WORKING AVI script in RMXP!
3D ANIMATIONS:
http://www.youtube.com/profile?user=Ericmor
3D and 2D anime ART:
http://ericmor.deviantart.com/gallery/

********
EXA
Rep:
Level 92
Pikachu on a toilet
Project of the Month winner for April 2007
The script seems fine... Try finding forcing_battler instead.
Get King of Booze for Android, for iOS, for OUYA or for Windows!
Visit our website.
You can also love/hate us on Facebook or the game itself.


Get DropBox, the best free file syncing service there is!

***
Rep:
Level 88
I hate to hate things.
Mmm... hundreds of copies of that instruction trought all scripts, but that's not the worst - my scripts aren't even the SMXP original that i bought, they're still in japanese!!!! Maybe during one of the bughunts i switched all scripts to fix something important that didn't worked before.
It's added:
*catterpillar "train" party script;
*worldmap script;
*ring menu script;
*Animated Battle Zoom script;
*Logo script;
*Level Up Battle add;
*Advanced Message Script v4;
... and a DEEP change in all standard graphics Values to add more sprites in characters and battlers (8 in all), fit bigger images in savegames and menu screens, etc.
 Not time wise to try fixing all that stuff now - the game is STILL playable. Bah, i'm done with script fixing. For all the work, it would be better to fix my 3D engine for a realtime 3d rpg game, wich i will do after this game in anyway. In any case, thanks Blizz!  ;)

Well... back to work.  :'(
I need some real WORKING AVI script in RMXP!
3D ANIMATIONS:
http://www.youtube.com/profile?user=Ericmor
3D and 2D anime ART:
http://ericmor.deviantart.com/gallery/

***
Rep:
Level 88
I hate to hate things.
...aaand i got the idea of re-adding autobattle with animation tricks - "force action" doesn't work, but "show animation" does, so... The battlers doesn't move, they show ANIMATIONS of them moving - and it worked! :D

 ...almost, game crashed with a 'unhandled exception screen' with battles that continued even if character died(i added 999 damage on him for impact) so have to add an EMPTY sprite character and add "Abort battle" instruction in the event.
 Just thought of sharing - some of you guys where wondering WHY it's taking so long to complete this game... here you go.  ::)
I need some real WORKING AVI script in RMXP!
3D ANIMATIONS:
http://www.youtube.com/profile?user=Ericmor
3D and 2D anime ART:
http://ericmor.deviantart.com/gallery/