=begin ▼ キャラクターメイク データベース ver. 2.2 RPGツクールVXAce用スクリプト 制作 : 木星ペンギン URL : http://woodpenguin.blog.fc2.com/ ------------------------------------------------------------------------------ 概要 ゲーム内でキャラクター生成が出来るようにします。 ------------------------------------------------------------------------------ 使い方 イベントコマンドで以下のスクリプトを入力して実行してください。 SceneManager.call(Scene_CharacterMake) SceneManager.scene.prepare(α) # ← α にはアクターIDを入れてください =end module WdTk module CharMake #////////////////////////////////////////////////////////////////////////////// # # 設定項目 # #////////////////////////////////////////////////////////////////////////////// #////////////////////////////////////////////////////////////////////////// # ●キャラクターメイク #////////////////////////////////////////////////////////////////////////// #========================================================================== # ▽メインコマンド # 必要ないものはコメントアウトしてください。入れ替えることもできます。 COMMAND = [ :gender, # 性別選択画面 :name, # 名前入力画面 :edit, # キャラクター生成画面 :face, # 顔グラフィック選択画面 :nickname, # 二つ名選択画面 :class, # 職業選択画面 :weapon, # 武器選択画面 :skill1, # スキル選択画面1 #:skill2, # スキル選択画面2 :ok, # 決定 ] #========================================================================== # ▽性別選択画面 # ヘルプ GENDER_HELP = "性別を選択してください。" # 選択肢 GENDER_TYPE = ["男性", "女性"] #========================================================================== # ▽名前入力画面 # 文字数 MAX_CHAR = 6 #========================================================================== # ▽キャラクター生成画面 # ヘルプ文章 EDIT_HELP1 = "固定していないパーツをランダムで設定します。" EDIT_HELP2 = "元の状態に戻します。" EDIT_HELP3 = "← (Left) / → (Right) : パーツ変更\n" + "A (Shift) : パーツ固定の ON / OFF" # チェックマーク # 上手く表示されない場合は、◯×にでも変更してください。 CHECK_MARK = ["☐", "☑"] # カテゴリ # :randam には、ランダムでキャラクターを生成する機能が割り当てられています。 # :default には、元の状態に戻す機能が割り当てられています。 CATEGORY = [:base, :wear, :option, :randam]#, :default] # 各カテゴリで呼び出される項目 # カテゴリのシンボルをキーとして、パーツの配列を取得します。 EDIT_PARTS = { base: [:Hair, :Eyes, :Skin, :FrontHair, :RearHair, :Ears, :Beard], wear: [:Cloth, :Cloak, :Glasses, :Acc1_, :Acc2_], option:[:Kemono, :Tail, :Wing], } #========================================================================== # ▽顔グラフィック選択画面 # 顔グラフィックは生成ではなく、既に用意されているものからの選択になります。 # ハッシュにファイル名をキーとして、インデックスの配列を入れてください。 FACE = [ # === 男性 === {"Actor1" => [0, 2, 4, 6, 7], "Actor2" => [0, 2, 4, 6], "Actor3" => [0, 2, 4, 6], "Actor4" => [0, 2, 4, 6], "Actor5" => [0, 2, 4, 6], }, # === 女性 === {"Actor1" => [1, 3, 5], "Actor2" => [1, 3, 5, 7], "Actor3" => [1, 3, 5, 7], "Actor4" => [1, 3, 5, 7], "Actor5" => [1, 3, 5, 7], }, ] #========================================================================== # ▽ニックネーム選択画面 # 選択できるニックネームの配列 NICKNAME = [ "銀の死神", "紅蓮の迅雷", "流浪の聖騎士", "魔剣を継ぐ者", "暁の剛剣", "深緑の護り手", "見えざる疾風", "救世の聖女", "優雅なる悪夢", "星を見る者", ] # ニックネームで修得するスキルのヘッダー # 空にした場合は何も表示されません。 NICKNAME_HEADER = "ボーナス" # ニックネームでスキルを習得する # 選択されたニックネームと同じインデックスが参照されます。 NICKNAME_SKILL = [] #========================================================================== # ▽職業選択画面 # 選択できる職業 ID の配列 CLASSES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 職業の説明 # 選択された職業と同じインデックスが参照されます。 CLASS_DESCRIPTION = [ "", "", "", ] # 職業で装備を決める # 選択された職業と同じインデックスが参照されます。 # 0 => 装備しない(外す) / nil => 変更しない / 1~ => そのIDの武器防具 CLASS_EQUIPS = [ #[1, 1, 0, 1, 0], #[7, 0, 0, 1, 0], #[13, 46, 0, 1, 0], ] # ステータス画面の表示 # シンボル名をメソッドとして、アクターから参照されます。 # 参照した数値が小数点を含む場合、100を掛けて整数にしたものが表示されます。 # 文字列またはシンボルで equip + 数値 と入れた場合、n 番目の装備が表示されます。 # 文字列またはシンボルで note + 数値 と入れた場合、職業のメモの n 行目が表示されます。 CLASS_STATUS = [ [:mhp, :mmp, :atk, :def, :mat, :mdf, :agi, :luk], # 1 ページ目 [:hit, :eva, :cri, :cnt, :tgr, :tcr], # 2 ページ目 #["equip0", "equip1", "equip2", "equip3", "equip4", "note1", "note2"], # 3 ページ目 ] # ステータス毎のゲージの最大値 # シンボルをキーとして、数値を設定してください。 GAUGES_MAX = { mhp:2000, mmp:500, atk:180, def:180, mat:180, mdf:180, agi:180, luk:180, } GAUGES_MAX.default = 300 # 上記以外の場合 # ステータス画面のゲージの色 # ゲージの左端と右端の色 CLASS_GAUGES = [Color.new(0, 160, 64), Color.new(0, 224, 96)] #========================================================================== # ▽武器選択画面 # 選択できる武器 ID の配列 WEAPONS = [1, 7, 13, 19, 25, 31, 37, 43, 49, 55] # 表示タイプ # 0 : アイコンとアイテム名を表示 # 1 : アイコンと武器タイプを表示 WEAPON_DISPLAY = 0 # 装備できないものを表示するかどうか(標示するだけで選択は出来ません) WEAPON_INCLUDE = true # ※補足 # 装備できないものを選択可能にすることは、ツクールの仕様上出来ません。 # (選択可能にして装備させても、すぐ外されてしまいます) #========================================================================== # ▽スキル選択画面1 # キーとなるステータス # キーが複数取得できるものは、全てを足した配列が表示されます。 # :actor : アクター ID # :class : 職業 ID # :weapon : 装備中の武器 ID (二刀流の場合、サブ武器も含む) # :wtype : 現在装備できる武器タイプ # :stype : 現在使用できるスキルタイプ # :atype : 現在装備できる防具タイプ SKILL1_TYPE = :class # 選択できるスキルの配列 # 上記数値をキーとして、スキル ID の配列を取得します。 # (例:上記が :class であれば、職業のIDがキーとなります) SKILLS1 = { #1 => [], #2 => [], #3 => [], } SKILLS1.default = [] # 上記以外の場合 # 修得できるスキルの数 SKILL1_NUMBER = 1 # スキルで武器を決める # スキルの決定と同時に武器を変更します。 # 最初に選択されたスキル ID で参照されます。 SKILL1_WEAPON = { #1 => 1, } #========================================================================== # ▽スキル選択画面2 # 選択できるスキルの配列 SKILLS2 = [] # 選択できるスキルの数 SKILL2_NUMBER = 1 #========================================================================== # ▽最終処理 # ヘルプ CONFIRM_HELP = "キャラクターを作成します。\nよろしいですか?" # 選択肢 END_CONFIRM = ["はい", "いいえ"] # 他職業の経験値削除 # 選択した全ての職業に、現在のレベルでの経験値が設定されてしまうので、それを削除します。 # キャラクターメイク前の職業の経験値も削除されます。 DELETE_EXP = true # 各項目が設定されていない場合のエラー表示。 # メインコマンドに入っていない項目のエラーは表示されません。 # 名前、顔グラ、二つ名、職業は名前が空の場合、エラーを表示します。 # 武器は装備していない場合、エラーを表示します。 # スキルについては、設定されていなくても表示されません。 NoCommandError = "を設定してください。" #////////////////////////////////////////////////////////////////////////// # ●各項目名 #////////////////////////////////////////////////////////////////////////// # 各ウィンドウやカテゴリで表示される項目名です。 # シンボルからコマンド名を取得します。 NAME = { gender:"性別", name:"名前", edit:"エディット", face:"顔グラフィック", nickname:"二つ名", class:"職業", weapon:"武器", skill1:"スキル", skill2:"魔法", ok:"決定", base:"ベース", wear:"衣服", option:"おまけ", randam:"ランダム", default:"デフォルト", Hair:"髪の色", Eyes:"目の色", Skin:"肌の色", FrontHair:"前髪", RearHair:"後髪", Ears:"耳", Beard:"ヒゲ", Kemono:"獣耳", Tail:"尻尾", Cloth:"服", Cloak:"マント", Wing:"羽", Glasses:"メガネ", Acc1_:"装身具 1", Acc2_:"装身具 2", mhp:"最大HP", mmp:"最大MP", atk:"攻撃力", def:"防御力", mat:"魔法力", mdf:"魔法防御", agi:"敏捷性", luk:"運", hit:"命中率", eva:"回避率", cri:"会心率", cev:"会心回避率", mev:"魔法回避率", mrf:"魔法反射率", cnt:"反撃率", hrg:"HP再生率", mrg:"MP再生率", trg:"TP再生率", tgr:"狙われ率", grd:"防御効果率", rec:"回復効果率", pha:"薬の知識", mcr:"MP消費率", tcr:"TPチャージ率", pdr:"物理ダメージ率", mdr:"魔法ダメージ率", fdr:"床ダメージ率", exr:"経験獲得率", } #////////////////////////////////////////////////////////////////////////// # ●パーツの重ね順 #////////////////////////////////////////////////////////////////////////// LAYER = [ :Wing, :RearHair, :Ears, :Cloak, :Head, :Eyes, :Tail, :Cloth, :Cloth, :Beard, :Cloak, :RearHair, :Glasses, :Acc1_, :FrontHair, :Ears, :Kemono, :Acc2_, :Tail, :Wing, ] #////////////////////////////////////////////////////////////////////////// # ●各パーツの設定 #////////////////////////////////////////////////////////////////////////// #========================================================================== # ▽基本設定 # パーツのシンボルをキーにして、参照するシンボル2つを設定します。 # 各パールのシンボル + 番号 が参照するファイル名になります。 PARTS_DATA = { Hair: [nil, :hair_index], Skin: [nil, :skin_index], Head: [nil, :skin_index], Eyes: [nil, :eyes_index], FrontHair: [:front_hair_number, :hair_index], RearHair: [:rear_hair_number, :hair_index], Ears: [:ears_number, :skin_index], Beard: [:beard_number, :hair_index], Kemono: [:kemono_number, :hair_index], Tail: [:tail_number, :hair_index], Cloth: [:cloth_number, :cloth_index], Cloak: [:cloak_number, :cloak_index], Wing: [:wing_number, :wing_index], Glasses: [:glasses_number, :glasses_index], Acc1_: [:acc1_number, :acc1_index], Acc2_: [:acc2_number, :acc2_index], } #========================================================================== # ▽性別で区別 # 区別するパーツ GENDER_PARTS = [:FrontHair, :RearHair, :Beard, :Cloth] # 区別する場合に参照するフォルダー名 FOLDER_NAME = ["Male/", "Female/"] #========================================================================== # ▽各パーツの選択項目 # キャラクター生成画面で、各項目で設定できる番号の配列です。 PARTS_LIST = [ # === 男性 === {hair_index: (0..7).to_a, eyes_index: (0..7).to_a, skin_index: (0..3).to_a, front_hair_number:(0..16).to_a, rear_hair_number: (0..16).to_a, ears_number: [0, 3], beard_number: [0, 1, 3, 4], cloth_number: (0..20).to_a, cloth_index: (0..7).to_a, cloak_number: (0..8).to_a, cloak_index: (0..7).to_a, glasses_number: (0..6).to_a, glasses_index: (0..7).to_a, acc1_number: (0..4).to_a, acc1_index: (0..7).to_a, acc2_number: (0..15).to_a, acc2_index: (0..7).to_a, kemono_number: (0..5).to_a, tail_number: (0..5).to_a, wing_number: (0..3).to_a, wing_index: (0..7).to_a, }, # === 女性 === {hair_index: (0..7).to_a, eyes_index: (0..7).to_a, skin_index: (0..3).to_a, front_hair_number:(0..16).to_a, rear_hair_number: (0..16).to_a, ears_number: [0, 3], beard_number: [], cloth_number: (0..20).to_a, cloth_index: (0..7).to_a, cloak_number: (0..8).to_a, cloak_index: (0..7).to_a, glasses_number: (0..6).to_a, glasses_index: (0..7).to_a, acc1_number: (0..4).to_a, acc1_index: (0..7).to_a, acc2_number: (0..15).to_a, acc2_index: (0..7).to_a, kemono_number: (0..5).to_a, tail_number: (0..5).to_a, wing_number: (0..3).to_a, wing_index: (0..7).to_a, }, ] #========================================================================== # ▽各パーツの項目名 # キャラクター生成画面で、各項目で実際に表示される色または文字列です。 PARTS_ITEMS = { hair_index:[Color.new(120, 82, 61), Color.new(171, 112, 76), Color.new(195, 159, 56), Color.new( 84, 89, 89), Color.new( 76, 108, 179), Color.new(168, 61, 59), Color.new(191, 176, 143), Color.new( 87, 112, 46)], eyes_index:[Color.new( 80, 107, 165), Color.new( 48, 71, 31), Color.new( 79, 163, 84), Color.new(212, 115, 18), Color.new(107, 79, 41), Color.new(163, 51, 51), Color.new(139, 80, 124), Color.new( 38, 41, 38)], skin_index:[Color.new(255, 217, 173), Color.new(255, 232, 204), Color.new(212, 171, 130), Color.new(161, 117, 94)], number: ["なし", "タイプ 1", "タイプ 2", "タイプ 3", "タイプ 4", "タイプ 5", "タイプ 6", "タイプ 7", "タイプ 8", "タイプ 9", "タイプ 10", "タイプ 11", "タイプ 12", "タイプ 13", "タイプ 14", "タイプ 15", "タイプ 16", "タイプ 17", "タイプ 18", "タイプ 19", "タイプ 20"], index: ["カラー 1", "カラー 2", "カラー 3", "カラー 4", "カラー 5", "カラー 6", "カラー 7", "カラー 8"], } end #////////////////////////////////////////////////////////////////////////////// # # 以降、変更する必要なし # #////////////////////////////////////////////////////////////////////////////// @material ||= [] @material << :CharMake def self.include?(sym) @material.include?(sym) end end