トップページgamedev
982コメント350KB

【SB】Shooting Game Builder ver10【シューティング】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/09/24(金) 20:23:38ID:xbao/GdK
SB◆.if.Xu7A6c氏が作った開発ツール"ShootingGameBuilder"について語るスレ

ShootingGameBuilder公式サイト
http://maglog.jp/sb/
Twitter
http://twitter.com/StgBuilder

SHOOTINGGAMEDEVELOPERUPLOADER
http://www.esc-j.net/stg/

SB@wiki
http://www41.atwiki.jp/stgbuilder/

ニコニコ動画チュートリアル
http://www.nicovideo.jp/watch/sm8707904
http://www.nicovideo.jp/watch/sm8711074
http://www.nicovideo.jp/watch/sm8728404

前スレ
【SB】Shooting Game Builder ver9【シューティング】
http://hibari.2ch.net/test/read.cgi/gamedev/1275262039/
0002Sぷ ◆n3VrL7XRbc 2010/09/26(日) 15:12:53ID:ehP6e886
2げt
スレ立て乙。
0003名前は開発中のものです。2010/09/26(日) 15:17:34ID:wlIgVuPc
>>1
スレ立て 乙です!!
0004名前は開発中のものです。2010/09/26(日) 15:22:29ID:WuaXbrF4
前スレの>>990だけど、
ここのうpロダってどこですか?
0005名前は開発中のものです。2010/09/26(日) 15:23:15ID:wlIgVuPc
シグナルの調査結果報告:

@自分,親,子(子ID指定)へ送信できる。

A送信時の代入では、即値(または変数値)がそのまま送信される。

B送信時の加算・減算・乗算・除算は、現在のシグナル値(受信値)に対してではなく、前回の送信値に対して即値(または変数値)が演算される!!

C親や子へ送信した場合に、自分のシグナル値は変化しない!!

D親→子で受信したシグナルと、子→親で受信したシグナルは、互いに独立している!!

E前回送信値をそのまま送信したい時は、加算0,減算0,乗算1,除算1を用いる。

*信号送受信パネルのみで受信値を送信することはできない!!
(ローカル変数パネルで受信値をいったん変数に入れて、信号送信パネルでその変数を代入して送信)
0006名前は開発中のものです。2010/09/26(日) 15:24:51ID:O9LwIS5A
>>4
3番目のアドレスの右下から
00079862010/09/26(日) 15:39:36ID:3RSSmTF7
もう少し柔らかく考えてみると、

「各シグナルには、受信箱は備わっているが送信箱は備わっていない」
「変数のように、送受信箱になってるわけではない」
「受信→送信が連動していない」
あるいは、
「送信→受信に特化しているが、受信→送信は機能的に乏しい」
といえそう。

3匹の子が親に対して、それぞれ加算やら減算やらを親の受信箱目掛けてポコポコ投げ入れるみたいな感覚かな?
あるいは、自分の背中に背負った受信箱に、加算やら減算やらを自分でポコポコ投げ入れるって感じ?
だから、信号受信はしていなくとも、加算や減算や代入が複数されたあとでも、最新結果が受信箱にきちんと
入ってるってイメージかな。
その受信箱にはいっている最新結果を、必要なときに条件分岐で選別できるのが「信号受信」ってパネルなんだと思うな。

後、一応書いておくと、「ローカル変数」パネルにおけるシグナル値のやり取りは、

「シグナル」 「→」 「変数」 = シグナルの受信箱内の数値(いわゆる受信値)を変数へ取り出す
「シグナル」 「←」 「変数」 = 変数をシグナルの「受信箱」へ入れる(決して送信値を指定するものではない)

ってことみたいだから、そのあたりは変数と違ってて分かりにくいといえば分かりにくいかも。

っていうか、1000とられた〜
0008名前は開発中のものです。2010/09/26(日) 15:50:26ID:wlIgVuPc
>>986
親子間でシグナルを用いる際に少し癖がある理由がようやく理解できた

要するに、まとめてみると
・受信値は送信値に反映されていない
・送信値は送信側では確認できないが、次回送信時に利用されている
・受信値は受信パネルの条件分岐か、ローカル変数での呼び出しでのみ確認できる

シグナルを親子間で使用するには、上記3つを理解している必要があるよう・・・
0009名前は開発中のものです。2010/09/26(日) 16:10:24ID:WuaXbrF4
>>6
何か値段が描いてあるけどよく分からないorz

誰か文字での説明お願いします
>弾が壁に当たって跳ね返るってどうすればいいの?
質問ばっかですみませんm(_ _)m
0010名前は開発中のものです。2010/09/26(日) 16:21:24ID:F4ybvzl4
壁に当たった時に移動量を反転させればいい
壁となる座標に到達(不等号で判断する)した時に、
現在のX,Y移動量に-1をかける
0011名前は開発中のものです。2010/09/26(日) 17:24:24ID:coiRfK8L
縦STGで、左右の壁で反射だったら、
@ローカル:変数1←X座標
A条件分岐:変数1<0(左端),変数1>480(右端)
Bローカル:変数2←X移動量
C計算:変数2×(-1)=変数2
これで、Y方向の速度を維持したままX方向の速度のみ反転可能

