☆ベルトアクション作成 Beats of rageスレッド☆ (658レス)
上下前次1-新
24: 2021/02/22(月)01:29 ID:Ak0x7Qvg(2/3) AAS
基本ヨッパラって書き込んでいるので、てにをは、や日本語としてどうなのかについてはゴメンナサイです。
Pakファイルを解凍して出てきたDataフォルダの中にあるMODEL.TXTそして
CHARSフォルダを覗くと、キャラやアイテムなど色々な名前のフォルダが並んでいるかと思います。
だいたいフォルダ名は、キャラそのものを指して入る事が多いので適当のフォルダを開いてみると
たぶん大量の画像ファイルと一つかいくつかのTXTファイルが入っていると思います。
TXTファイルは大概キャラそのものの名前である事が多いので、見てみると最初に
Name XXX Type Playerとか HP 100 MP 100とか書いてあると思います。
省5
25: 2021/02/22(月)01:43 ID:Ak0x7Qvg(3/3) AAS
少し戻りますが、MODELS.TXT これはOpenBoRの要と言ってよいファイルで、
プレイヤー、敵、アイテム、細かい演出などなどの基本を設定しているファイルです。
自分でMODを作り始めた時、試しに起動してみたらエラーで落ちた
そんな時は大概ここで読み込むファイルを指定し忘れたから、ということ多いです。
あ、エラーで落ちた!ってとき何処をみればいいのか?
OpenBoRのEXEファイルがあるフォルダにLOGSというフォルダあって、そこに
OpenBoRLog.txtというファイルがあるんで、それを開けば
省2
26(1): 2021/02/23(火)00:41 ID:XlcKRtDD(1) AAS
MODELS.TXT を見てゆくと最初のほうの数行以外は殆どが
Know か Load で Data/Chars/xxxといった内容になっています。
大雑把に
Know はいずれ使うから覚えていてと指示しているもの
Load はすぐに Data/〜を読み込んでおくというもの
昔はPCのメモリも少なかったんで重要なもの(プレイヤーとか)だけ
読み込んでおいて、その他出番の少なそうなものは Knowにしておいて
省5
27: 2021/02/27(土)02:13 ID:BZAtihYI(1/2) AAS
@script
if (frame == 1) {
void vSpawn;
clearspawnentry();
setspawnentry("name", "Test");
vSpawn = spawn();
bindentity(vSpawn, getlocalvar("self"), 50, 1, 60, 1, 0, 1);
省6
28(1): 2021/02/27(土)02:45 ID:BZAtihYI(2/2) AAS
必死になってDCマニュアル読みこむより
過去に作られたシンプルなスクリプト
例)
void spawnEnt(void vName,void x,void z)
{
clearspawnentry();
setspawnentry("name", vName);
省17
29: 2021/02/28(日)18:25 ID:aAXgr/zu(1) AAS
game joltでopen borを検索すると結構色んなmodが見つかって楽しいよ。
30: 2021/03/04(木)01:04 ID:flx7Tt6m(1/3) AAS
Open BoR のビルド違いによってMODによっては動作が変になる。
基本バージョンは3のまま結構な期間経過しています。
Build6391あたりが一番手に入り易く、公式的にも安定しているっぽいですが、
2016年あたりを境に過去のMODは動作がおかしくなったり
エラーで落ちたりし易くなるようです。動いてもキャラがブルブル震えて変な動きになったり。
原因としては Scriptを使っていることが多く、過去のビルド3789とか本体のファイルサイズが2メガ弱位だと
エラーが発生してもある程度受け流してくれるwのですが、本体のファイルサイズが3.4メガくらいになると
省4
31: 2021/03/04(木)01:18 ID:flx7Tt6m(2/3) AAS
ご本人の許可は取ってないとは思うんですが、
kt住江氏の作品が海外で良くみかける上、
評判も良いよう(星で評価されてると大概5)なので
なんだか自分まで嬉しくなってしまいます。
Streets of Rage Z2 というキャラはメガドライブ版からの流用っぽいですが、
Final Fightなんちゃら系によくあるレベルアップスクリプトを導入していて
なかなか楽しめますね。
32: 2021/03/04(木)01:30 ID:flx7Tt6m(3/3) AAS
remove 0か1
これはハドーケン!とかナイフとかの飛び道具系 Entityのヘッダーに設定するのですが、
使うときは CustKnife xxx(このEntityに設定) ThrowFrame 1なんて感じで
投げると 0なら敵に当たったら消滅、1なら貫通する
xxx(投げられるEntity)これの HitFlash を爆発系のEntity(AttackをBlastにするとか)にすれば
連鎖爆発みたいなこともスクリプトを使わずに行えます。
よく血しぶきてきな演出で HitFlash を設定し、そのHitFlashにさらに CustBomb xxx
省1
33: 2021/03/06(土)03:14 ID:jHze2gK/(1) AAS
結構便利なコマンド
anim Attack 内に記述して使う
cancel {start frame} {end frame} {hits} {sequence of inputs} {freespecial#}
start frame と end frame で指定したフレーム内で sequence of inputs のボタン入力があったら
freespecial# を実行するというもの
hits は当たったかどうか
anim attack3
省9
34: 2021/03/09(火)01:00 ID:vWs4Sul9(1/6) AAS
Rescue Command という Mod が Weapons を上手く使って変身を表現しているのが面白いですね。
そもそも Weapons とはゲーム中キャラクター(Entity)が武器を拾ったさいに
素人の想像では基になったキャラ(Entity)に武器のEntityを重ねて表示して
武器の分だけ攻撃力を上昇させたり、攻撃の判定を大きくしたりなんて処理をしてるのかな?
と思いますが、Open BoRでは 別なEntity、武器を持ったキャラの画像(Frame)を使った
Model に完全に切り替えることになります。
なので、Weapons に設定したからといって武器である必要はなく、完全に別キャラ(Entity)でよい訳です
省4
35: 2021/03/09(火)01:57 ID:vWs4Sul9(2/6) AAS
Cancel コマンドについて飛び先は基本 Freespecial#である必要があります(@Cmdとか@Scriptとか言い出すとキリがないので)。
たとえば Anim Jump に Cancel 3 99 0 Freespecial# として、
Freespecial#に Jumpframeを組み込む事でダブルジャンプなんてことも出来るわけです。
これはプレイヤーに限ったことでは無く、どんなEntityでも良いわけで(一応Typeによって制限はありますが)
Range 設定などによって敵AIに色々設定できますが、やはりどうしても単調になりがちな敵の動作などに
ちょっとした味付けが出来るわけです。
私などは、ついついAnim Attackだから攻撃動作させなきゃなどと固まった考えに陥りがちですが
省2
36(1): 2021/03/09(火)02:27 ID:vWs4Sul9(3/6) AAS
基本的コマンド
Attack について、もっとも使われるコマンドの一つになるかと思います。
Open BoRで作られるModは殆どが2D横スクロールアクションで、
ゲーム画面でキャラクター(Entity)達は
左右への移動(X軸)手前や奥に移動できる奥行き(Z軸)
ジャンプなどによる上昇、下降(Y軸(A軸))で管理される事が基本になります。
そこでキャラクターが攻撃動作をさせようというときに Attackコマンドが使われます。
省13
37: 2021/03/09(火)02:36 ID:vWs4Sul9(4/6) AAS
色々と書かれていてパニックになりそうですが、羅列された数字の意味が分かってしまえば
なんて事ないですね、特にゲームに慣れた方なら感覚的に理解できるかと思います。
Open BoRでは基本的にこの繰り返しで作られています。
画像が表示されて、それぞれに攻撃判定ややられ判定があって、ジャンプさせる事ができたり
走ったりが簡単に作れるようにAnimという形で基本設定がされています。
パラパラ漫画の要領がわかれば誰でもゲームが作れる、そんな素敵システムがOpen BoRなのです。
38: 2021/03/09(火)23:07 ID:vWs4Sul9(5/6) AAS
Bindentity を使って燃やされエフェクト
anim burn
@script
if(frame==0) フレーム0の時
{
void self = getlocalvar("self"); 自分の情報
void e; 仮の入れ物
省15
39: 2021/03/09(火)23:08 ID:vWs4Sul9(6/6) AAS
こんな感じで BurnFX(燃えた画像)というEntityをModels.txt で設定しおき。
Anim Burn はもともと炎上攻撃に対するリアクション専用 Animで Painと同じように使います。
炎上攻撃
burn {x} {y} {right} {down} {damage} {knockdown} {block} {noflash} {pausetime} {z}
アタックと同じようにつかいます。
他にShock電撃 Freeze冷凍など
とはいえエフェクトを用意しておかないと、あまり効果は感じません。
省3
40: 2021/03/13(土)00:39 ID:eh+j2tUI(1/6) AAS
上でも少し触れましたが、基本はパラパラ漫画の要領で
1枚ずつ絵を表示して、その絵に攻撃判定ややられ判定を一緒に添え付ける事を繰り返してゆく。
一連の動作にしてゆくことになります。
動作のうち大雑把な纏めとして Anim(Animationの略)という括りで動作の整理が行われます。
攻撃その1なら Anim Attack1、ジャンプなら Anim Jumpなどなど
ただどのAnimでもかならず Frame という画像を表示するコマンドがほぼ必須で
例えば Anim Attack だからといって、いきなり Attack 0 0 30 80 10 0 0 0 10 10
省2
41: 2021/03/13(土)16:15 ID:R+3whepu(1) AAS
日本語による解説
ありがたいです。
自分の思い描いた
ゲームを(たぶん)
気軽に作れるのは
魅力的ですよねー
42(2): 2021/03/13(土)18:45 ID:5eJPgycF(1/2) AAS
いきなり質問何ですが、OpenBORstatsのLevel Designウィンドウの右上にある
チェック項目のPTrans ってFrontとPanelsの透過色の設定と言う認識で良いんですかね?
下の画面に反映される場合と反映されない場合があって悩んでいます…。
43: 42 2021/03/13(土)18:46 ID:5eJPgycF(2/2) AAS
上の質問は自分で作っているゲーム内の話ではなくて、他の方がすでに作ったゲーム内の
ステージを見てみると言う事です。
44: 2021/03/13(土)22:15 ID:eh+j2tUI(2/6) AAS
>>36
Attackの説明にて {Z}の所、ここが0だと同じ座標に並ばないと攻撃がヒットしません。
たとえば 10にすると攻撃者から手前側と奥側にも10ドット分判定が発生し攻撃があたり易くなります。
必殺技などは60なんて数値にすれば、かなりの敵を巻き込む事ができます。
同じように Bbox(やられ判定)でも {Z}の指定は可能で、数値の分やられ判定に厚みがでます。
大型の敵などに設定すれば、見た目の割りにスカスカで当たらないといったことも少なくなりそうですね。
45: 2021/03/13(土)22:37 ID:eh+j2tUI(3/6) AAS
>>42さん
せっかくスレが立ってたので適当な事をダラダラと書き綴っていました。
OpenBoR Statsに関しては、とくにLevelDesignとか殆どやったことがなかったので
透過色に関しての設定があるなんて今まで知りませんでした。
色に関しては結構いろいろ設定があるようで、グローバルなパレットを使うだの
個別に設定するだの、Drawmethodでさらに設定できるだの、
色々ありすぎて基本手を出さないようにしてます。
省5
46: 2021/03/13(土)23:16 ID:eh+j2tUI(4/6) AAS
攻撃動作の設定例
anim attack
delay 4
offset 46 87
frame data/chars/karin/94.gif
hitfx data/chars/karin/sounds/karin_5-2.wav
delay 6
省10
47: 2021/03/13(土)23:28 ID:eh+j2tUI(5/6) AAS
Offsetはこれ以降に表示される Frameの基準点(X座標の中心とY座標の0ベース(地面と接地する点))の
設定になります。100x100の画像を表示するとして例では左から46ドットが縦の中心線、
上から87ドットが地面と接する点となります。
毎回設定しなくても同じ座標でよければ1回で以降も機能します。
Delayに関しても同じ描画時間でよければ1回で以降も同じ時間表示されます。
そしていよいよ本番の Frameこれが無ければ何を設定しても機能しません。
基本、どんなコマンドも絵(Frame)と一緒ではじめて効能が発揮されると考えてOKです。
省4
48: 2021/03/13(土)23:43 ID:eh+j2tUI(6/6) AAS
これらを踏まえて見てみると
Offset 46 87て3回書いてるゃん?
はい無駄です
anim attack
delay 4
offset 46 87
frame data/chars/karin/94.gif
省11
49(1): 2021/03/14(日)01:12 ID:Xy6iR8cQ(1/4) AAS
結構便利なコマンド
Anim Block が記述されているとSpecialボタンを押すたび Anim Blockが実行されます。
さらに Entityのヘッダー(HealthやらMpやら記述するとこ)にHoldBolck 1と記述しておく事で
Spcialボタンを押している間ずっと Anim Blockが実行され続けます。
記載された言葉どおり 主に防御動作に使うものですが、基本一人でゲームを遊ぶ場合
防御動作だけでは、いわゆる固められてジリ貧になるのは目に見えてます(もちろんMODによりますが)。
で、この Anim Blockの面白いところは、Bboxを設定しておき、そこに敵の攻撃(Attack)が
省8
50: 2021/03/14(日)01:15 ID:Xy6iR8cQ(2/4) AAS
訂正 HoldBlock 1 です。
あとこれを使うと Special技(Anim Special)を使うには A(攻撃ボタン)とJ(ジャンプ)を
同時押しする必要があります。
51: 2021/03/14(日)01:32 ID:Xy6iR8cQ(3/4) AAS
私の例文で AnimとかAttackとかアルファベットの大文字で記述している所
もし万が一参考なんかにする事があったら、できるだけ実際には anim や attackなど
全て小文字で記述して下さい。
基本どちらでも良いのですが、Open BoR Statsなどで読み込むとき
コマンドの頭文字を大文字で記述していると認識されないことがあります。
スクリプトなんかを記述するときは大文字小文字区別するんで
なかなかに面倒ですね。
52: 2021/03/14(日)02:06 ID:Xy6iR8cQ(4/4) AAS
counterrange {start} {end} {condition} {damage}
FollowAnim と一緒に使う事で少なくとも4種類の追加動作をすることが出来る。
以前は CounterFrame といって特定のFrameを指定する必要があったのが
{start} {end} とあるように範囲指定(0から99とか)できるようになったので、
CounterRange を記述したAnimが実行されている間にBboxに敵のAttackがヒットしたら
追加動作(Anim Follow1〜4)に処理を飛ばす事ができるようになった。
followanim {value}ここに1〜4の数値を指定して処理を飛ばす。
省3
53(1): 2021/03/15(月)23:34 ID:bg70rxpE(1/2) AAS
anim jumpforward
delay 12
offset 34 104
frame data/chars/karin/167.gif
@cmd clearspawnentry();setspawnentry("name", "test")
@cmd bindentity spawn() getlocalvar("self") 0 1 0 1 0 1
offset 34 104
省10
54(1): 2021/03/15(月)23:49 ID:bg70rxpE(2/2) AAS
bindentity(entity, target, int x, int z, int a, int direction, int bindanimation, int sortid)
これが基本の書式ですが、貼り付けるEntity、貼り付けられるTarget、
TargetのOffsetに対してX,Z,Aドット調整して表示、Directionは向きを合わせるか反対にするか常に同じ向きか、
少し分かり辛いのがBindanimationで上の例では貼り付けるEntity(子)のほうのAnimのFrameが終わったら
自然と消去される。1だとTarget(親)と同じAnimだけ実行。
2ならTarget(親)のFrame数ともリンクさせる(面倒そうだけど、上手くできたら凄そう)。
3は機能無しで、4はTarget(親)のAnimと常にリンクして動くEntity(子)にAnim Attack1など
省2
55: 2021/03/16(火)00:31 ID:t+wd47Is(1/3) AAS
>>49 のBlockに関連したコマンドとして
guardpoints {int} intというのは整数という事です。ここで設定した数値分ガード(ブロック)できる。
guardrate {int} 上の数値の回復レート、mpのように設定した数値ずつ回復します。
そしてGuardPointがBlockするたび減ってゆき0になると下のAnimが実行される事になります。
Anim guardbreak
Block系は結構いろいろ設定が可能なようで、
thold {int}これを0で設定するとほぼ全ての攻撃をブロックしたり、
省5
56: 2021/03/16(火)17:28 ID:FVENZVHs(1) AAS
project fgcというmodが格闘ゲームのように奥行きの無い2D作品です。しゃがみ動作もできるようになっているので2D研究用にも良いかもしれない。ver1.4辺りが手に入りやすい。
57: 2021/03/16(火)23:36 ID:t+wd47Is(2/3) AAS
FollowAnim 1
FollowCond 1
上の条件“同じAnim内のAttackがヒットするとAnim Follow1へ処理が飛ぶ”というものです。
@cmd changeentityproperty getlocalvar("self") "animation" openborconstant("ANI_FREESPECIAL1")
Frame data/chars/test/empty.gif
このコマンド文で強制的にFreeSpecial1に処理を飛ばすこともできます。
CounterRangeやCancelを使っても出来ることですが、力技で飛ばすのもたまには良いかも。
省5
58: 2021/03/16(火)23:42 ID:t+wd47Is(3/3) AAS
スクリプト系は大変便利なコマンドが多いのですが無言で落ちたりするので注意も必要です。
あとお約束として@cmd 以降はアルファベットの大文字小文字を区別するのでさらに注意です。
59: 2021/03/17(水)00:14 ID:qqhuc2mx(1/3) AAS
なんだか色々偉そうに書き込んでますが、私は他人の作ったMODに
ぼくのかんがえたさいきょうのって感じで
無限などから拝借ゲフゴフしたプレイヤーキャラを登場させて悦に入る事しかできません。
まったくもってOpenBoRの仕様を理解しているわけではありません。
上の方のGuardPointsについてもAttaker側にGuardCostが必要だったり各コマンド実際には
さまざまな制限があります。
ですが、まああ、とりあえず弄って遊んでみましょう、時に新しいコマンドの使い方発見や
省3
60: 2021/03/17(水)01:27 ID:qqhuc2mx(2/3) AAS
頼みの綱 DCマニュアルには 操作ボタンの中で
Accepted action inputs are:
A: Attack button
A2: Attack button2
A3: Attack button3
A4: Attack button4
J: Jump button
省4
61: 2021/03/17(水)01:36 ID:qqhuc2mx(3/3) AAS
すぐ下にBlockのKだからSpecialと一緒、BはBackで使ってるし、
コマンド指定で混乱しないようにモッダーさんが自分で選んで使ってね
的なことが書いてありました。
ググル先生やディプル先生がいなかったら一生判らないですよ。
座標指定についてもXZA(Y)だったりXA(Y)Zだったり
微妙な違いがあって、悶絶案件は尽きないですね。
62: 2021/03/19(金)02:35 ID:hdeOB3k/(1) AAS
Palette none
私にとって結構重要なコマンド
Open BoRでは基本システムで用意されたパレット(絵の具のパレットと同じような意味)を
使ってFrameで指定された画像が表示されるのですが、ご存知の通り画像にも色々な種類があって、
常に共通のパレットで画像が描かれると不都合(肌色が緑とか)が出てしまう訳です。
そこでPaletteコマンドを使い、専用のパレットを指定して画像を表示することになりますが、
結構面倒だったのが、モデルのヘッダーでPalette noneを宣言することによって、
省2
63: 2021/03/20(土)01:30 ID:nx9KiXPx(1/3) AAS
com A2 freespecial
普通は上のように設定する事で A2を押すと Freespecialが発動します。
anim walk
cancel 0 99 0 A2 freespecial2
loop 1
delay 6
frame data/chars/test/test.gif
省6
64: 2021/03/20(土)02:36 ID:nx9KiXPx(2/3) AAS
grabin {type} {distance} つかみに関するもので格闘ゲームの吸い込みみたいな
forcedirection {dir} 相手を無理やり自分とは反対側に向かせたりする
damageonlanding {value} {type} 吹き飛ばし攻撃で地面にFallすると追加ダメージとか
dropv {height} {speedx} {speedz} 吹き飛ばし攻撃の高さや距離を、別ラインに強制移動させたり
nokill {bool} この攻撃ではHP1を残して生かしておく
stun {int} 設定した時間、硬直させる(Freezeみたいな)
seal {time} {energy} SpecialやFreespecialを設定した時間使用できなくする
省10
65: 2021/03/20(土)02:43 ID:nx9KiXPx(3/3) AAS
例えば
Attack 0 0 50 50 0 1 0 0 0 0
dropv 4 1 0
こんな感じで設定すると、
Attackはダメージ0だけど吹き飛ばし効果あり
そしてDropvにより
吹き飛ばしの効果に上昇4横方向1奥行き0がプラスされます
省1
66: 2021/03/21(日)02:32 ID:xsxh/Aen(1) AAS
悶絶案件
Anim ChargeAttack(一定時間攻撃ボタンを押して、離すと発動)のタメ時間を設定する
ChargeTime これは、Anim ChargeAttackの中に記述しないと(例えばヘッダーとか)
落ちます、エラーログに原因が出力されずに。
マニュアルをちゃんと読めば何処で宣言すべきか書いてはあるんですが、
他のコマンドでは間違った場所でも特にエラーも出ず、無視されることが多いのに、
上のようにエラー出力せず無言落ちするものも一部ではあるので、油断できません。
省3
67: 2021/03/30(火)01:38 ID:1gbSxSh3(1/3) AAS
Anim Throw
なにげに Anim Grabからの派生だと思ってしまうかもしれませんが
単体(Anim Grabが無くても)で使用可能です。
Entityのヘッダーなどで設定(宣言)した GrabDistanceの距離に近づくと勝手に投げます。
ダメージもThrowDamegeで設定できます。
手数が増えますね。
68: 2021/03/30(火)02:02 ID:1gbSxSh3(2/3) AAS
それならAnim Grabに攻撃コマンドを設定したら?
Anim Grabの最後のFrameで一旦停止して入力待ちになってしまいます。
なので、上の直接Throwは実際には手数少なくなります。
OpenBoR のシステム上、Anim Grabからの派生 GrabUp、 Grab Down、 GrabForward
さらにそこからのAttack3や各Grabの2への合計6回分の攻撃が使えなくなるためです。
しかし、Anim Grabからの一時停止によるテンポの悪さは無くなるので、
いきなりThrowは、そこまで悪手でもないのかなと個人的には思います。
69: 2021/03/30(火)10:33 ID:1gbSxSh3(3/3) AAS
訂正 ThrowDamege X ThrowDamage O
Grabに関して、6回分の攻撃?
ThrowやAttack3(GrabAttackなどの3撃目)を出さなければ、
掴み抵抗など何も設定してない敵に、
2系(GrabUp2などの2系はGrabから3撃目のフィニッシュ攻撃)までAnimを用意してあると、
連打せずポチ・ポチとボタンを押す事で各方向2回ずつ攻撃できる(GrabUp・GrabDown・GrabForward分)ので
掴んだらやりたい放題になります。
省2
70: 2021/04/05(月)10:33 ID:JCfKgngn(1) AAS
ロケットヴァイパーのシステムや敵をまるごと流用してるのに作りが雑なbriga de rua(英訳street fight)
キャラクター作りに愛が無い感じで正直微妙な出来
スクリプトの内用を理解しつつ改変してるようなので
それなりの技術力はありそうなのにゲームバランスやキャラの作り込みが
今一なんでなんとも勿体無い
ただわかる範囲では3まで作られているんで力尽きてるようでもなさそう
作者さんは飽きっぽい方なのかな
71: 2021/04/06(火)01:42 ID:XHHis+ii(1) AAS
Anim Follow#に処理を飛ばせる Followanim#これは
Grabの派生攻撃であっても記述すれば効果あるので
anim grabdown
delay 8
hitflash Flash2
hitfx data/sounds/beat4.wav
frame data/chars/test/ga1.gif
省8
72: 2021/04/08(木)01:35 ID:91QCSGqP(1/2) AAS
いろいろなMODを楽しんでいると、いつものメニュー画面とは違ったものに出会う事もあるかと思います。
基本OpenBoRではDATAフォルダの中を読み込んで、各種メニューやセレクトシーンなどに移行するのですが
(level.txtだったりBGSフォルダの中だったり)。
DATAフォルダ直下にScript.txtが用意してあって中に、alwaysupdate 1などと記述してある場合
DATA/SCRIPTSフォルダ内にある Updated.cが優先して読み込まれ中に記述されてるスクリプトが実行されます。
MOD内で普遍的に使用されるスクリプトもここで定義されている事が多いので、
まずはここを探してみるのも良いかもしれません。
73: 2021/04/08(木)02:02 ID:91QCSGqP(2/2) AAS
訂正 level.txt → levels.txt
updated.c に関しては update.c(公式ではこっち)ですが、どちらも優先して読み込まれるようです。
こちらのスクリプトに記述するメリットは、オープニングメニューを派手にしたり、
その場でゲーム難易度などを変更可能にしたり、キャラにレベルアップの要素を仕込むときや
拡大縮小、ゲームの演出上の一時停止を組み込んだりなど、基本システムへの介入を可能にする事でしょうか。
各キャラ(Entity)に一つずつスクリプトを記述する手間が省ける(setglobalvarなどで変数を渡すだけで色々処理できる)
ような感じでしょうか。可能性は無限大になりますが、作る側に立つと脳天炸裂案件ですね。
74: 2021/04/09(金)17:18 ID:ncGtWkZW(1/2) AAS
開発中断か別なプロジェクト名に変わったのかも知れない
Demon Sluga 思い切りスクリプト使って
拡大縮小、キャラクターを飛ばしたり奥や手前から敵が出現したり、誘導弾を弾き返したり
全盛期のアーケードゲーム風に作られてます
手に入るヴァージョンによってかも知れませんが海外の環境依存文字を使っているため
一部手直ししないとステージ1すら始まりません
見るべきところは
省5
75: 2021/04/09(金)17:33 ID:ncGtWkZW(2/2) AAS
幼少の頃ゲームセンターで見た
ノリマロが大活躍するRescue Command remake
敵はオンナサンばかり
面白いのは 掴まれた時のレバガチャ要素
抜け出せないとダメージはもちろん、別なイベントに移行したりと
有効に使われてます。
ゲームバランス的に敵の攻撃力が高いのであれなら
省1
76: 2021/04/10(土)10:53 ID:36EPLB+j(1) AAS
anim idle
loop 1
delay 22
offset 23 102
bbox 13 5 22 100
drawmethod shiftx 0
frame data/chars/ciel/std1.gif
省11
77: 2021/04/11(日)00:13 ID:9LUoOlWn(1/4) AAS
以前にCancelで気軽にダブルジャンプと書きましたが
anim jump
loop 0
cancel 1 9 0 j freespecial3
landframe 3
offset 33 121
delay 16
省18
78: 2021/04/11(日)00:19 ID:9LUoOlWn(2/4) AAS
上の例では見たとおりAnimの表題だけ変えて中身はほぼ一緒
anim jumpland
loop 0
cancel 2 9 0 a freespecial2
delay 9
offset 33 72
frame data/chars/ciel/jmp5.gif
省5
79: 2021/04/11(日)00:32 ID:9LUoOlWn(3/4) AAS
cancel 2 9 0 a freespecial2
この記述だと Frameの2〜9の間に Attackコマンドの有無に関係なく(0)
aボタンが押されたら FreeSpecial2を実行
え?例ではFrameコマンド3つしか無いけど?
スタートフレーム(2)は大事ですが終了フレーム(9)に関しては多すぎても
特にエラーにはならないようです。
3フレームで入力なんてきついなー、Delay 9となっているのでFrameコマンド
省1
80(1): 2021/04/11(日)00:41 ID:9LUoOlWn(4/4) AAS
訂正 3フレームで入力 → 1フレーム
Frameの数え方なんですが、コマンドでフレーム数を数える場合
どうも1番目は 0と数えるようです。
なのでFrameコマンドは 0,1,2の3フレーム
Cancel コマンドの記述は 2、9とありますが9フレーム目なんてないので
Cancel コマンドの判定は 2フレーム(3番目)の一つのみになります。
このFrame数を数えるのが以外に面倒で、Cancelコマンドなどは特に問題にならないのですが
省1
81: 2021/04/12(月)01:07 ID:rapSeOc5(1/2) AAS
スクリプトを無理やりねじ込む
didhitscript @script
void main() {
void self = getlocalvar("self");
void tar = getlocalvar("damagetaker");
void anims = getentityproperty(self,"animationid");
if(tar != NULL()) {
省16
82: 2021/04/12(月)01:15 ID:rapSeOc5(2/2) AAS
上の例では、Void Main(){ }となっています。これは攻撃ヒット判定が行われるたび
毎回参照されるという意味になります。
C言語準拠の記述になるので、この辺の記述や演算子については、
適当にC言語 演算子などで検索してみてください。
で、内容としては、何らかのターゲットに特定(Attack3やFreespecial#)の攻撃がヒットしたら
いつもより大きく吹き飛ばします(TossEntity)。
それぞれのAttackコマンドにDropvなど設定すれば同じ効果は得られますが、
省1
83: 2021/04/13(火)00:39 ID:r7OWv6Qx(1/6) AAS
void EnemySpawn(float fX, float fY, float fZ)
{
void self = getlocalvar("self");
void vSpawn, vName;
int iMHealth = getentityproperty(self,"maxhealth");
int iHealth = getentityproperty(self,"health");
int iDirection = getentityproperty(self, "direction");
省24
84: 2021/04/13(火)00:46 ID:r7OWv6Qx(2/6) AAS
上のスクリプトは、vName="Spiral"や"Sakura"など5種類の敵(Entity)を
ランダムに出現させるものです。
changeentityproperty(vSpawn, "maxhealth", iMHealth); 最大HP
changeentityproperty(vSpawn, "health", iHealth); 現在HP
changeentityproperty(vSpawn, "direction", iDirection); 向き
この辺は好みでランダム(rand()%200+ 50)とか設定しても良いでしょう。
85: 2021/04/13(火)00:50 ID:r7OWv6Qx(3/6) AAS
name REnemy
type Enemy
health 100
nomove 1 1
nodrop 2
lifespan 1
defense all 1.0
省25
86: 2021/04/13(火)00:57 ID:r7OWv6Qx(4/6) AAS
ステージを作ってるとどうしても内容を覚えてしまったりで、
だんだんテストプレイも飽きてきますので、ちょっとした気分転換になるかな?
敵を増やしたとき、スクリプト側とモデル側を少し書き換えるだけで登場させられるので
少しだけ手間が減らせるかなと思います。
もちろんEntityでさえあれば良いので、登場させるのはNPCだってITEMだって良いわけです。
87: 2021/04/13(火)01:17 ID:r7OWv6Qx(5/6) AAS
@cmd EnemySpawn 0 0 0
frame data/chars/misc/empty.gif
この部分を
@cmd EnemySpawn 0 0 0
@cmd EnemySpawn 40 0 0
@cmd EnemySpawn 80 0 0
frame data/chars/misc/empty.gif
省1
88: 2021/04/13(火)01:36 ID:r7OWv6Qx(6/6) AAS
Anim Blockを設定してしまうと、Special用のボタンを押すたびAnim Blockが実行されてしまい
Specialは標準攻撃(A)とジャンプ(J)の同時押しで発動ということになります。
Anim Blockに攻撃モーションを設定したり、Anim BlockPainに攻撃を設定したりすれば
攻撃にもカウンターにも使えるので、想像力次第でいかようにも使えるのですが。
OpenBoR側でもともと設定された機能としてSpecialだと攻撃を受けたり、掴み攻撃を受けたり
そんなときも1ボタンでSpecial発動できるメリットもあるわけです。
そんなとき意外と忘れられがちなSpecial2(レバー入れスペシャル)にガードポーズを組み込み
省7
89: 2021/04/13(火)18:04 ID:pM+4VIKL(1) AAS
一番出し辛い攻撃はRunSlideだと思う
Run→→中に↓ジャンプ、自然な動作としては
スライディングかなあ
OpenBoRに最初から設定されているAnimは
大概過去に存在したゲームからヒントを得ているぽいね
90: 2021/04/14(水)00:12 ID:Bl01iZfT(1/2) AAS
Anim Pain
@script
int Crnd = (rand()%20)+10;
if (frame==0 && Crnd>26) {
changeentityproperty(getlocalvar("self"), "animation", openborconstant("ANI_PAIN4"));
}else if (frame==0 && Crnd>18){
changeentityproperty(getlocalvar("self"), "animation", openborconstant("ANI_PAIN3"));
省7
91: 2021/04/14(水)00:20 ID:Bl01iZfT(2/2) AAS
上の例だと、もちろんAnim Pain3とPain4は設定しておかないと駄目です。
いろいろと検索していると、ユニティとかアンリアルとか目にしますが、
一つのゲームを完成させるとなると結構な労力になると思うのですが、
OpenBoRって基本ゲーム(BeatsOfRage)を土台にすれば、ともすれば
いわゆるツクールより楽にアクションゲームを完成させることが出来ると思うんです。
やはり知名度なんでしょうか?他人のプログラムの改変であっても、一個のゲームまで
いかなくてもキャラ一つでも弄ってみたら嵌ると思うんだけどなぁ
省1
92: kt住江 ◆/VMXjFOJew 2021/04/16(金)03:27 ID:kkjyE+N0(1) AAS
最近復活しました、kt住江です。
長らくスレから遠ざかってしまい、申し訳ありません。
現在新作としてダブルドラゴンのゲームを創意開発中です。
↓開発中のダブルドラゴン用敵キャラ
Twitterリンク:ktsuminoe
そして、kt住江のゲーム保管庫が出来上がりましたので、
皆さま、僭越ながら宜しくお願いします。
省2
93(1): 2021/04/18(日)00:19 ID:FUfakm3o(1/2) AAS
おつかれさまです。
早速、DLさせていただきました。
94(1): 2021/04/18(日)20:34 ID:FUfakm3o(2/2) AAS
kt住江氏の作品はやはり流石の出来ですね。
アクションのバランスも良くて、強技出してればクリアなんて事は無く。
微妙なmodにありがちな敵に殴られる位ならスペシャル連打でいいや、なんて事が無いのが素晴らしい。
敵ごとにちゃんと対処しないと1クレジットクリア出来ない、絶妙なバランスで、とても楽しませて頂きました。
グラに関しても解像度が高ければ良いってものじゃ無いのがとても良く分かります。
95(1): kt住江 ◆/VMXjFOJew 2021/04/19(月)18:52 ID:bjKqc+m0(1) AAS
>>93さん
DLしてくださり、ありがとうございます。
ごゆっくりと、ゲームをお楽しみください。
>>94さん
ありがとうございます。そう言っていただけると、開発したかいがあります。
現在、ダブルドラゴンのゲームを開発中ですが、
2012年の『ギコタク』から続いて『カオスファイト』『コテハンファイト』
省10
96: 2021/04/20(火)22:57 ID:N5Bx9E2D(1/2) AAS
@script
{
if (frame == 48) {
void vEnt,self = getlocalvar("self");
int dx =100,dy=0,dz=0;
int dir = getentityproperty(self, "direction");
int tgtdir = 0;
省24
97: 2021/04/20(火)23:12 ID:N5Bx9E2D(2/2) AAS
改行多杉かと思ったら通った。
プレイヤーの周囲にいるTYPE_ENEMYを探して、
いたらENEMYの後方100ドット(int dx=100)にテレポートする。
最初のFrame[==48というのがテレポートを実施したいFRAME数
ここをFrame==0にすれば、いきなり跳ぶ
下の方にANIM_FAINTというのがあるが、これは該当する敵が居なかったときに
移行するAnimで、別にANIM_IDLEなどでもよいし他の技でもいい。
省8
98: 2021/04/21(水)00:05 ID:fX+bN6sg(1/5) AAS
X Frame[==48 O frame == 48 or frame==0
X ANIM_FAINT O ANI_FAINT
X ANIM_IDLE O ANI_IDLE
間違えると落ちるとこばかりミスった、すいません。
まだ試してませんが、敵に仕込んで跳び先(TType)をTYPE_PLAYERにすれば
後ろにテレポートしてくるウザイ奴にできるかもしれません。
99(1): 2021/04/21(水)00:57 ID:fX+bN6sg(2/5) AAS
>>95 見逃していました。いつも楽しい作品をありがとうございます。
DDシリーズとても楽しみです。
どの作品でも、敵キャラの動きに表情というか個性を感じられ
予備動作や「間」にとても愛情を感じる事ができ、
次はどんな技を使ってくるんだろう?と敵を倒さずウロウロしてみたりしてます。
さっさと倒して駆け抜けようとしても強技連打が通用せず意外と歯応えがあったりと
バランスの妙に感心するばかりです。
省7
100: 2021/04/21(水)01:02 ID:fX+bN6sg(3/5) AAS
maxattacks {max}
Default is 4.
maxattacktypes {max}
Sets the maximum number of attack types.
PAIN,FALL, RISE, BLOCKPAIN and DEATH animations limit is also set together with this.
{max} is number of available types.
Default is 10 & maximum value is 99.
省14
101: 2021/04/21(水)01:20 ID:fX+bN6sg(4/5) AAS
上の設定はMODELS.TXTに記述することで効果が得られます。
Entity(プレイヤーや敵など)で利用するコマンドの上限を設定します。
AttacksとFollows、Freespecialsは何も考えずに99とかにしておいて良いかと思います。
Attacksは単純に通常攻撃の手数に影響します、ただコンボは12までしか繋がらないようなので
そこまで多くなくても良いかと思います。
FreespecialはCancelや@cmdの跳び先など使い勝手が良いので、ついつい増えがち。
FollowsもFreespecialと同じく FollowanimやFollowcondなどで良く使う事になるので
省5
102: 2021/04/21(水)01:27 ID:fX+bN6sg(5/5) AAS
逆にMODELS.TXTで設定せずに
Anim Pain20 などと記述してしまうと簡単に落ちます。
記述に間違いがないのに落ちるーと悶絶することもあります。
中には Logに何も出力されず、ただ落ちることもあります。
とりあえず99で良いかもしれません。
103: kt住江 ◆/VMXjFOJew 2021/04/21(水)19:33 ID:J0YwHZ/b(1) AAS
>>99さん
ありがとうございます。毎度敵の攻撃パターンには特に気合いを入れて作っていますので、
そう言っていただけると感無量です。
貴重な情報ありがとうございます。クライムバスターズMOD、後ほど見てきます。
わしのベルトアクション技術は、専らダブルドラゴンやベナアックルで勉強しました。
特にベアナックル2は敵の構成パターンに飽きさせない工夫があり、
例えば1面中ボスのジャックは、最初は単体で登場しますが、
省4
104: 2021/04/23(金)22:06 ID:uM7p5A0b(1) AAS
敵の種類をいくつか混ぜてバラっと設定してるMODが多い中(もちろん完成させて発表されてるだけで凄いです)。
くにおくん達はプレイしていて楽しい感覚が妙にクセになるんですよね、
もう一回プレイしようと思えるバランスは流石です。
オーソドックスな作りながら攻守のテンポがよいのは BeatemUp UltimateAllianceでしょうか、
大味ながらつい遊んでしまいます。
これBorpak.exeだけで解凍しようとするとエラーで解凍できないのですが(一部ファイルネーム長すぎ)
OprnBoR StatsのFILE→Import PAKで解凍するとXtractフォルダに出力されます。
省9
上下前次1-新書関写板覧索設栞歴
あと 554 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s