前回は新しいキャラを作る事に成功したので、今回は色んな数値を弄ってみようと思います。
まずは
準備編で開いたフォルダ(「data」→「scr」→「chr」)を開き、「100_marisa.lua」を開いておいてください。
ちなみに、
作業をする前にluaのバックアップを取る癖を付けてましょう。
上手く動かなくなってから後悔しても遅いですからね。(数十敗)
~弾の基本性能を弄ってみよう~
luaファイルを開くと、こんな感じの文章があると思います。
local blt1 = {
id = CharaID,
hit_range = 6,
add_vec_x = 0,
add_vec_y = 20,
bomb_range= 22,
atk = 84,
delay = 140,
これは魔理沙の弾1(3連)の記述です。字面からある程度予想が出来るかもしれませんが、試しにbomb_rangeを100にしてみましょう。
保存したら東方流星群を起動して、魔理沙の弾1を撃ってみてください。
※基本的に半角英数字を使うこと!
※キャラを選ぶ時に、間違えて左から3番目の公式魔理沙の方を選ばないこと!
地形は壊滅したでしょうか?それで合ってます、大丈夫です。
このように、bomb_rangeは弾の爆風の大きさを表しています。では今度はatkを300にして自爆してみましょう。
はい、そういうことです。atkは弾の威力を表しています。
こんな感じで、数値を弄ることで色々な性能を変化させることが出来ます!
id |
説明は省略 |
hit_range |
弾の当たり判定 |
add_vec_x |
弾の横方向の加速度(殆どの弾は0) |
add_vec_y |
弾の縦方向の加速度(要するに重力) |
bomb_range |
弾の爆風の大きさ |
atk |
弾の威力 |
delay |
弾のディレイ |
~弾の見た目、アイコンを弄ってみよう~
先ほどの記述をもう少し下まで見ると、
local blt1 = {
id = CharaID,
hit_range = 6,
add_vec_x = 0,
add_vec_y = 20,
bomb_range= 22,
atk = 84,
delay = 140,
icon_x = 96,
icon_y = 64,
tex_x = 96,
tex_y = 64,
tex_w = 32,
tex_h = 32,
という感じになっています。
では試しにicon_xを128にして起動してみましょう。
どこが変化したか分かったでしょうか?
正解はこの辺りです。ここはいわゆる「弾アイコン」と呼ばれているものです。
ここで、「100_marisa」のフォルダを開き、「marisa.png」を画像編集ソフトで開いてみてください。
もちろん編集ソフトによって画面は異なりますが、大体こんな感じになっています。
icon_xやicon_yは、「弾アイコン」として使う画像の始点(左上)の座標を指定しています。画像で説明するとこんな感じでしょうか。
ここでicon_xを128に変更すると、
こうなります。弾アイコンの画像が小弾から星型の弾になったのは、始点が右に32ドットズレたから、というわけです。
では今度は、tex_xを128にして、弾1を撃ってみましょう。
こんな感じになったでしょうか?
tex_xとtex_yは、実際に発射される弾のテクスチャ(見た目と考えればOK)の始点を指定しています。そして、tex_xを128にすると始点が32ドット右にズレるので、発射される弾のテクスチャが星型になったという感じです。
※icon_xの時と仕組みは一緒なので画像は省略。
ちなみに、tex_wとtex_hはそれぞれ「弾のテクスチャの幅」「弾のテクスチャの高さ」を指定しています。
tex_wを64にして弾を撃ってみると分かりやすいと思います。
※弾のテクスチャの幅、高さは指定出来ますが、弾アイコンの幅、高さは32ドット固定となっております。
icon_x |
弾アイコンの始点のx座標 |
icon_y |
弾アイコンの始点のy座標 |
tex_x |
弾のテクスチャの始点のx座標 |
tex_y |
弾のテクスチャの始点のy座標 |
tex_w |
弾のテクスチャの幅 |
tex_h |
弾のテクスチャの高さ |
~弾の効果音を弄ってみよう~
先ほどの記述をさらに下まで見ると、
local blt1 = {
id = CharaID,
hit_range = 6,
add_vec_x = 0,
add_vec_y = 20,
bomb_range= 22,
atk = 84,
delay = 140,
icon_x = 128,
icon_y = 64,
tex_x = 128,
tex_y = 64,
tex_w = 32,
tex_h = 32,
se = { "data/scr/chr/100_marisa/marisa_b10.ogg",
"data/scr/chr/100_marisa/marisa_b11.ogg"},
こんな感じになっています。seの部分が弾の効果音です。形としては、
se = {効果音1個目,
効果音2個目},
というイメージでしょうか。ではこれを再生するにはどうするかというと、「SEを再生せよという命令(API)」が用意されているので、それを使います。さあいよいよプログラミングっぽくなって参りました。
※プログラミング経験者からすると(何言ってんだこいつ)と思われるような言い回しをするかもしれませんが、その辺りはご了承ください。
SEを鳴らしてるっぽいものを探す為に、下へ行くと
ありました、これですね。間違いなくこれです。
では次に、何個目の効果音を鳴らすかという設定ですが、中を見ると
C_PlaySoundSE(self.se[○],0,0)
となっているかと思います。この○の中の数字が1なら「効果音1個目」を、2なら「効果音2個目」を再生する、という感じです。勘の良い方ならもうお分かりかもしれませんが、効果音1個目が「弾を発射した時のSE」、効果音2個目が「弾が爆発した時のSE」です。
Shotは弾を撃つ時、OnBombは弾が爆発した時、という事なんですねー。この辺りは
中級編でお話いたします。
se = {}の中を弄れば、さらにバリエーション豊かな弾も出来るでしょう。
初級編はここまでとします。次は上述したShotやOnBombといったいわゆる「関数」と呼ばれるものや、C_PlaySoundSEといったいわゆる「API」などを解説していきたいと思います。ここまでお付き合いいただきありがとうございました。
最終更新:2020年03月23日 16:51