主人公と仲間のNPCの名前を決定するイベントのスクリプト(RPGエディタ)

投稿者:            mini mosmoss 投稿日:2016/05/02 21:30

「剣と天秤」で実際に使っているスクリプトを紹介していこうと思います。
関数リファレンスや初心者向けマニュアル、Wiki、質問掲示板に書かれていることの
いち使用例にすぎませんが、初心者がRPGエディタに慣れる手段の一つになればと思います。


主人公と仲間のNPCの名前を決定するイベントのスクリプト(RPGエディタ)



まず次のようにイベントを設置します



3つ横に並んでいるイベントはキャラクタのイベントを設定しておきます(キャラクタイベント)
キャラクタイベントの上にふきだし用の透明イベントを用意しておきます(ふきだしイベント)
このふきだしイベントには左から順に「ふきだし左」「ふきだし中」「ふきだし右」と名前を付けておきます
(イベントの名前はエディタの左上から設定できます)

その上にぽつんとひとつあるのが、
名前をつけるイベントのスクリプトを書いておく透明イベントです(本体イベント)
この本体イベントに次のスクリプトが書いてあります


###主人公と味方NPCの名前を決定するイベントの雛形ここから###
setFlag("名前決定", false)
speak("主人公と仲間のNPCの名前を選択してください")
playSound(21467) #効果音再生


while !getFlag("名前決定") #名前決定ループ


while !getFlag("主人公名決定")

setEventCharacter("ふきだし左", 33521) #ふきだしを表示する

case speakWithSelect(4,"ファイサル","ラムダ","ガンマ","設定を読む", 
    "あなたが操作するキャラクターの名前を選択してください")

# ファイサルはムスリムネームで審判、判断を下す者、決断力のある者という意味

#主人公名 候補 ファイサル ラムダ ガンマ


  when 0

  setVariable("u", "ファイサル")
  setFlag("主人公名決定", true)
playSound(21467) #効果音再生
    
  when 1

  setVariable("u", "ラムダ")
  setFlag("主人公名決定", true)
playSound(21467) #効果音再生
    
  when 2

  setVariable("u", "ガンマ")
  setFlag("主人公名決定", true)
playSound(21467) #効果音再生
    
  when 3

speak("砂漠の国の武家出身。旅の目的は不明。\n武人らしく、率直、簡潔な言動を好む。\n他の二人に比べると知識は少なく、鈍いが、\n不思議と重要な判断は彼に任せられる。")
playSound(21467) #効果音再生

    
end #主人公名選択分岐

end #主人公名選択ループ

setEventCharacter("ふきだし左", 26650) #ふきだしを透明にする



while !getFlag("女NPC名決定")

setEventCharacter("ふきだし中", 33521) #ふきだしを表示する

case speakWithSelect(4,"アーイシャ","トッティ","ナディア","設定を読む", 
    "仲間の女性NPCの名前を選択してください")

# アーイシャはムスリマネームで活気のある、裕福な、繁栄している、という意味

#女NPC 他候補 ジャスミン (英語圏女性名の索引より)シシィ トッティ サラーナ ジュリアナ ジル ジラ セルヴィ セルマ ヴィルマ ダイナ ダコタ タニア ダニーラ ダリア ディディ  ティシャ テス ナディア ニッキィ ネルダ ペイジ ベス ベラ ポージィ マーシャ マギィ マリリン ミシェル ミリンダ ミンディ メイ メイベル メイラ ラジーナ レイナ レオナ レオラ ロビン ロンダ ワンダ


  when 0

   setVariable("b", "アーイシャ")
   setFlag("女NPC名決定",true)
playSound(21467) #効果音再生

  when 1

   setVariable("b", "トッティ")    
   setFlag("女NPC名決定",true)
playSound(21467) #効果音再生

  when 2

   setVariable("b", "ナディア")  
   setFlag("女NPC名決定",true)
playSound(21467) #効果音再生
    
  when 3

speak("スラム生まれで育ちが悪い。口癖は「とりあえず」。\n戦闘や難しい話は苦手だが、\n観察力と勘、交渉力にすぐれる。\nせっかちで、積極的な行動を好む。")
playSound(21467) #効果音再生

    
end #女NPC名選択分岐

end #女NPC名選択ループ

setEventCharacter("ふきだし中", 26650) #ふきだしを透明にする


while !getFlag("男NPC名決定")

