初級編

前回は新しいキャラを作る事に成功したので、今回は色んな数値を弄ってみようと思います。
まずは準備編で開いたフォルダ(「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