180度反射だったら、
X移動量とY移動量を両方×(-1)にして〜
0012名前は開発中のものです。2010/09/26(日) 18:38:52ID:VYUjwYOa
それ以外にはありませんか?
0013名前は開発中のものです。2010/09/26(日) 18:45:55ID:q+GcixcR
前スレ>>991
子側で「信号受信までウェイト」にしてても何らかの信号が送られてくると下に抜けちゃうんだよね
ループで信号送信し続けてると「信号受信までウェイト」は実質使えなくなる

それと、親子間で変数の値を共有したい時に信号の変数送信を使うってのは分かったけど
それってどういう時なのか具体例が欲しいな
システム変数を一個その親子用に使うってのじゃ解決しないの?
256個もあるシステム変数が足りなくなるってことはたぶん無いと思うんだけども
別に信号の変数送受信を否定する気は無いんだけど、画期的な活用法が全く思い付かない
0014名前は開発中のものです。2010/09/26(日) 18:49:27ID:coiRfK8L
速度が決まっている、自機弾とかなら、向き判定用のフラグを立てて、
画面端で、直交座標移動の左上へ行くパネルと、右上へ行くパネルを切り替える

速度が決まっていて180度方向転換なら、速度パネルで負数の移動速度を代入すると、逆方向へ向かう


鏡面反射(入射角=反射角)でなくても良ければ、左右の画面端で極座標パネルを使って、
それぞれ90度だけ右回転または左回転させる方法もあるよ
0015名前は開発中のものです。2010/09/26(日) 18:57:13ID:coiRfK8L
>>13
自機弾みたいにボタンを押す間に次々と発射される場合、
各自機弾のキャラクタがシステム変数を共有すると、挙動がおかしくなる

・・・かといって、システム変数を次々に別のものを消費していくわけにもいかないので、
独立しているけども親子間での送受信ができるシグナルは便利

例えば、自機-各自機弾だったり、各自機弾(親)-自機弾(子)だったりするけれど

複雑なスクリプトを組んでいくと、システム変数では扱いにくいけど、ローカル変数だけでは受け渡せない状況が時々ある
0016名前は開発中のものです。2010/09/26(日) 19:17:28ID:q+GcixcR
>>15
それは信号の単なる既値の送信だけじゃ事足りなくて、変数を送信出来なければ解決しないほど複雑な機構なんだね
ちょっとどういうのかさっぱり思い付かないけど、物凄く果てしなく複雑なことをやる場合にのみ必要って解釈でいい?
・・・何となくそのスクリプトってそもそも設計に問題があるんじゃないかって気もするけどw
00179862010/09/26(日) 19:46:43ID:3RSSmTF7
>子側で「信号受信までウェイト」にしてても何らかの信号が送られてくると下に抜けちゃうんだよね

確かに。たとえシグナル0の受信をウェイトしていても、そこへシグナル1でも2でも受信すると、ウェイトは
外れてしまうよね。
だから、実質信号受信までウェイトするってのは使いにくいことになる。
でもウェイトをかけるってことは、そのタスクはそこで止まってる、あるいは止めておきたいってことだよね?

そういう部分には、ループをかけて該当のシグナルを受信して、信号受信で分岐させてループの外側に
流してやるくらいしか手段はないかなと思う。

>システム変数を一個その親子用に使うってのじゃ解決しないの?
そのシステム変数を使いたい親子が、常に画面に1組しかでませんっていうのなら、システム変数経由でも
大丈夫だろうね。
だけど、自機弾みたいな、画面に同じキャラクタが複数出ますって場合は、どうする?

画面に約10個の自機弾が出たとして、そいつら全員で、一つのシステム変数を使う?なにかエラーが出そうだよね?
それでは、自機弾1個1個を別のシステム変数に割り当てる?
同じキャラクタに個性を出すには、PARAMで分けてやるとかしかないのかな?
弾幕シューティングなんかで、画面に敵弾が50個くらい出たとして、それらを別のシステム変数で使い分けるために、
その弾一つ一つをPARAMで分けて管理するか?
常に出ては消えて出ては消えてのキャラクタを。
すまないが、おれはそんな面倒くさいことはできない。
君がそっちのほうが管理がラクだというのなら、だれも止めはしないがね。
0018名前は開発中のものです。2010/09/26(日) 20:01:40ID:coiRfK8L
>>17
同感
シグナルには使い捨て的な便利さがある
システム変数はゲーム全体で、複数キャラクタで同時に共有管理が必要なものに使用するべき