setEventCharacter("ふきだし右", 33521) #ふきだしを表示する

case speakWithSelect(4,"ハサン","イシリオン","ローミオン","設定を読む", 
    "仲間の男性NPCの名前を選択してください")

# ハサンはムスリムネームでハンサム、美しいもの、すてきな容姿、という意味

#男NPC 他候補 (ネット上のエルフ男性名索引より)●アイグノール(炎の先端)、アグラディア(輝く男)、アグラミア(輝く宝石)、アノーリオン(太陽の息子)、●アムラス、●アムロド、アラグディア(荒ぶる男)、アラグノール(荒ぶる炎)、●アランウェ、アルフィリオン(不死者)、●アルミナス、●アングロド、●アンナイル、イシリオン(月の息子)、イシルウェ(月男)、●イシルボール、イズレンウェ/イズレンディア(考え深き男)、イングロール、●ヴォロンウェ(不動なる者)、●エクセリオン、●エドラヒル、エルサリオン(強き星/強きエルフ)、エルノール/ギルノール(炎の星)、●エレルロント、●オロドレス、ガラファント、●カランシア(赤顔)、ギルサリオン/ギルセリオン(強き星)、ギルノール(輝く炎)、ギルミア(輝く宝石)、ギルロス(星飛沫)、●グイリン、●グウィンドール、●クーサリオン(強弓)、クーリンディア(歌う弓の男)、クルゴン(賢き指揮者)、●クルフィン、●クルフィンウェ、●ゲルミア、ケレブスィール(銀の川)、●サイロス、●サリオン(強き者)、●スーリオン(風の息子)、スーリンディア(歌う風の男)、ソールロッド(高兜)、ソロンディア/ソロンディール(鷲男)、ダイロン、ティリオン(監視者)、ハルファウン(高雲)、●ハルラス(高葉)、ファウンロド(高雲)、●ファラサール、フェアグリン(光の精)、フェアラス(葉の精)、フェアロス(Fealoth:花の精/Fealoss:雪の精/Feaross:雨の精)、●マイグリン(鋭い目の輝き)、●マイズロス、●マグロール、マゴルダグニア(滅びの剣)、マゴルヒア(剣の支配者)、●マブルング(無骨者)、●マルディル(金色の男)、マンノール(正義の炎)、マンマゴル(正義の剣)、メネリオン(天の息子)、リナラゴス(歌う嵐)リネイセル(歌う泉)、リネステ(休息の歌)、リングウェウ(歌う風)、リングール(呪歌)、リンスィール(歌う川)、リンドール、リンミュール(歌カモメ)、リンランディア(歌う放浪者)、ルィンヘン(青眼)、●ルーミル、レンウェ、●ローミオン(薄暮の息子)


  when 0

   setVariable("a", "ハサン")  
   setFlag("男NPC名決定",true)
playSound(21467) #効果音再生
    
  when 1

   setVariable("a", "イシリオン")  
   setFlag("男NPC名決定",true)
playSound(21467) #効果音再生
    
  when 2
    
   setVariable("a", "ローミオン")  
   setFlag("男NPC名決定",true)
playSound(21467) #効果音再生

  when 3

speak("エルフの国出身の魔法士。口癖は「なるほど」。\n学問知識と分析力にすぐれ冷静で公平な思考を好む。\n成人儀礼の一貫で旅をしている。")
playSound(21467) #効果音再生


    
end #男NPC名選択分岐

end #男NPC名選択ループ

setEventCharacter("ふきだし右", 26650) #ふきだしを透明にする


case speakWithSelect(2,"ゲーム開始","やりなおす", 
    "名前を選択しました\n主人公 " + getVariable("u") + "\n女NPC " + getVariable("b") + "\n男NPC " + getVariable("a")  )
  when 0
    setFlag("名前決定", true)
playSound(21467) #効果音再生
  when 1
  setFlag("主人公名決定", false)
  setFlag("女NPC名決定", false)
  setFlag("男NPC名決定", false)
playSound(21467) #効果音再生

    
end #ゲーム開始かやりなおすかの選択終


end #名前決定ループ終

###主人公と味方NPCの名前を決定するイベントの雛形ここまで###





この本体イベントを自動開始イベントにして
有効条件は次のようにしています
!getFlag("名前決定")



またゲーム開始時のプレイヤーキャラを透明にして
開始位置は本体イベントの右隣に設定しています

