もっと自由にアニメーションタイルを配置したり、A4でも影が出なくできるようなスクリプトがほしいです
探してもなさそうなので、よろしくお願いします
影の出ないtileA4やA1以外でアニメーションができるように
Re: 影の出ないtileA4やA1以外でアニメーションができるように
後者は手動でどうにかして下さい
ツクール自体の仕様なので、スクリプトでは無理です
前者は、Libのツクールページ様のレイヤーシステム等を使って下さい
ツクール自体の仕様なので、スクリプトでは無理です
前者は、Libのツクールページ様のレイヤーシステム等を使って下さい
現在サポート終了中
Re: 影の出ないtileA4やA1以外でアニメーションができるように
RGSS2で月紳士さまのスクリプトにはあったので、RGSS3でもできるものと…
ありがとうございました
ありがとうございました
Re: 影の出ないtileA4やA1以外でアニメーションができるように
・・・そういう時は移植のリクエストを出してくれませんか?
ゼロから作るのと、移植とだと、
移植の方が参考資料があって断然楽なので・・・
影消しは多分同じように答えただろうけど、
同じ月紳士様の所にある「追加地形タイプ」は行けたかもしれないのに・・・
ゼロから作るのと、移植とだと、
移植の方が参考資料があって断然楽なので・・・
影消しは多分同じように答えただろうけど、
同じ月紳士様の所にある「追加地形タイプ」は行けたかもしれないのに・・・
現在サポート終了中
Re: 影の出ないtileA4やA1以外でアニメーションができるように
移植という概念を初めて知りました。すみません
Re: 影の出ないtileA4やA1以外でアニメーションができるように
Lib様の方のを使う方が良いと思うけど、
一応、月紳士様ので作ってみました
必要なければ無視して下さい

あと、使う際は、出来れば月紳士様の利用規約を読んでからにして下さい
(移植&改変素材です)
対応する画像(月紳士様のTileEみたいなの)は、
自分で作るか、誰かに作って貰って下さい
一応、月紳士様ので作ってみました
必要なければ無視して下さい