シグナルをウエイトする時は、そのキャラクタのタスクが止まっているわけだから、
ウエイトを解除するためのシグナルを1種類に絞れってことなんでは・・・?
0019名前は開発中のものです。2010/09/26(日) 20:17:19ID:q+GcixcR
いや、だから、自機弾を子にしてシグナルで管理するのは分かったから
その場合にただのシグナルじゃなくて変数を使わなければいけない場合ってのが
一体どんな状態なのかを知りたかったんだけどw

つーかオプションとかならともかく、そもそも自機弾を親子で管理しなければいけない
しかもそれをただの値だけではなく変数を共有した状態にしなければならない状況ってもうちょい見直した方がいいんじゃね?
00209862010/09/26(日) 20:18:31ID:3RSSmTF7
>それってどういう時なのか具体例が欲しいな
自分はこれをどこかで使ってはいるんだろうけど、画期的な使い方はまだしていない。

そもそも前々スレだったかな?親子間で変数の受け渡しをする方法はないかってことで、
その変数範囲が-32767〜32767の範囲だっていうんで、それじゃあ変数がそのまま送れた
ほうがいいよねってことで追加された機能なんだよね。
そういう人に、どうしてその変数を送りたいのか、具体例を聞いてみたらどうか?
このスレをみていればの話だけど。

>画期的な活用法が全く思い付かない
別に、SBの機能をすべて1回以上ずつつかってゲームを作るとか、そんな縛りをしてるわけじゃ
ないんでしょう?
君が思いつかないということは、現時点では別に必要性を感じてないってことなんでしょ。
でもそれは、あくまで君個人の範囲内のことであって、他の人には他の考え方があるものなんだよね。
あなたはあなたで、「そういうことが出来る」と頭の片隅にでもおいておけば、そういう場面に出くわした時に
役に立つと思うけどね。

>・・・何となくそのスクリプトってそもそも設計に問題があるんじゃないかって気もするけどw
あのねぇ、複雑なことをするとか、そのスクリプトに問題があるかないかとかは、作ってる本人が考えることでね。

せっかく意見を言ってもらってるのに、「w」つきで人を小バカにするような態度はなんなんだ?
とりあえずシグナルの概要は長くなったけど説明は一通り終わったし、あとはそれを活用できるかどうかは各個人に
にまかせ、ひとまずこれで静観することにするよ。
0021名前は開発中のものです。2010/09/26(日) 20:48:11ID:q+GcixcR
あまり役に立ってない機能に見えるけど
もし画期的な使い方があってスクリプトを組む幅が大きく広がるなら幸いと思って質問しただけなんだけどね
なんかすげぇ長い文章だけどいまいち要点がはっきりしない
どうやら超上級者様の組むスパゲティーコード専用機能みたいだってことだけは分かったから俺ももういいや
0022名前は開発中のものです。2010/09/26(日) 20:53:53ID:coiRfK8L
変数を直接シグナルで送れて便利なのは、向きとか座標とか、移動量とかを判定する時じゃない?
以前はシステム変数を経由して、受け渡しをしていたから結構不便だった
0023SB ◆.if.Xu7A6c 2010/09/26(日) 21:39:14ID:HD/rUc2e
こんなドキュメントで大丈夫か?



システム変数、ローカル変数、変数、シグナル
このあたりのイメージと使い分けをさっさと
説明しろと言うことだよな
0024名前は開発中のものです。2010/09/26(日) 21:40:01ID:F4ybvzl4
>>21
>なんかすげぇ長い文章だけどいまいち要点がはっきりしない
そりゃそうだ。要点がはっきりする回答が得られるような質問じゃない
たとえば、「UVスクロールでどんなメリットがあるの?」
と聞かれて明確な答えを出せるかどうか


>超上級者様の組むスパゲティーコード
初心者ほど非再利用的なスクリプトを組むもの・・・
プログラミングなどにおいては汎用性のあるコード/オブジェクトは強固な土台となる
SBでもまた同じ
00259862010/09/26(日) 23:19:52ID:3RSSmTF7
SB氏お疲れ様です。

よろしくお願いします・・・
0026名前は開発中のものです。2010/09/26(日) 23:45:53ID:O9LwIS5A
一番いいドキュメントを頼む
0027名前は開発中のものです。2010/09/27(月) 00:56:33ID:qjWWfRUT
神は言った。SB氏がいいドキュメントで説明してくれると
0028SB ◆.if.Xu7A6c 2010/09/27(月) 01:05:38ID:+2mZstDD
ちょっとその前にテストしてくれる人募集
ロダのstg0726に

ver 0.99.35
スクリプト、ローカル変数のウエポンインデックスとレベルを代入可能に

をアップしたのでちゃんと動くかどうか
いろいろ試して欲しい
■ このスレッドは過去ログ倉庫に格納されています