フラグ「名前決定」で自動開始する別イベントに
プレーヤーキャラの移動と見た目の変更を設定しています

※ 上のスクリプトをそのままコピペして使う場合は次の素材をクリップしてマップのリソースエディタに追加してください
キャラクタ 透明
素材/ゲームデータ[ID:48635]
キャラクタ ふきだし
素材/ゲームデータ[ID:62132]
効果音「ぽ___」
素材/ゲームデータ[ID:10361]

※ スピーク文の中を色々かえてみてください
※ #マークがついている文はスクリプトには関係ないので削除して大丈夫です


そして、味方のNPCと会話するイベントでは全て次のように書いています


###味方NPCとの会話イベント雛形ここから###
if !getFlag("王さまのもとへ")

a = getVariable("a")
b = getVariable("b")
u = getVariable("u")


#キャラクターの動き
setEventDirection("playerCharacterEvent",getDownDirection())
warpEvent("女",  33, 64) #味方NPCの1人のイベント名を「女」と設定しています
warpEvent("男", 35 ,64) #味方NPCの1人のイベント名を「男」と設定しています
setEventDirection("女",getRightDirection())
setEventDirection("男",getLeftDirection())


#会話開始

speak(a + " \n「正直感心しました。\n この国の王は先進的な考えを持っていますね。\n 犯罪を取り締まる役目と法を執行する役目\n ふたつを別組織にするのはよいことです」")


case speakWithSelect(3,"そう思う","そう思わない","わからない", 
    "")
  when 0
speak(u +"\n「そう思う。\n 間違った裁きを減らすし\n 汚職も減るだろう」")

    
  when 1
speak(u +"\n「そう思わない。\n 実際にいがみ合いがおきていて\n 事件の解決が難しくなっている」")

    
  when 2
speak(u + "\n「自分にはよくわからない」")


    
end

speak(b + "\n「とにかく調査をはじめない?」")

speak(b + "\n「依頼人の話では、裁判長は\n 王さまと2人で会談していたときに\n 何者かに襲われたということだったわね」")

speak(b + "\n「まずは王さまに話を聞くのがいいと思うの」")


setFlag("王さまのもとへ",true)

end


###味方NPCとの会話イベント雛形ここまで###



味方NPCをあたり判定なしの主人公を追いかけるイベントにして
イベント名はひとりを「男」ひとりを「女」としています

この書き方をすると、キャラの名前を変えたくなったときに便利なので
プレイヤーがキャラ名を設定しないRPGでも使えます。

プレイヤーが味方のNPCまで名前を決めることのメリットとしては、
キャラクターに愛着が湧くということの他には、
序盤に誰が発言しているのかわかりやすいということがあると思います。
とくに「剣と天秤」はいきなり会話からはじまり立ち絵もないので
プレイヤーにわかりやすくする工夫として採用しました。

三つから選ぶのではなく、文字入力で自由に考える方法もありますが、
いきなり3人分考えるのは面倒だろうと思って、この形にしました。

この方法の欠点としては、戦闘時にこの決めた名前が表示されないということがあります。
それぞれのキャラの名前ちがいを用意しておく手段もありますが、
一つのマップのキャラ数に上限があるので難しい場合があります。



おまけ

今日みんなの宿に泊まってみました。
私はプレイヤーキャラクタとしてラッコを使ってるのですが
ラッコさんは、みんなの宿のベッドが気に入ったようです。



コメントする

コメントするには、ログインする必要があります。

コメント一覧

         mini mifa(投稿日:2016/05/03 11:58, 履歴)
こんにちは、コメント失礼いたします。

名前決定画面で、このゲームすごいなと感じました(笑)
名前候補もまた、すごいですね、リンミュールとか、調子のいい水夫につけてあげたいです。

ラッコもぐりこんでる。かわいいです。
            mini mosmoss(投稿日:2016/05/03 15:18, 履歴)
mifaさん、こんにちはヽ(*´∀`)ノ゚おふとんはもぐりこんでナンボだとおもいました。

エルフの名前があるというのが物珍しく、よりどりみどりで、なかなか決められずにいました。
調子のいい水夫、という描写だけでmifaさん一席はじめられそうと感じました。
Cdv30200 aoi icon mini aoihikawa(投稿日:2016/05/03 02:15, 履歴)
熟睡できたようで、何より(w
            mini mosmoss(投稿日:2016/05/03 15:03, 履歴)
かけぶとんが嬉しかったようです。