あと、使う際は、出来れば月紳士様の利用規約を読んでからにして下さい
(移植&改変素材です)
コード: 全て選択
# 「月紳士様【追加地形タイル(VX)】」改変、アニメタイル(A1)追加スクリプト(VXAce)
# 制作者:TOMO
#
# 指定したタイルB~EをタイルA1に追加出来るようにします
#
# ※補足
# 置換するタイルで、「通行:4方向」は設定しないで下さい(それ以外はOK)
# ※改変元
# 紳士の月面工房
# 月紳士様
# http://tsukishinshi.blog73.fc2.com/
# ※参考資料
# 半生@Page(仮)
# 半生様
# https://www.tktkgame.com/
# タイルマップID(VX)
#==============================================================================
# □ カスタマイズ項目
#==============================================================================
module Ex_Field_Tile
# タイルセットの設定
# 対象タイル名 => [置換タイル名, [対象タイルID, ・・・]],
Tileset = {
"TileE" => ["Dungeon_A1", [260, 261, 262, 263]],
}
# 対象タイルIDは、
# Bタイル(ID 0~255)、Cタイル(ID 256~511)、
# Dタイル(ID 512~767)、Eタイル(ID 768~1023)の内から指定できます。
# ここでIDを挙げた物が、置換タイルに置き換わります
end
class Game_Map
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :eft_ex_data
attr_reader :eff_ex_name
#--------------------------------------------------------------------------
# ◎ セットアップ
# map_id : マップ ID
#--------------------------------------------------------------------------
alias tig_eft_setup setup
def setup(map_id)
tig_eft_setup(map_id)
@eft_ex_data = Table.new(width, height, 4)
@eff_ex_name = ""
setup_eft_tiles
end
#--------------------------------------------------------------------------
# ○ 追加地形タイルのセットアップ
#--------------------------------------------------------------------------
def setup_eft_tiles
ex_id ||= []
4.times do |i|
if Ex_Field_Tile::Tileset.include?(tileset.tileset_names[i + 5])
@eff_ex_name = Ex_Field_Tile::Tileset[tileset.tileset_names[i + 5]][0]
ex_id = Ex_Field_Tile::Tileset[tileset.tileset_names[i + 5]][1]
break
end
end
return if @eff_ex_name.empty?
for x in 0...width
for y in 0...height
next unless ex_id.include?(@map.data[x, y, 2])
index = ex_id.index(@map.data[x, y, 2])
next if index > 31
auto_tile_id = 0
if round_y(y - 1) >= 0 and
@map.data[x, round_y(y-1), 2] != ex_id[index]
auto_tile_id = 20
end
if round_x(x - 1) >= 0 and
@map.data[round_x(x-1), y, 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 16
when 20 ; auto_tile_id = 34
end
end
if round_x(x + 1) < width and
@map.data[round_x(x+1), y, 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 24
when 16 ; auto_tile_id = 32
when 20 ; auto_tile_id = 36
when 34 ; auto_tile_id = 42
end
end
if round_x(y + 1) < height and
@map.data[x, round_y(y+1), 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 28
when 16 ; auto_tile_id = 40
when 20 ; auto_tile_id = 33
when 24 ; auto_tile_id = 38
when 32 ; auto_tile_id = 44
when 34 ; auto_tile_id = 43
when 36 ; auto_tile_id = 45
when 42 ; auto_tile_id = 46
end
end
if round_x(x - 1) >= 0 and round_y(y - 1) >= 0 and
@map.data[round_x(x-1), round_y(y-1), 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 1
when 24 ; auto_tile_id = 26
when 28 ; auto_tile_id = 29
when 38 ; auto_tile_id = 39
end
end
if round_x(x + 1) < width and round_y(y - 1) >= 0 and
@map.data[round_x(x+1), round_y(y-1), 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 2
when 1 ; auto_tile_id = 3
when 16 ; auto_tile_id = 17
when 28 ; auto_tile_id = 30
when 29 ; auto_tile_id = 31
when 40 ; auto_tile_id = 41
end
end
if round_x(x - 1) >= 0 and round_x(y + 1) < height and
@map.data[round_x(x-1), round_y(y+1), 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 8
when 1 ; auto_tile_id = 9
when 2 ; auto_tile_id = 10
when 3 ; auto_tile_id = 11
when 20 ; auto_tile_id = 22
when 24 ; auto_tile_id = 25
when 26 ; auto_tile_id = 27
when 36 ; auto_tile_id = 37
end
end
if round_x(x + 1) < width and round_x(y + 1) < height and
@map.data[round_x(x+1), round_y(y+1), 2] != ex_id[index]
case auto_tile_id
when 0 ; auto_tile_id = 4
when 1 ; auto_tile_id = 5
when 2 ; auto_tile_id = 6
when 3 ; auto_tile_id = 7
when 8 ; auto_tile_id = 12
when 9 ; auto_tile_id = 13
when 10 ; auto_tile_id = 14
when 11 ; auto_tile_id = 15
when 16 ; auto_tile_id = 18
when 17 ; auto_tile_id = 19
when 20 ; auto_tile_id = 21
when 22 ; auto_tile_id = 23
when 34 ; auto_tile_id = 35
end
end
@eft_ex_data[x, y, 1] = index * 48 + 2048 + auto_tile_id
end
end
for x in 0...width
for y in 0...height
next unless ex_id.include?(@map.data[x, y, 2])
@map.data[x, y, 1] = @map.data[x, y, 2]
@map.data[x, y, 2] = @map.data[x, y, 0]
end
end
end
end
class Spriteset_Map
#--------------------------------------------------------------------------
# ● タイルマップの作成
#--------------------------------------------------------------------------
alias tig_eft_create_tilemap create_tilemap
def create_tilemap
tig_eft_create_tilemap
@eff_ex_tilemap = Tilemap.new(@viewport1)
@eff_ex_tilemap.map_data = $game_map.eft_ex_data
unless $game_map.eff_ex_name.empty?
@eff_ex_tilemap.bitmaps[0] = Cache.tileset($game_map.eff_ex_name)
@eff_ex_tilemap.bitmaps[1] = Cache.tileset(@tileset.tileset_names[1])
@eff_ex_tilemap.bitmaps[2] = Cache.tileset(@tileset.tileset_names[2])
@eff_ex_tilemap.bitmaps[3] = Cache.tileset(@tileset.tileset_names[3])
@eff_ex_tilemap.bitmaps[4] = Cache.tileset(@tileset.tileset_names[4])
@eff_ex_tilemap.bitmaps[5] = Cache.tileset(@tileset.tileset_names[5])
@eff_ex_tilemap.bitmaps[6] = Cache.tileset(@tileset.tileset_names[6])
@eff_ex_tilemap.bitmaps[7] = Cache.tileset(@tileset.tileset_names[7])
@eff_ex_tilemap.bitmaps[8] = Cache.tileset(@tileset.tileset_names[8])
end
end
#--------------------------------------------------------------------------
# ● タイルセットのロード
#--------------------------------------------------------------------------
alias tig_eft_load_tileset load_tileset
def load_tileset
tig_eft_load_tileset
if @eff_ex_tilemap
unless $game_map.eff_ex_name.empty?
@eff_ex_tilemap.bitmaps[0] = Cache.tileset($game_map.eff_ex_name)
@eff_ex_tilemap.bitmaps[1] = Cache.tileset(@tileset.tileset_names[1])
@eff_ex_tilemap.bitmaps[2] = Cache.tileset(@tileset.tileset_names[2])
@eff_ex_tilemap.bitmaps[3] = Cache.tileset(@tileset.tileset_names[3])
@eff_ex_tilemap.bitmaps[4] = Cache.tileset(@tileset.tileset_names[4])
@eff_ex_tilemap.bitmaps[5] = Cache.tileset(@tileset.tileset_names[5])
@eff_ex_tilemap.bitmaps[6] = Cache.tileset(@tileset.tileset_names[6])
@eff_ex_tilemap.bitmaps[7] = Cache.tileset(@tileset.tileset_names[7])
@eff_ex_tilemap.bitmaps[8] = Cache.tileset(@tileset.tileset_names[8])
end
end
end
#--------------------------------------------------------------------------
# ● タイルマップの解放
#--------------------------------------------------------------------------
alias tig_eft_dispose_tilemap dispose_tilemap
def dispose_tilemap
tig_eft_dispose_tilemap
@eff_ex_tilemap.dispose
end
#--------------------------------------------------------------------------
# ● タイルマップの更新
#--------------------------------------------------------------------------
alias tig_eft_update_tilemap update_tilemap
def update_tilemap
tig_eft_update_tilemap
@eff_ex_tilemap.map_data = $game_map.eft_ex_data
@eff_ex_tilemap.ox = $game_map.display_x * 32
@eff_ex_tilemap.oy = $game_map.display_y * 32
@eff_ex_tilemap.update
end
end
自分で作るか、誰かに作って貰って下さい
現在サポート終了中
Re: 影の出ないtileA4やA1以外でアニメーションができるように
>TOMOさま
ありがとうございます。使わせていただきます!
ありがとうございます。使わせていただきます!