フリーのベルトアクション作成ツールBeatsofrageでオリジナルの
ベルトアクションを製作するスレッドです。
http://ime.nu/senileteam.segaforums.com/
なかったので立て直しました
探検
☆ベルトアクション作成 Beats of rageスレッド☆
1名前は開発中のものです。
2019/01/14(月) 03:57:54.21ID:BfjgfhbB2名前は開発中のものです。
2019/01/14(月) 04:02:36.42ID:R9mMQjas いくらググっても出てこないしデフォルトでついてる壁を消す方法と1ラインの作り方の詳細がほしい。
あとできれば放物線移動をするナイフの作り方も
あとできれば放物線移動をするナイフの作り方も
3kt住江 ◆/VMXjFOJew
2019/03/22(金) 23:06:02.20ID:nuPVe/4Y4kt住江 ◆/VMXjFOJew
2019/03/23(土) 21:12:45.65ID:U3LwF5EW こんばんは、kt住江です。
新作『巫女と吸血鬼』が無事に完成しました。
ttps://ux.getuploader.com/gikotakurpg/download/77 12300
前作『くにおくんLA』は、コチラです。
ttps://ux.getuploader.com/gikotakurpg/download/46 12300 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
新作『巫女と吸血鬼』が無事に完成しました。
ttps://ux.getuploader.com/gikotakurpg/download/77 12300
前作『くにおくんLA』は、コチラです。
ttps://ux.getuploader.com/gikotakurpg/download/46 12300 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
5kt住江 ◆/VMXjFOJew
2019/04/03(水) 21:37:36.49ID:oN3p4yD2 『巫女と吸血鬼』にて一部、おかしい箇所がありましたので、
修正バージョンをアップします。
ttps://ux.getuploader.com/gikotakurpg/download/79 12300 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
修正バージョンをアップします。
ttps://ux.getuploader.com/gikotakurpg/download/79 12300 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2019/04/06(土) 08:35:31.08ID:lyXiFoQr
2019/04/07(日) 09:02:39.49ID:jFfEIfMF
>>2
自分は困ったときはまず、ここで調べてる
↓
OpenBOR(英語) マニュアル
http://dcemulation.org/index.php5?title=OpenBORManual
マニュアルで解決できないときに
Chrono Crash(英語) 公式サイト
http://www.chronocrash.com/forum/index.php
自分は困ったときはまず、ここで調べてる
↓
OpenBOR(英語) マニュアル
http://dcemulation.org/index.php5?title=OpenBORManual
マニュアルで解決できないときに
Chrono Crash(英語) 公式サイト
http://www.chronocrash.com/forum/index.php
8kt住江 ◆/VMXjFOJew
2019/04/16(火) 21:51:51.21ID:NREKrxKi >>6さん
楽しんで戴けて、どうもありがとうございます。
僕もまだまだ、OpenBORマニュアルにて、
どのような効果を発揮するのかわからないプログラムがたくさんありますので、
今後はスレの皆様と情報交換しながら、より面白いゲームを開発できればと思っていますので、
僭越ながら、宜しくお願いします。
なお、次回作はアーケード版ダブルドラゴンモチーフの、
ダブルドラゴン二次創作を予定しています。
楽しんで戴けて、どうもありがとうございます。
僕もまだまだ、OpenBORマニュアルにて、
どのような効果を発揮するのかわからないプログラムがたくさんありますので、
今後はスレの皆様と情報交換しながら、より面白いゲームを開発できればと思っていますので、
僭越ながら、宜しくお願いします。
なお、次回作はアーケード版ダブルドラゴンモチーフの、
ダブルドラゴン二次創作を予定しています。
2019/04/22(月) 13:45:05.97ID:GOpVXkaR
日本語マニュアルアップして
2019/05/13(月) 12:25:32.20ID:PvWAiouI
今更SUPER Final Fight GOLD Plusの気に入らない所自分でいじってみたけど
数値置き換えてるだけでも楽しいな
一から作れたらもっと楽しいだろうな
数値置き換えてるだけでも楽しいな
一から作れたらもっと楽しいだろうな
11名前は開発中のものです。
2019/08/10(土) 14:38:43.66ID:9CRYwala borってパンチキック別枠としてコンボさせられないの?
攻撃が1種類だとどうしても作りたい感じにならないので…
攻撃が1種類だとどうしても作りたい感じにならないので…
12名前は開発中のものです。
2020/11/04(水) 10:00:50.86ID:OIHDdznS ☆ アタマからっぽ日本人はマスコミのおもちゃ(笑) ☆
@日本人の精神を腐敗・堕落させ愚民化させろ!
A日本人の女を集中的に狙い洗脳しろ!
Bネトウヨ、ヘイトスピーチ等の言葉を浸透させ、同胞への批判を封じろ.
C韓国人識者に政治的意見を言わせ、御意見番化させろ.
D「同性婚・LGBTを全面肯定しない者は差別主義者だ!」という雰囲気を作れ!
E海外セレブやハーフモデルをもてはやし、「日本人は劣等人種だ!」と植えつけろ.
F「未だにガラケーの奴は笑い者」という雰囲気を作れ.
G「LINEに入らない奴は仲間外れ」という雰囲気を作れ!
H「日本人の男VS日本人の女」の対立を煽り、分断しろ!
I日本人同士で恋愛・結婚させない、子供を生ませないよう誘導しろ.
J日本同士で結婚していたら離婚させる方向に仕向けろ.
K我々がステマしてやれば無名女優も売れっ子女優に早変わり
Lイケメンブームを定着化させ、「男は外見が全てだ!」と洗脳しろ。
- ソース -
電通グループ会長 成田豊は朝鮮半島生まれ
http://ja.wikipedia.org/wiki/%E6%88%90%E7%94%B0%E8%B1%8A
@日本人の精神を腐敗・堕落させ愚民化させろ!
A日本人の女を集中的に狙い洗脳しろ!
Bネトウヨ、ヘイトスピーチ等の言葉を浸透させ、同胞への批判を封じろ.
C韓国人識者に政治的意見を言わせ、御意見番化させろ.
D「同性婚・LGBTを全面肯定しない者は差別主義者だ!」という雰囲気を作れ!
E海外セレブやハーフモデルをもてはやし、「日本人は劣等人種だ!」と植えつけろ.
F「未だにガラケーの奴は笑い者」という雰囲気を作れ.
G「LINEに入らない奴は仲間外れ」という雰囲気を作れ!
H「日本人の男VS日本人の女」の対立を煽り、分断しろ!
I日本人同士で恋愛・結婚させない、子供を生ませないよう誘導しろ.
J日本同士で結婚していたら離婚させる方向に仕向けろ.
K我々がステマしてやれば無名女優も売れっ子女優に早変わり
Lイケメンブームを定着化させ、「男は外見が全てだ!」と洗脳しろ。
- ソース -
電通グループ会長 成田豊は朝鮮半島生まれ
http://ja.wikipedia.org/wiki/%E6%88%90%E7%94%B0%E8%B1%8A
2021/02/04(木) 17:19:23.33ID:jX0oqsZX
>>11
ワイが質問の意味を取り違えてるだけかもだけど
アタックの種類はいくつか設定(レバー入れ攻撃とか)出来るので、そのいくつかのアタック毎にコンボ設定すれば良いんじゃないかな。
もしするとスクリプト導入しないと駄目だったかも。調べてみる。
無限のリソース導入できるようになったり公式?も相変わらず進化してるよね。
画像と当たり判定用意すれば、作りてに特殊な技能無くてもキャラや技がどんどん増やせるのが
OpenBoRの魅力の一つだと思うんで気軽にどんどん弄って遊ぼう
ワイが質問の意味を取り違えてるだけかもだけど
アタックの種類はいくつか設定(レバー入れ攻撃とか)出来るので、そのいくつかのアタック毎にコンボ設定すれば良いんじゃないかな。
もしするとスクリプト導入しないと駄目だったかも。調べてみる。
無限のリソース導入できるようになったり公式?も相変わらず進化してるよね。
画像と当たり判定用意すれば、作りてに特殊な技能無くてもキャラや技がどんどん増やせるのが
OpenBoRの魅力の一つだと思うんで気軽にどんどん弄って遊ぼう
2021/02/05(金) 01:19:54.77ID:abFcte/J
自分でキャラ差し替えしたりして遊んでたDataが出てきたんで中身見てみたら
当時の自分は別人格じゃなかろうかってくらい色々組み込んであって
何も思い出せない
今ではどうやるのか全く思い出せないステージ中の段差とか導入してあるし
一番問題なのはJtoK使ってもパッドが上手く動作しないことだったり
JtoK噛ましてればX-InputもD-Inputも関係ないですよね?
当時の自分は別人格じゃなかろうかってくらい色々組み込んであって
何も思い出せない
今ではどうやるのか全く思い出せないステージ中の段差とか導入してあるし
一番問題なのはJtoK使ってもパッドが上手く動作しないことだったり
JtoK噛ましてればX-InputもD-Inputも関係ないですよね?
2021/02/05(金) 23:23:09.57ID:abFcte/J
キャラ差し替えや、デバグなどで毎回パック、アンパックするのは面倒。
そんなとき、
ダミーファイル(何でも良いので例えばテキストファイルを拡張子をPakに変更)を
PAKSフォルダに一個だけ入れる(他のPakファイルは何処かに退避)
OpenBoRエンジンと同じ階層にDataフォルダ(中にキャラデータとか入ってる奴)を置く
そして普通にOpenBoRをスタートするとDataフォルダが実行されます。
そんなとき、
ダミーファイル(何でも良いので例えばテキストファイルを拡張子をPakに変更)を
PAKSフォルダに一個だけ入れる(他のPakファイルは何処かに退避)
OpenBoRエンジンと同じ階層にDataフォルダ(中にキャラデータとか入ってる奴)を置く
そして普通にOpenBoRをスタートするとDataフォルダが実行されます。
2021/02/07(日) 00:53:10.92ID:C9uSCc3y
少しOpenBORManualを見てみたら以前なら@Scriptを使わなければ出来なかった処理が
通常コマンドでできるようになっていますね。
2年前の質問なのでアレですが、投射物を放物線を描いて飛ぶようにするには
Bombというコマンドがあります、直線ならKnife
ジャンプ中専用にStar、あとBoomerangてのが追加されているようですね。
乗り物に乗ったキャラの落下処理をやってくれるRiderというのも面白そうですね。
通常コマンドでできるようになっていますね。
2年前の質問なのでアレですが、投射物を放物線を描いて飛ぶようにするには
Bombというコマンドがあります、直線ならKnife
ジャンプ中専用にStar、あとBoomerangてのが追加されているようですね。
乗り物に乗ったキャラの落下処理をやってくれるRiderというのも面白そうですね。
2021/02/07(日) 01:04:49.48ID:C9uSCc3y
kt住江氏の新作は逃してしまったのですが、息災そうでなによりです。
過去作でもプレイするたび繊細な作りこみに驚かされます。
なにより8x8ドットの情念とでも呼んだら良いのでしょうか、
プレイするたび発見があり、毎回とても楽しめます。
最近はユニティなどかなり簡易にゲーム開発できる環境になってきましたが、
OpenBoRならではのパラパラ漫画がアクションゲームになるという、
気軽さは他には無いものですね。
過去作でもプレイするたび繊細な作りこみに驚かされます。
なにより8x8ドットの情念とでも呼んだら良いのでしょうか、
プレイするたび発見があり、毎回とても楽しめます。
最近はユニティなどかなり簡易にゲーム開発できる環境になってきましたが、
OpenBoRならではのパラパラ漫画がアクションゲームになるという、
気軽さは他には無いものですね。
2021/02/13(土) 01:37:26.65ID:IDjzs9Ej
各種リソースから材料をいただく際に便利なツール
Fighter Factory Studio(本来無限のキャラなどを作るものです)
openBoRStats(無限のairファイルを読み込んだり、offsetを調整したり)
Alferd Spritesheet Unpacker(スプライトを自動で切り抜いてくれる)
とくにASUはユニティなどでお馴染みの一枚の画像に大量のキャラなどが描かれた
ファイルを自動で切り分けてくれる優れもの。
Fighter Factory Studio(本来無限のキャラなどを作るものです)
openBoRStats(無限のairファイルを読み込んだり、offsetを調整したり)
Alferd Spritesheet Unpacker(スプライトを自動で切り抜いてくれる)
とくにASUはユニティなどでお馴染みの一枚の画像に大量のキャラなどが描かれた
ファイルを自動で切り分けてくれる優れもの。
2021/02/13(土) 01:55:23.90ID:IDjzs9Ej
いま色々実験してるのが
BindEntity これは別々なEntityを関連付けて処理するというもの。
昔サイバーボッツという対戦ゲームがあったのだけど
プレイヤーが操作する機体は大雑把に身体と腕(主に攻撃担当)に別れていて
ロボットなので腕は回転したり、もげたり自在に動くのだけど
これを表現するには絵を何枚用意しても足りない感じなので
機体そのものと腕は別々に表示して絵を節約してたんだけど
それを表現可能にするといえば判っていただけるでしょうか?
BindEntityによって関連付けされたEntityは
たとえばプレイヤーのAnim Idleが実行されると
もう一方のAnim Idleも実行されるというもの
位置や向きを指定することも出来るし、使いこなせれば
ダークネスイリュージョンも簡単に作れそう。
ただし、Entityは別に専用のものを作ろう。
自分に自分をBindEntityしたら落ちました。
BindEntity これは別々なEntityを関連付けて処理するというもの。
昔サイバーボッツという対戦ゲームがあったのだけど
プレイヤーが操作する機体は大雑把に身体と腕(主に攻撃担当)に別れていて
ロボットなので腕は回転したり、もげたり自在に動くのだけど
これを表現するには絵を何枚用意しても足りない感じなので
機体そのものと腕は別々に表示して絵を節約してたんだけど
それを表現可能にするといえば判っていただけるでしょうか?
BindEntityによって関連付けされたEntityは
たとえばプレイヤーのAnim Idleが実行されると
もう一方のAnim Idleも実行されるというもの
位置や向きを指定することも出来るし、使いこなせれば
ダークネスイリュージョンも簡単に作れそう。
ただし、Entityは別に専用のものを作ろう。
自分に自分をBindEntityしたら落ちました。
2021/02/13(土) 02:09:06.65ID:IDjzs9Ej
maxAttacks 30
maxFollows 30
maxAttackTypes 30
maxFreeSpecials 30
上は Models.txt の一例です、
キャラクターなどの Entity.txt 内の記述に間違いが無いはずなのにエラーが発生する場合は、
Models.txt や Levels.txt 内の設定をチェックしてみても良いかも。
Follow や FreeSpecial はとても便利でついつい多用してしまいますが、
標準の設定では 12になっています。
それらを解除するのが上の max~設定、
メモリーや処理スピードの関係で初期値が低くされているのだと想像します、
昨今のPCであれば上げても特に問題は無いと思います。
maxFollows 30
maxAttackTypes 30
maxFreeSpecials 30
上は Models.txt の一例です、
キャラクターなどの Entity.txt 内の記述に間違いが無いはずなのにエラーが発生する場合は、
Models.txt や Levels.txt 内の設定をチェックしてみても良いかも。
Follow や FreeSpecial はとても便利でついつい多用してしまいますが、
標準の設定では 12になっています。
それらを解除するのが上の max~設定、
メモリーや処理スピードの関係で初期値が低くされているのだと想像します、
昨今のPCであれば上げても特に問題は無いと思います。
2021/02/19(金) 00:31:11.85ID:kAXiPLiE
anim special2
@script
void self = getlocalvar("self");
if(frame==0){
float MHealth = getentityproperty(self,"maxhealth");
float Health = getentityproperty(self,"health");
if(Health <= MHealth/2){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL2"));
}
}
@end_script
スクリプトを使うと結構いろんなことが出来ますが
なかでも結構便利なのが上で、スペシャル2(レバー入れ必殺ボタン)の
動作に「プレイヤーが最大体力の2分の1なら、FreeSpecial2を実行する」というもの
DCマニュアルの「ANI_xxx」を見れば色々と変えられるので
英語で判らんチンでも一度は覗いて見てはいかがでしょうか。
@script
void self = getlocalvar("self");
if(frame==0){
float MHealth = getentityproperty(self,"maxhealth");
float Health = getentityproperty(self,"health");
if(Health <= MHealth/2){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL2"));
}
}
@end_script
スクリプトを使うと結構いろんなことが出来ますが
なかでも結構便利なのが上で、スペシャル2(レバー入れ必殺ボタン)の
動作に「プレイヤーが最大体力の2分の1なら、FreeSpecial2を実行する」というもの
DCマニュアルの「ANI_xxx」を見れば色々と変えられるので
英語で判らんチンでも一度は覗いて見てはいかがでしょうか。
2021/02/21(日) 22:41:48.70ID:ke3KkwTC
便利なスクリプト、敵との距離によって技の変化とか
anim runattack
loop 0
@script
void self = getlocalvar("self");
void target = findtarget(self);
int x1 = getentityproperty(target, "x");
int x2 = getentityproperty(self, "x");
int z1 = getentityproperty(target, "z");
int z2 = getentityproperty(self, "z");
if(frame == 0){
if(z1-z2<20 && z1-z2>-20 && x1-x2>-80 && x1-x2<80){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL4"));
}else
if(z1-z2<20 && z1-z2>-20 && x1-x2>-160 && x1-x2<160){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL"));
}
}
@end_script
ダッシュ(→x2)中に攻撃した場合、敵との距離を測ってFREESPECIAL4と
FREESPECIALを距離によって発動するというもの。
毎度おなじ動作ばかりだと飽きやすくなるので、アクセントにどうぞ。
anim runattack
loop 0
@script
void self = getlocalvar("self");
void target = findtarget(self);
int x1 = getentityproperty(target, "x");
int x2 = getentityproperty(self, "x");
int z1 = getentityproperty(target, "z");
int z2 = getentityproperty(self, "z");
if(frame == 0){
if(z1-z2<20 && z1-z2>-20 && x1-x2>-80 && x1-x2<80){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL4"));
}else
if(z1-z2<20 && z1-z2>-20 && x1-x2>-160 && x1-x2<160){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL"));
}
}
@end_script
ダッシュ(→x2)中に攻撃した場合、敵との距離を測ってFREESPECIAL4と
FREESPECIALを距離によって発動するというもの。
毎度おなじ動作ばかりだと飽きやすくなるので、アクセントにどうぞ。
2021/02/22(月) 01:12:07.12ID:Ak0x7Qvg
そもそも、@Scriptとか言われても意味ワカンネって感じの方は、
Open BoR 導入について とか検索してもらって、
どうすればPakファイルの中身の取り出し方を調べてみても良いかもです。
Pakファイルを解凍するとDataフォルダが出てくるんで、
そのフォルダの中にはいくつかのフォルダとTXTファイルが入ってます。
最初に一番いじることになるのは MODEL.TXTと CHARSフォルダかと思います。
これは ENTITYと呼ばれるファイルを設定しているもので、
プレイヤーや敵、障害物、アイテムの内容を設定しています、
簡単な所では必殺技出したら敵は全滅とかの決め事を纏めたもの。
attack 44 13 49 62 5 0 0 0 9 12
とか見ても何ソレて思うかも知れませんが、最初の2ケタの数字4つは
画面上のキャラクターの座標 横44 縦13 そこから横49ドット縦62ドットの位置
敵に当たった場合 5ダメージ与える 吹っ飛ぶか?0だから無し ガード不能か?0だから無し
ヒットマークなど演出は?0だから表示 攻撃が当たったら100分の9秒位止まる
攻撃の範囲は12ラインほどと知ってしまえば何て事はない数字の羅列になります。
実際 5ダメージの所を100にしてしまえば、ワンパンK.O.という事が想像できるかと思います。
Open BoR 導入について とか検索してもらって、
どうすればPakファイルの中身の取り出し方を調べてみても良いかもです。
Pakファイルを解凍するとDataフォルダが出てくるんで、
そのフォルダの中にはいくつかのフォルダとTXTファイルが入ってます。
最初に一番いじることになるのは MODEL.TXTと CHARSフォルダかと思います。
これは ENTITYと呼ばれるファイルを設定しているもので、
プレイヤーや敵、障害物、アイテムの内容を設定しています、
簡単な所では必殺技出したら敵は全滅とかの決め事を纏めたもの。
attack 44 13 49 62 5 0 0 0 9 12
とか見ても何ソレて思うかも知れませんが、最初の2ケタの数字4つは
画面上のキャラクターの座標 横44 縦13 そこから横49ドット縦62ドットの位置
敵に当たった場合 5ダメージ与える 吹っ飛ぶか?0だから無し ガード不能か?0だから無し
ヒットマークなど演出は?0だから表示 攻撃が当たったら100分の9秒位止まる
攻撃の範囲は12ラインほどと知ってしまえば何て事はない数字の羅列になります。
実際 5ダメージの所を100にしてしまえば、ワンパンK.O.という事が想像できるかと思います。
2021/02/22(月) 01:29:59.35ID:Ak0x7Qvg
基本ヨッパラって書き込んでいるので、てにをは、や日本語としてどうなのかについてはゴメンナサイです。
Pakファイルを解凍して出てきたDataフォルダの中にあるMODEL.TXTそして
CHARSフォルダを覗くと、キャラやアイテムなど色々な名前のフォルダが並んでいるかと思います。
だいたいフォルダ名は、キャラそのものを指して入る事が多いので適当のフォルダを開いてみると
たぶん大量の画像ファイルと一つかいくつかのTXTファイルが入っていると思います。
TXTファイルは大概キャラそのものの名前である事が多いので、見てみると最初に
Name XXX Type Playerとか HP 100 MP 100とか書いてあると思います。
ゲームに詳しい人は一目見ただけでなんとなく、名前はXXXでプレイヤーキャらで
体力は100で攻撃くらって0になったら倒されてしまうんだな、
MPって、何か技とか使うと減って、無くなると技が出ないとか?
と察することが出来るのではないでしょうか?
お察しの通りそのまんまの事が多いので、ゲームに慣れているほどわかり易い内容になっています。
Pakファイルを解凍して出てきたDataフォルダの中にあるMODEL.TXTそして
CHARSフォルダを覗くと、キャラやアイテムなど色々な名前のフォルダが並んでいるかと思います。
だいたいフォルダ名は、キャラそのものを指して入る事が多いので適当のフォルダを開いてみると
たぶん大量の画像ファイルと一つかいくつかのTXTファイルが入っていると思います。
TXTファイルは大概キャラそのものの名前である事が多いので、見てみると最初に
Name XXX Type Playerとか HP 100 MP 100とか書いてあると思います。
ゲームに詳しい人は一目見ただけでなんとなく、名前はXXXでプレイヤーキャらで
体力は100で攻撃くらって0になったら倒されてしまうんだな、
MPって、何か技とか使うと減って、無くなると技が出ないとか?
と察することが出来るのではないでしょうか?
お察しの通りそのまんまの事が多いので、ゲームに慣れているほどわかり易い内容になっています。
2021/02/22(月) 01:43:08.21ID:Ak0x7Qvg
少し戻りますが、MODELS.TXT これはOpenBoRの要と言ってよいファイルで、
プレイヤー、敵、アイテム、細かい演出などなどの基本を設定しているファイルです。
自分でMODを作り始めた時、試しに起動してみたらエラーで落ちた
そんな時は大概ここで読み込むファイルを指定し忘れたから、ということ多いです。
あ、エラーで落ちた!ってとき何処をみればいいのか?
OpenBoRのEXEファイルがあるフォルダにLOGSというフォルダあって、そこに
OpenBoRLog.txtというファイルがあるんで、それを開けば
XXXとかいうファイルLoadしろって言うけど、ねーからそんなもん
とか下の方に書いてあるんで、ソレをたよりに修正してゆくことになります・
プレイヤー、敵、アイテム、細かい演出などなどの基本を設定しているファイルです。
自分でMODを作り始めた時、試しに起動してみたらエラーで落ちた
そんな時は大概ここで読み込むファイルを指定し忘れたから、ということ多いです。
あ、エラーで落ちた!ってとき何処をみればいいのか?
OpenBoRのEXEファイルがあるフォルダにLOGSというフォルダあって、そこに
OpenBoRLog.txtというファイルがあるんで、それを開けば
XXXとかいうファイルLoadしろって言うけど、ねーからそんなもん
とか下の方に書いてあるんで、ソレをたよりに修正してゆくことになります・
2021/02/23(火) 00:41:59.00ID:XlcKRtDD
MODELS.TXT を見てゆくと最初のほうの数行以外は殆どが
Know か Load で Data/Chars/xxxといった内容になっています。
大雑把に
Know はいずれ使うから覚えていてと指示しているもの
Load はすぐに Data/〜を読み込んでおくというもの
昔はPCのメモリも少なかったんで重要なもの(プレイヤーとか)だけ
読み込んでおいて、その他出番の少なそうなものは Knowにしておいて
必要になったものだけ都度読み込むという仕様だったようですが、
8ギガ超えのメモリを搭載しているのが当たり前の現在では
最初から全部 Loadでもよいようです。
とはいえ私の想像なので実は何か理由があるのかもしれませんが、
いまのところ全部 Loadでも不具合は無いようです。
Know か Load で Data/Chars/xxxといった内容になっています。
大雑把に
Know はいずれ使うから覚えていてと指示しているもの
Load はすぐに Data/〜を読み込んでおくというもの
昔はPCのメモリも少なかったんで重要なもの(プレイヤーとか)だけ
読み込んでおいて、その他出番の少なそうなものは Knowにしておいて
必要になったものだけ都度読み込むという仕様だったようですが、
8ギガ超えのメモリを搭載しているのが当たり前の現在では
最初から全部 Loadでもよいようです。
とはいえ私の想像なので実は何か理由があるのかもしれませんが、
いまのところ全部 Loadでも不具合は無いようです。
2021/02/27(土) 02:13:36.78ID:BZAtihYI
@script
if (frame == 1) {
void vSpawn;
clearspawnentry();
setspawnentry("name", "Test");
vSpawn = spawn();
bindentity(vSpawn, getlocalvar("self"), 50, 1, 60, 1, 0, 1);
}
@end_script
これは機能するのに
@cmd bindentity "test" getlocalvar("self") 50 1 60 1 0 1
これだと上手くゆかない
なかなか難しいものです
if (frame == 1) {
void vSpawn;
clearspawnentry();
setspawnentry("name", "Test");
vSpawn = spawn();
bindentity(vSpawn, getlocalvar("self"), 50, 1, 60, 1, 0, 1);
}
@end_script
これは機能するのに
@cmd bindentity "test" getlocalvar("self") 50 1 60 1 0 1
これだと上手くゆかない
なかなか難しいものです
2021/02/27(土) 02:45:28.85ID:BZAtihYI
必死になってDCマニュアル読みこむより
過去に作られたシンプルなスクリプト
例)
void spawnEnt(void vName,void x,void z)
{
clearspawnentry();
setspawnentry("name", vName);
void ent=spawn();
changeentityproperty(ent,"position",x+openborvariant("xpos"),z+openborvariant("ypos"));
}
こんな感じのものを
~data/script/~に適当な名前(spawn00とか)で設定しておき
使いたいキャラの設定ファイルのヘッダー(上のほう)に
animationscript data/scripts/spawn00.c
と記入、
anim idle
frame data/chars/test/Test01.gif
@cmd spawnEnt "Test_spawn" 0 0 1
あとは上のように使いたい Animの Frameと一緒に書き込んでおけば
Test01が表示された時に Test_spawnが同時に表示されるというもの
?それなら最初からある CustEntityとかとSpawnFrameでいいんじゃ?
確かにAnimの中で一回だけ表示するならSpawnFrameなりで十分なのですが
複数回表示するときはFrameと@cmdセットで使えば、
いちいちFrameコマを数えたりしなくてすむのでなかなか便利です。
過去に作られたシンプルなスクリプト
例)
void spawnEnt(void vName,void x,void z)
{
clearspawnentry();
setspawnentry("name", vName);
void ent=spawn();
changeentityproperty(ent,"position",x+openborvariant("xpos"),z+openborvariant("ypos"));
}
こんな感じのものを
~data/script/~に適当な名前(spawn00とか)で設定しておき
使いたいキャラの設定ファイルのヘッダー(上のほう)に
animationscript data/scripts/spawn00.c
と記入、
anim idle
frame data/chars/test/Test01.gif
@cmd spawnEnt "Test_spawn" 0 0 1
あとは上のように使いたい Animの Frameと一緒に書き込んでおけば
Test01が表示された時に Test_spawnが同時に表示されるというもの
?それなら最初からある CustEntityとかとSpawnFrameでいいんじゃ?
確かにAnimの中で一回だけ表示するならSpawnFrameなりで十分なのですが
複数回表示するときはFrameと@cmdセットで使えば、
いちいちFrameコマを数えたりしなくてすむのでなかなか便利です。
2021/02/28(日) 18:25:57.18ID:aAXgr/zu
game joltでopen borを検索すると結構色んなmodが見つかって楽しいよ。
2021/03/04(木) 01:04:42.36ID:flx7Tt6m
Open BoR のビルド違いによってMODによっては動作が変になる。
基本バージョンは3のまま結構な期間経過しています。
Build6391あたりが一番手に入り易く、公式的にも安定しているっぽいですが、
2016年あたりを境に過去のMODは動作がおかしくなったり
エラーで落ちたりし易くなるようです。動いてもキャラがブルブル震えて変な動きになったり。
原因としては Scriptを使っていることが多く、過去のビルド3789とか本体のファイルサイズが2メガ弱位だと
エラーが発生してもある程度受け流してくれるwのですが、本体のファイルサイズが3.4メガくらいになると
スクリプトや内部の予約語?的な名称を厳密に判断したりしてエラーが出易くなっているようです。
これは、MODにあったBuild環境のOpen BoRをMOD作者さんが提供してくれるか、
片っ端からちょうど良いビルドを探すしかないようです。
上記のファイルサイズが2メガ弱か3.4メガかの違いが大雑把な分け方になりそうです。
基本バージョンは3のまま結構な期間経過しています。
Build6391あたりが一番手に入り易く、公式的にも安定しているっぽいですが、
2016年あたりを境に過去のMODは動作がおかしくなったり
エラーで落ちたりし易くなるようです。動いてもキャラがブルブル震えて変な動きになったり。
原因としては Scriptを使っていることが多く、過去のビルド3789とか本体のファイルサイズが2メガ弱位だと
エラーが発生してもある程度受け流してくれるwのですが、本体のファイルサイズが3.4メガくらいになると
スクリプトや内部の予約語?的な名称を厳密に判断したりしてエラーが出易くなっているようです。
これは、MODにあったBuild環境のOpen BoRをMOD作者さんが提供してくれるか、
片っ端からちょうど良いビルドを探すしかないようです。
上記のファイルサイズが2メガ弱か3.4メガかの違いが大雑把な分け方になりそうです。
2021/03/04(木) 01:18:13.47ID:flx7Tt6m
ご本人の許可は取ってないとは思うんですが、
kt住江氏の作品が海外で良くみかける上、
評判も良いよう(星で評価されてると大概5)なので
なんだか自分まで嬉しくなってしまいます。
Streets of Rage Z2 というキャラはメガドライブ版からの流用っぽいですが、
Final Fightなんちゃら系によくあるレベルアップスクリプトを導入していて
なかなか楽しめますね。
kt住江氏の作品が海外で良くみかける上、
評判も良いよう(星で評価されてると大概5)なので
なんだか自分まで嬉しくなってしまいます。
Streets of Rage Z2 というキャラはメガドライブ版からの流用っぽいですが、
Final Fightなんちゃら系によくあるレベルアップスクリプトを導入していて
なかなか楽しめますね。
2021/03/04(木) 01:30:05.90ID:flx7Tt6m
remove 0か1
これはハドーケン!とかナイフとかの飛び道具系 Entityのヘッダーに設定するのですが、
使うときは CustKnife xxx(このEntityに設定) ThrowFrame 1なんて感じで
投げると 0なら敵に当たったら消滅、1なら貫通する
xxx(投げられるEntity)これの HitFlash を爆発系のEntity(AttackをBlastにするとか)にすれば
連鎖爆発みたいなこともスクリプトを使わずに行えます。
よく血しぶきてきな演出で HitFlash を設定し、そのHitFlashにさらに CustBomb xxx
TossFrame 1なんてすればチがドバドバみたいなこともできます。
これはハドーケン!とかナイフとかの飛び道具系 Entityのヘッダーに設定するのですが、
使うときは CustKnife xxx(このEntityに設定) ThrowFrame 1なんて感じで
投げると 0なら敵に当たったら消滅、1なら貫通する
xxx(投げられるEntity)これの HitFlash を爆発系のEntity(AttackをBlastにするとか)にすれば
連鎖爆発みたいなこともスクリプトを使わずに行えます。
よく血しぶきてきな演出で HitFlash を設定し、そのHitFlashにさらに CustBomb xxx
TossFrame 1なんてすればチがドバドバみたいなこともできます。
2021/03/06(土) 03:14:00.97ID:jHze2gK/
結構便利なコマンド
anim Attack 内に記述して使う
cancel {start frame} {end frame} {hits} {sequence of inputs} {freespecial#}
start frame と end frame で指定したフレーム内で sequence of inputs のボタン入力があったら
freespecial# を実行するというもの
hits は当たったかどうか
anim attack3
loop 0
delay 5
offset 121 152
cancel 9 99 1 A freespecial3
frame data/chars/Test/empty.gif
こんな感じ
start frame は入力を受け付けるフレームなので、きちんと数える必要がありますが
end frame にかんしては99とか大雑把でOK
コンボに一味加える感じで使えます。
anim Attack 内に記述して使う
cancel {start frame} {end frame} {hits} {sequence of inputs} {freespecial#}
start frame と end frame で指定したフレーム内で sequence of inputs のボタン入力があったら
freespecial# を実行するというもの
hits は当たったかどうか
anim attack3
loop 0
delay 5
offset 121 152
cancel 9 99 1 A freespecial3
frame data/chars/Test/empty.gif
こんな感じ
start frame は入力を受け付けるフレームなので、きちんと数える必要がありますが
end frame にかんしては99とか大雑把でOK
コンボに一味加える感じで使えます。
2021/03/09(火) 01:00:15.73ID:vWs4Sul9
Rescue Command という Mod が Weapons を上手く使って変身を表現しているのが面白いですね。
そもそも Weapons とはゲーム中キャラクター(Entity)が武器を拾ったさいに
素人の想像では基になったキャラ(Entity)に武器のEntityを重ねて表示して
武器の分だけ攻撃力を上昇させたり、攻撃の判定を大きくしたりなんて処理をしてるのかな?
と思いますが、Open BoRでは 別なEntity、武器を持ったキャラの画像(Frame)を使った
Model に完全に切り替えることになります。
なので、Weapons に設定したからといって武器である必要はなく、完全に別キャラ(Entity)でよい訳です
別キャラなんで Anim Attack#はもとより SpecialやFreespecial だって完全別にしてOK
なので、初期は弱能力キャラで武器を拾うもしくは、初期キャラのSpecialなどで別キャラ(Entity)に切り替えることが
できる事になります。アイデア次第で夢が広がりますね。
強制スクロール時のキャラを設定する事ももちろんできますので、キャラ管理も楽になりますね。
そもそも Weapons とはゲーム中キャラクター(Entity)が武器を拾ったさいに
素人の想像では基になったキャラ(Entity)に武器のEntityを重ねて表示して
武器の分だけ攻撃力を上昇させたり、攻撃の判定を大きくしたりなんて処理をしてるのかな?
と思いますが、Open BoRでは 別なEntity、武器を持ったキャラの画像(Frame)を使った
Model に完全に切り替えることになります。
なので、Weapons に設定したからといって武器である必要はなく、完全に別キャラ(Entity)でよい訳です
別キャラなんで Anim Attack#はもとより SpecialやFreespecial だって完全別にしてOK
なので、初期は弱能力キャラで武器を拾うもしくは、初期キャラのSpecialなどで別キャラ(Entity)に切り替えることが
できる事になります。アイデア次第で夢が広がりますね。
強制スクロール時のキャラを設定する事ももちろんできますので、キャラ管理も楽になりますね。
2021/03/09(火) 01:57:36.98ID:vWs4Sul9
Cancel コマンドについて飛び先は基本 Freespecial#である必要があります(@Cmdとか@Scriptとか言い出すとキリがないので)。
たとえば Anim Jump に Cancel 3 99 0 Freespecial# として、
Freespecial#に Jumpframeを組み込む事でダブルジャンプなんてことも出来るわけです。
これはプレイヤーに限ったことでは無く、どんなEntityでも良いわけで(一応Typeによって制限はありますが)
Range 設定などによって敵AIに色々設定できますが、やはりどうしても単調になりがちな敵の動作などに
ちょっとした味付けが出来るわけです。
私などは、ついついAnim Attackだから攻撃動作させなきゃなどと固まった考えに陥りがちですが
別に Anim Jumpにダッシュをさせたって良いわけです
もちろんAnimごとにOpen BoRの基本設定があるので、それに則った動作をさせるに越した事はありませんが。
たとえば Anim Jump に Cancel 3 99 0 Freespecial# として、
Freespecial#に Jumpframeを組み込む事でダブルジャンプなんてことも出来るわけです。
これはプレイヤーに限ったことでは無く、どんなEntityでも良いわけで(一応Typeによって制限はありますが)
Range 設定などによって敵AIに色々設定できますが、やはりどうしても単調になりがちな敵の動作などに
ちょっとした味付けが出来るわけです。
私などは、ついついAnim Attackだから攻撃動作させなきゃなどと固まった考えに陥りがちですが
別に Anim Jumpにダッシュをさせたって良いわけです
もちろんAnimごとにOpen BoRの基本設定があるので、それに則った動作をさせるに越した事はありませんが。
2021/03/09(火) 02:27:25.00ID:vWs4Sul9
基本的コマンド
Attack について、もっとも使われるコマンドの一つになるかと思います。
Open BoRで作られるModは殆どが2D横スクロールアクションで、
ゲーム画面でキャラクター(Entity)達は
左右への移動(X軸)手前や奥に移動できる奥行き(Z軸)
ジャンプなどによる上昇、下降(Y軸(A軸))で管理される事が基本になります。
そこでキャラクターが攻撃動作をさせようというときに Attackコマンドが使われます。
書式は
attack{#} {x} {y} {right} {down} {damage} {power} {block} {noflash} {pausetime} {z}
基本的に Frame(画像の表示)と一緒に使われます。
Frameの手前の行に Attack 10 30 50 50 10 0 1 0 10 20
などと数値を書き込むと、Attackの次に記入されたFarmeが表示されたとき
その画像が横100,縦200の大きさだった場合には、画像の左上0,0から横10ドット縦30ドットを基点に、
さらにそこから横に50ドット、縦に50ドットの範囲で四角形を形成し、
そこに敵などのEntityのやられ判定(Bbox)が重なると攻撃が成功したと判断され、
以降ダメージ(例では10)、吹っ飛ぶか?、防御は出来るか?、
当たったと表示するか?(打撃やチなどのエフェクト、1で表示しない、普通は0)
攻撃が成功したら設定した時間分硬直する、
攻撃がZ軸に数値分影響を及ぼす、
という動作が実行されます。
Attack について、もっとも使われるコマンドの一つになるかと思います。
Open BoRで作られるModは殆どが2D横スクロールアクションで、
ゲーム画面でキャラクター(Entity)達は
左右への移動(X軸)手前や奥に移動できる奥行き(Z軸)
ジャンプなどによる上昇、下降(Y軸(A軸))で管理される事が基本になります。
そこでキャラクターが攻撃動作をさせようというときに Attackコマンドが使われます。
書式は
attack{#} {x} {y} {right} {down} {damage} {power} {block} {noflash} {pausetime} {z}
基本的に Frame(画像の表示)と一緒に使われます。
Frameの手前の行に Attack 10 30 50 50 10 0 1 0 10 20
などと数値を書き込むと、Attackの次に記入されたFarmeが表示されたとき
その画像が横100,縦200の大きさだった場合には、画像の左上0,0から横10ドット縦30ドットを基点に、
さらにそこから横に50ドット、縦に50ドットの範囲で四角形を形成し、
そこに敵などのEntityのやられ判定(Bbox)が重なると攻撃が成功したと判断され、
以降ダメージ(例では10)、吹っ飛ぶか?、防御は出来るか?、
当たったと表示するか?(打撃やチなどのエフェクト、1で表示しない、普通は0)
攻撃が成功したら設定した時間分硬直する、
攻撃がZ軸に数値分影響を及ぼす、
という動作が実行されます。
2021/03/09(火) 02:36:19.87ID:vWs4Sul9
色々と書かれていてパニックになりそうですが、羅列された数字の意味が分かってしまえば
なんて事ないですね、特にゲームに慣れた方なら感覚的に理解できるかと思います。
Open BoRでは基本的にこの繰り返しで作られています。
画像が表示されて、それぞれに攻撃判定ややられ判定があって、ジャンプさせる事ができたり
走ったりが簡単に作れるようにAnimという形で基本設定がされています。
パラパラ漫画の要領がわかれば誰でもゲームが作れる、そんな素敵システムがOpen BoRなのです。
なんて事ないですね、特にゲームに慣れた方なら感覚的に理解できるかと思います。
Open BoRでは基本的にこの繰り返しで作られています。
画像が表示されて、それぞれに攻撃判定ややられ判定があって、ジャンプさせる事ができたり
走ったりが簡単に作れるようにAnimという形で基本設定がされています。
パラパラ漫画の要領がわかれば誰でもゲームが作れる、そんな素敵システムがOpen BoRなのです。
2021/03/09(火) 23:07:14.40ID:vWs4Sul9
Bindentity を使って燃やされエフェクト
anim burn
@script
if(frame==0) フレーム0の時
{
void self = getlocalvar("self"); 自分の情報
void e; 仮の入れ物
clearspawnentry(); これから表示用の入れ物をクリア
setspawnentry("name", "BurnFX"); 表示用の入れ物に BurnFXというEntityをセット
e = spawn(); 入れ物に入れた Entityを出力する準備
bindentity(e, self,0,1,0,1,4); 自分自身に上の Entityをバインド(一緒に動く)
}
@end_script
delay 30
landframe 2
offset 225 198
frame data/chars/test/empty.gif 何も描画しないGIF画像
delay 300
frame data/chars/test/empty.gif
delay 20
frame data/chars/test/empty.gif
frame data/chars/test/down.gif 自分がダウンした画像
anim burn
@script
if(frame==0) フレーム0の時
{
void self = getlocalvar("self"); 自分の情報
void e; 仮の入れ物
clearspawnentry(); これから表示用の入れ物をクリア
setspawnentry("name", "BurnFX"); 表示用の入れ物に BurnFXというEntityをセット
e = spawn(); 入れ物に入れた Entityを出力する準備
bindentity(e, self,0,1,0,1,4); 自分自身に上の Entityをバインド(一緒に動く)
}
@end_script
delay 30
landframe 2
offset 225 198
frame data/chars/test/empty.gif 何も描画しないGIF画像
delay 300
frame data/chars/test/empty.gif
delay 20
frame data/chars/test/empty.gif
frame data/chars/test/down.gif 自分がダウンした画像
2021/03/09(火) 23:08:13.02ID:vWs4Sul9
こんな感じで BurnFX(燃えた画像)というEntityをModels.txt で設定しおき。
Anim Burn はもともと炎上攻撃に対するリアクション専用 Animで Painと同じように使います。
炎上攻撃
burn {x} {y} {right} {down} {damage} {knockdown} {block} {noflash} {pausetime} {z}
アタックと同じようにつかいます。
他にShock電撃 Freeze冷凍など
とはいえエフェクトを用意しておかないと、あまり効果は感じません。
これの便利なところはキャラ(Entity)毎にやられパターンを作らずとも
共通のエフェクト(例ではBurnFX、冷凍ならFreezFXとか)を作れば
あとは Bindentityで貼り付ければいいわけです。
Anim Burn はもともと炎上攻撃に対するリアクション専用 Animで Painと同じように使います。
炎上攻撃
burn {x} {y} {right} {down} {damage} {knockdown} {block} {noflash} {pausetime} {z}
アタックと同じようにつかいます。
他にShock電撃 Freeze冷凍など
とはいえエフェクトを用意しておかないと、あまり効果は感じません。
これの便利なところはキャラ(Entity)毎にやられパターンを作らずとも
共通のエフェクト(例ではBurnFX、冷凍ならFreezFXとか)を作れば
あとは Bindentityで貼り付ければいいわけです。
2021/03/13(土) 00:39:54.70ID:eh+j2tUI
上でも少し触れましたが、基本はパラパラ漫画の要領で
1枚ずつ絵を表示して、その絵に攻撃判定ややられ判定を一緒に添え付ける事を繰り返してゆく。
一連の動作にしてゆくことになります。
動作のうち大雑把な纏めとして Anim(Animationの略)という括りで動作の整理が行われます。
攻撃その1なら Anim Attack1、ジャンプなら Anim Jumpなどなど
ただどのAnimでもかならず Frame という画像を表示するコマンドがほぼ必須で
例えば Anim Attack だからといって、いきなり Attack 0 0 30 80 10 0 0 0 10 10
などと書き込んでも機能しません、対というか属する Frameが必要になります。
Frame data/chars/test/test.gifなどと一緒に記述してはじめてAttackなどが機能します。
1枚ずつ絵を表示して、その絵に攻撃判定ややられ判定を一緒に添え付ける事を繰り返してゆく。
一連の動作にしてゆくことになります。
動作のうち大雑把な纏めとして Anim(Animationの略)という括りで動作の整理が行われます。
攻撃その1なら Anim Attack1、ジャンプなら Anim Jumpなどなど
ただどのAnimでもかならず Frame という画像を表示するコマンドがほぼ必須で
例えば Anim Attack だからといって、いきなり Attack 0 0 30 80 10 0 0 0 10 10
などと書き込んでも機能しません、対というか属する Frameが必要になります。
Frame data/chars/test/test.gifなどと一緒に記述してはじめてAttackなどが機能します。
2021/03/13(土) 16:15:01.43ID:R+3whepu
日本語による解説
ありがたいです。
自分の思い描いた
ゲームを(たぶん)
気軽に作れるのは
魅力的ですよねー
ありがたいです。
自分の思い描いた
ゲームを(たぶん)
気軽に作れるのは
魅力的ですよねー
2021/03/13(土) 18:45:04.39ID:5eJPgycF
いきなり質問何ですが、OpenBORstatsのLevel Designウィンドウの右上にある
チェック項目のPTrans ってFrontとPanelsの透過色の設定と言う認識で良いんですかね?
下の画面に反映される場合と反映されない場合があって悩んでいます…。
チェック項目のPTrans ってFrontとPanelsの透過色の設定と言う認識で良いんですかね?
下の画面に反映される場合と反映されない場合があって悩んでいます…。
4342
2021/03/13(土) 18:46:37.43ID:5eJPgycF 上の質問は自分で作っているゲーム内の話ではなくて、他の方がすでに作ったゲーム内の
ステージを見てみると言う事です。
ステージを見てみると言う事です。
2021/03/13(土) 22:15:34.36ID:eh+j2tUI
>>36
Attackの説明にて {Z}の所、ここが0だと同じ座標に並ばないと攻撃がヒットしません。
たとえば 10にすると攻撃者から手前側と奥側にも10ドット分判定が発生し攻撃があたり易くなります。
必殺技などは60なんて数値にすれば、かなりの敵を巻き込む事ができます。
同じように Bbox(やられ判定)でも {Z}の指定は可能で、数値の分やられ判定に厚みがでます。
大型の敵などに設定すれば、見た目の割りにスカスカで当たらないといったことも少なくなりそうですね。
Attackの説明にて {Z}の所、ここが0だと同じ座標に並ばないと攻撃がヒットしません。
たとえば 10にすると攻撃者から手前側と奥側にも10ドット分判定が発生し攻撃があたり易くなります。
必殺技などは60なんて数値にすれば、かなりの敵を巻き込む事ができます。
同じように Bbox(やられ判定)でも {Z}の指定は可能で、数値の分やられ判定に厚みがでます。
大型の敵などに設定すれば、見た目の割りにスカスカで当たらないといったことも少なくなりそうですね。
2021/03/13(土) 22:37:41.47ID:eh+j2tUI
>>42さん
せっかくスレが立ってたので適当な事をダラダラと書き綴っていました。
OpenBoR Statsに関しては、とくにLevelDesignとか殆どやったことがなかったので
透過色に関しての設定があるなんて今まで知りませんでした。
色に関しては結構いろいろ設定があるようで、グローバルなパレットを使うだの
個別に設定するだの、Drawmethodでさらに設定できるだの、
色々ありすぎて基本手を出さないようにしてます。
あと、私の使ってる OpenBoR Statsは0.53という古いもので
Levelを読み込むと色々透過前の色のままドバっと出てきます。
公式で話題になってるのはの 0.67のようですね。
0.67で見てみると、確かに右上にチェックボックスがあり、そこをチェックして
左上2番目のリロードを押すと、透過された表になりますね。
せっかくスレが立ってたので適当な事をダラダラと書き綴っていました。
OpenBoR Statsに関しては、とくにLevelDesignとか殆どやったことがなかったので
透過色に関しての設定があるなんて今まで知りませんでした。
色に関しては結構いろいろ設定があるようで、グローバルなパレットを使うだの
個別に設定するだの、Drawmethodでさらに設定できるだの、
色々ありすぎて基本手を出さないようにしてます。
あと、私の使ってる OpenBoR Statsは0.53という古いもので
Levelを読み込むと色々透過前の色のままドバっと出てきます。
公式で話題になってるのはの 0.67のようですね。
0.67で見てみると、確かに右上にチェックボックスがあり、そこをチェックして
左上2番目のリロードを押すと、透過された表になりますね。
2021/03/13(土) 23:16:12.22ID:eh+j2tUI
攻撃動作の設定例
anim attack
delay 4
offset 46 87
frame data/chars/karin/94.gif
hitfx data/chars/karin/sounds/karin_5-2.wav
delay 6
attack 54 8 67 50 10 0 1 0 10 20
offset 46 87
frame data/chars/karin/95.gif
offset 46 87
frame data/chars/karin/96.gif
これは適当なキャラの攻撃 Animになります
Delayというのは言葉からなんとなく想像できるかと思いますが
次に実行される Frameが数値分の時間表示されるというもので、
単位はおよそ100分の1秒、ゲーム(MOD)中では基準となる時間が流れていて
その中で、Delay 4であれば100分の4秒間 Frameで指定された画像が表示される訳です。
anim attack
delay 4
offset 46 87
frame data/chars/karin/94.gif
hitfx data/chars/karin/sounds/karin_5-2.wav
delay 6
attack 54 8 67 50 10 0 1 0 10 20
offset 46 87
frame data/chars/karin/95.gif
offset 46 87
frame data/chars/karin/96.gif
これは適当なキャラの攻撃 Animになります
Delayというのは言葉からなんとなく想像できるかと思いますが
次に実行される Frameが数値分の時間表示されるというもので、
単位はおよそ100分の1秒、ゲーム(MOD)中では基準となる時間が流れていて
その中で、Delay 4であれば100分の4秒間 Frameで指定された画像が表示される訳です。
2021/03/13(土) 23:28:50.14ID:eh+j2tUI
Offsetはこれ以降に表示される Frameの基準点(X座標の中心とY座標の0ベース(地面と接地する点))の
設定になります。100x100の画像を表示するとして例では左から46ドットが縦の中心線、
上から87ドットが地面と接する点となります。
毎回設定しなくても同じ座標でよければ1回で以降も機能します。
Delayに関しても同じ描画時間でよければ1回で以降も同じ時間表示されます。
そしていよいよ本番の Frameこれが無ければ何を設定しても機能しません。
基本、どんなコマンドも絵(Frame)と一緒ではじめて効能が発揮されると考えてOKです。
上の例では 94.Gifを一回表示して。
次に 95.Gifを表示すると共に Attackコマンド(攻撃処理)を実行。Hitfxは攻撃が当たったら鳴らす効果音。
そして 96.Gifを表示して終わる。
というもの、いろいろ記述されていて面倒そうですが、分かってしまえば単純ですね。
設定になります。100x100の画像を表示するとして例では左から46ドットが縦の中心線、
上から87ドットが地面と接する点となります。
毎回設定しなくても同じ座標でよければ1回で以降も機能します。
Delayに関しても同じ描画時間でよければ1回で以降も同じ時間表示されます。
そしていよいよ本番の Frameこれが無ければ何を設定しても機能しません。
基本、どんなコマンドも絵(Frame)と一緒ではじめて効能が発揮されると考えてOKです。
上の例では 94.Gifを一回表示して。
次に 95.Gifを表示すると共に Attackコマンド(攻撃処理)を実行。Hitfxは攻撃が当たったら鳴らす効果音。
そして 96.Gifを表示して終わる。
というもの、いろいろ記述されていて面倒そうですが、分かってしまえば単純ですね。
2021/03/13(土) 23:43:16.40ID:eh+j2tUI
これらを踏まえて見てみると
Offset 46 87て3回書いてるゃん?
はい無駄です
anim attack
delay 4
offset 46 87
frame data/chars/karin/94.gif
hitfx data/chars/karin/sounds/karin_5-2.wav
delay 6
attack 54 8 67 50 10 0 1 0 10 20
frame data/chars/karin/95.gif
frame data/chars/karin/96.gif
一気にキレイになりました。
これDelay 6の所をDelay 9なんてすると 95.Gif、96.Gifが少し長く表示されます
さらに95.Gifと96.Gifの間に Delay 6と記述することで 95.Gifが他より長く表示され
人間の視覚的に強調される感じとなり、見ようによっては重い攻撃といった印象に
なる(なって欲しいな)かと思います。
こんな感じで動作に味付けしてゆきます。
Offset 46 87て3回書いてるゃん?
はい無駄です
anim attack
delay 4
offset 46 87
frame data/chars/karin/94.gif
hitfx data/chars/karin/sounds/karin_5-2.wav
delay 6
attack 54 8 67 50 10 0 1 0 10 20
frame data/chars/karin/95.gif
frame data/chars/karin/96.gif
一気にキレイになりました。
これDelay 6の所をDelay 9なんてすると 95.Gif、96.Gifが少し長く表示されます
さらに95.Gifと96.Gifの間に Delay 6と記述することで 95.Gifが他より長く表示され
人間の視覚的に強調される感じとなり、見ようによっては重い攻撃といった印象に
なる(なって欲しいな)かと思います。
こんな感じで動作に味付けしてゆきます。
2021/03/14(日) 01:12:03.76ID:Xy6iR8cQ
結構便利なコマンド
Anim Block が記述されているとSpecialボタンを押すたび Anim Blockが実行されます。
さらに Entityのヘッダー(HealthやらMpやら記述するとこ)にHoldBolck 1と記述しておく事で
Spcialボタンを押している間ずっと Anim Blockが実行され続けます。
記載された言葉どおり 主に防御動作に使うものですが、基本一人でゲームを遊ぶ場合
防御動作だけでは、いわゆる固められてジリ貧になるのは目に見えてます(もちろんMODによりますが)。
で、この Anim Blockの面白いところは、Bboxを設定しておき、そこに敵の攻撃(Attack)が
ヒットすると、Anim Blockpainに処理が飛ぶというところ、そうここには別にやられ動作を仕込む必要は無く
逆に Attackコマンドを仕込むことで 防御すると 自動で反撃にすることもできるわけです。
自動で反撃にには他に Counterrangeがあり、こちらの方が汎用性がありますが
@Cmdや@Scriptを使わずとも既存の処理だけでプレイヤーの手数を増やすという意味で
とても効果的だと思います。
私はすぐ頭沸騰してしまい中々有用な手は思いつきませんが、Cancelコマンドも合わせると
かなり可能性は広がると思います。
ただただ攻撃連打して、敵が集まったらSpecialで一掃みたいな単調な展開になりにくくなるかな。
Anim Block が記述されているとSpecialボタンを押すたび Anim Blockが実行されます。
さらに Entityのヘッダー(HealthやらMpやら記述するとこ)にHoldBolck 1と記述しておく事で
Spcialボタンを押している間ずっと Anim Blockが実行され続けます。
記載された言葉どおり 主に防御動作に使うものですが、基本一人でゲームを遊ぶ場合
防御動作だけでは、いわゆる固められてジリ貧になるのは目に見えてます(もちろんMODによりますが)。
で、この Anim Blockの面白いところは、Bboxを設定しておき、そこに敵の攻撃(Attack)が
ヒットすると、Anim Blockpainに処理が飛ぶというところ、そうここには別にやられ動作を仕込む必要は無く
逆に Attackコマンドを仕込むことで 防御すると 自動で反撃にすることもできるわけです。
自動で反撃にには他に Counterrangeがあり、こちらの方が汎用性がありますが
@Cmdや@Scriptを使わずとも既存の処理だけでプレイヤーの手数を増やすという意味で
とても効果的だと思います。
私はすぐ頭沸騰してしまい中々有用な手は思いつきませんが、Cancelコマンドも合わせると
かなり可能性は広がると思います。
ただただ攻撃連打して、敵が集まったらSpecialで一掃みたいな単調な展開になりにくくなるかな。
2021/03/14(日) 01:15:14.34ID:Xy6iR8cQ
訂正 HoldBlock 1 です。
あとこれを使うと Special技(Anim Special)を使うには A(攻撃ボタン)とJ(ジャンプ)を
同時押しする必要があります。
あとこれを使うと Special技(Anim Special)を使うには A(攻撃ボタン)とJ(ジャンプ)を
同時押しする必要があります。
2021/03/14(日) 01:32:53.13ID:Xy6iR8cQ
私の例文で AnimとかAttackとかアルファベットの大文字で記述している所
もし万が一参考なんかにする事があったら、できるだけ実際には anim や attackなど
全て小文字で記述して下さい。
基本どちらでも良いのですが、Open BoR Statsなどで読み込むとき
コマンドの頭文字を大文字で記述していると認識されないことがあります。
スクリプトなんかを記述するときは大文字小文字区別するんで
なかなかに面倒ですね。
もし万が一参考なんかにする事があったら、できるだけ実際には anim や attackなど
全て小文字で記述して下さい。
基本どちらでも良いのですが、Open BoR Statsなどで読み込むとき
コマンドの頭文字を大文字で記述していると認識されないことがあります。
スクリプトなんかを記述するときは大文字小文字区別するんで
なかなかに面倒ですね。
2021/03/14(日) 02:06:32.98ID:Xy6iR8cQ
counterrange {start} {end} {condition} {damage}
FollowAnim と一緒に使う事で少なくとも4種類の追加動作をすることが出来る。
以前は CounterFrame といって特定のFrameを指定する必要があったのが
{start} {end} とあるように範囲指定(0から99とか)できるようになったので、
CounterRange を記述したAnimが実行されている間にBboxに敵のAttackがヒットしたら
追加動作(Anim Follow1〜4)に処理を飛ばす事ができるようになった。
followanim {value}ここに1〜4の数値を指定して処理を飛ばす。
Blockもそうだったけど、Bboxを設定しておかない機能しない。
似たものに CounterAttack 1というのがあるが、これは自身のAttackコマンドのヒット判定が
敵の Attackで指定した範囲にも効果が及ぶというもの、いわゆる相打ちOKて感じ。
FollowAnim と一緒に使う事で少なくとも4種類の追加動作をすることが出来る。
以前は CounterFrame といって特定のFrameを指定する必要があったのが
{start} {end} とあるように範囲指定(0から99とか)できるようになったので、
CounterRange を記述したAnimが実行されている間にBboxに敵のAttackがヒットしたら
追加動作(Anim Follow1〜4)に処理を飛ばす事ができるようになった。
followanim {value}ここに1〜4の数値を指定して処理を飛ばす。
Blockもそうだったけど、Bboxを設定しておかない機能しない。
似たものに CounterAttack 1というのがあるが、これは自身のAttackコマンドのヒット判定が
敵の Attackで指定した範囲にも効果が及ぶというもの、いわゆる相打ちOKて感じ。
2021/03/15(月) 23:34:43.67ID:bg70rxpE
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
frame data/chars/karin/168.gif
Bindentityが少し成功の兆し、上のAnimはジャンプ中にレバー前入れ攻撃
Attackコマンドは記述してないので、今は格好だけですが
"test”という名前のEntity(MODELS.txtで設定したもの)を同時に表示するというもの。
それなら Custentity testでSpawnframe 2とかで十分でしょ?
一応それでも十分な効果は得られるんですが、
それだと親Entity(仮)168.gifが移動すると、子Entity(仮)"test"が置き去りにされて
なんか間抜けになってしまいます。
がBindentityを使えば親と一緒に子も動くのです。さらに機能として、向きの調整や
子Entityに複数にAnimを記述しておけば、親と同じAnimを実行させる事ができるのです。
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
frame data/chars/karin/168.gif
Bindentityが少し成功の兆し、上のAnimはジャンプ中にレバー前入れ攻撃
Attackコマンドは記述してないので、今は格好だけですが
"test”という名前のEntity(MODELS.txtで設定したもの)を同時に表示するというもの。
それなら Custentity testでSpawnframe 2とかで十分でしょ?
一応それでも十分な効果は得られるんですが、
それだと親Entity(仮)168.gifが移動すると、子Entity(仮)"test"が置き去りにされて
なんか間抜けになってしまいます。
がBindentityを使えば親と一緒に子も動くのです。さらに機能として、向きの調整や
子Entityに複数にAnimを記述しておけば、親と同じAnimを実行させる事ができるのです。
2021/03/15(月) 23:49:59.96ID:bg70rxpE
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など
設定しておけば、Target(親)がAnim Attackを実行したとき一緒に実行される、
一緒に実行できるAnimが無いと消滅(KillEntityされる)。この4の機能が面白いですね。
これが基本の書式ですが、貼り付ける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など
設定しておけば、Target(親)がAnim Attackを実行したとき一緒に実行される、
一緒に実行できるAnimが無いと消滅(KillEntityされる)。この4の機能が面白いですね。
2021/03/16(火) 00:31:34.32ID:t+wd47Is
>>49 のBlockに関連したコマンドとして
guardpoints {int} intというのは整数という事です。ここで設定した数値分ガード(ブロック)できる。
guardrate {int} 上の数値の回復レート、mpのように設定した数値ずつ回復します。
そしてGuardPointがBlockするたび減ってゆき0になると下のAnimが実行される事になります。
Anim guardbreak
Block系は結構いろいろ設定が可能なようで、
thold {int}これを0で設定するとほぼ全ての攻撃をブロックしたり、
逆に10など設定しておけば11以上の攻撃はガード不能になります。
似たものにblockpain {int}があって、ここで設定した数値ぶんBlockすると
Anim Blockpainに処理が移行する。
敵やNPC用に防御率を設定するコマンドもあり。nopassiveblock {bi} biというのは 0か1
この辺の設定をしっかりすれば、防御の駆け引きも作れそうですね。
guardpoints {int} intというのは整数という事です。ここで設定した数値分ガード(ブロック)できる。
guardrate {int} 上の数値の回復レート、mpのように設定した数値ずつ回復します。
そしてGuardPointがBlockするたび減ってゆき0になると下のAnimが実行される事になります。
Anim guardbreak
Block系は結構いろいろ設定が可能なようで、
thold {int}これを0で設定するとほぼ全ての攻撃をブロックしたり、
逆に10など設定しておけば11以上の攻撃はガード不能になります。
似たものにblockpain {int}があって、ここで設定した数値ぶんBlockすると
Anim Blockpainに処理が移行する。
敵やNPC用に防御率を設定するコマンドもあり。nopassiveblock {bi} biというのは 0か1
この辺の設定をしっかりすれば、防御の駆け引きも作れそうですね。
2021/03/16(火) 17:28:14.56ID:FVENZVHs
project fgcというmodが格闘ゲームのように奥行きの無い2D作品です。しゃがみ動作もできるようになっているので2D研究用にも良いかもしれない。ver1.4辺りが手に入りやすい。
2021/03/16(火) 23:36:37.91ID:t+wd47Is
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を使っても出来ることですが、力技で飛ばすのもたまには良いかも。
下の行のFrameはOpen BoRのお約束、基本的にコマンドには属するFrameが必要だから。
Attackコマンドの判定を消すには Attack 0という記述が必要です(もしくは別なAnimに移行する)が、これにも
Attack 0
Frame data/chars/test/empty.gif
といったように属するFrameが必要になります。
FollowCond 1
上の条件“同じAnim内のAttackがヒットするとAnim Follow1へ処理が飛ぶ”というものです。
@cmd changeentityproperty getlocalvar("self") "animation" openborconstant("ANI_FREESPECIAL1")
Frame data/chars/test/empty.gif
このコマンド文で強制的にFreeSpecial1に処理を飛ばすこともできます。
CounterRangeやCancelを使っても出来ることですが、力技で飛ばすのもたまには良いかも。
下の行のFrameはOpen BoRのお約束、基本的にコマンドには属するFrameが必要だから。
Attackコマンドの判定を消すには Attack 0という記述が必要です(もしくは別なAnimに移行する)が、これにも
Attack 0
Frame data/chars/test/empty.gif
といったように属するFrameが必要になります。
2021/03/16(火) 23:42:20.95ID:t+wd47Is
スクリプト系は大変便利なコマンドが多いのですが無言で落ちたりするので注意も必要です。
あとお約束として@cmd 以降はアルファベットの大文字小文字を区別するのでさらに注意です。
あとお約束として@cmd 以降はアルファベットの大文字小文字を区別するのでさらに注意です。
2021/03/17(水) 00:14:15.58ID:qqhuc2mx
なんだか色々偉そうに書き込んでますが、私は他人の作ったMODに
ぼくのかんがえたさいきょうのって感じで
無限などから拝借ゲフゴフしたプレイヤーキャラを登場させて悦に入る事しかできません。
まったくもってOpenBoRの仕様を理解しているわけではありません。
上の方のGuardPointsについてもAttaker側にGuardCostが必要だったり各コマンド実際には
さまざまな制限があります。
ですが、まああ、とりあえず弄って遊んでみましょう、時に新しいコマンドの使い方発見や
万が一MODなんか出来ちゃったら嬉しくない?というのが、私のやりたいことです。
スクリプトなんかについても他人のを勝手にコピペして動いた!ヤッター!程度のものです。
私が書き込んだのを信用してエラー落ち頻発で悶絶しても悪しからずでお願いいたします。
ぼくのかんがえたさいきょうのって感じで
無限などから拝借ゲフゴフしたプレイヤーキャラを登場させて悦に入る事しかできません。
まったくもってOpenBoRの仕様を理解しているわけではありません。
上の方のGuardPointsについてもAttaker側にGuardCostが必要だったり各コマンド実際には
さまざまな制限があります。
ですが、まああ、とりあえず弄って遊んでみましょう、時に新しいコマンドの使い方発見や
万が一MODなんか出来ちゃったら嬉しくない?というのが、私のやりたいことです。
スクリプトなんかについても他人のを勝手にコピペして動いた!ヤッター!程度のものです。
私が書き込んだのを信用してエラー落ち頻発で悶絶しても悪しからずでお願いいたします。
2021/03/17(水) 01:27:39.23ID:qqhuc2mx
頼みの綱 DCマニュアルには 操作ボタンの中で
Accepted action inputs are:
A: Attack button
A2: Attack button2
A3: Attack button3
A4: Attack button4
J: Jump button
S: Special attack button
K: Alternate special attack button
とありますが、
この一番下のKボタンてどこなんだろ?
Accepted action inputs are:
A: Attack button
A2: Attack button2
A3: Attack button3
A4: Attack button4
J: Jump button
S: Special attack button
K: Alternate special attack button
とありますが、
この一番下のKボタンてどこなんだろ?
2021/03/17(水) 01:36:13.25ID:qqhuc2mx
すぐ下にBlockのKだからSpecialと一緒、BはBackで使ってるし、
コマンド指定で混乱しないようにモッダーさんが自分で選んで使ってね
的なことが書いてありました。
ググル先生やディプル先生がいなかったら一生判らないですよ。
座標指定についてもXZA(Y)だったりXA(Y)Zだったり
微妙な違いがあって、悶絶案件は尽きないですね。
コマンド指定で混乱しないようにモッダーさんが自分で選んで使ってね
的なことが書いてありました。
ググル先生やディプル先生がいなかったら一生判らないですよ。
座標指定についてもXZA(Y)だったりXA(Y)Zだったり
微妙な違いがあって、悶絶案件は尽きないですね。
2021/03/19(金) 02:35:44.16ID:hdeOB3k/
Palette none
私にとって結構重要なコマンド
Open BoRでは基本システムで用意されたパレット(絵の具のパレットと同じような意味)を
使ってFrameで指定された画像が表示されるのですが、ご存知の通り画像にも色々な種類があって、
常に共通のパレットで画像が描かれると不都合(肌色が緑とか)が出てしまう訳です。
そこでPaletteコマンドを使い、専用のパレットを指定して画像を表示することになりますが、
結構面倒だったのが、モデルのヘッダーでPalette noneを宣言することによって、
次の最初のFrameのパレットを基準として、以降のFrameも描かれることになります。
他のEntityや多彩なFlash(ヒット演出)を使うとき便利です。
私にとって結構重要なコマンド
Open BoRでは基本システムで用意されたパレット(絵の具のパレットと同じような意味)を
使ってFrameで指定された画像が表示されるのですが、ご存知の通り画像にも色々な種類があって、
常に共通のパレットで画像が描かれると不都合(肌色が緑とか)が出てしまう訳です。
そこでPaletteコマンドを使い、専用のパレットを指定して画像を表示することになりますが、
結構面倒だったのが、モデルのヘッダーでPalette noneを宣言することによって、
次の最初のFrameのパレットを基準として、以降のFrameも描かれることになります。
他のEntityや多彩なFlash(ヒット演出)を使うとき便利です。
2021/03/20(土) 01:30:17.59ID:nx9KiXPx
com A2 freespecial
普通は上のように設定する事で A2を押すと Freespecialが発動します。
anim walk
cancel 0 99 0 A2 freespecial2
loop 1
delay 6
frame data/chars/test/test.gif
このように Anim WalkにCancel(3つ目の数値が0なのでA2押せばいつでも)を仕込む事で
Walkはレバーを入れている方向に歩くというAnimなので、
Comで設定してなくても実質 レバー入れA2 が成立し、
Freespacial2に処理が移行します。
Anim Runに入れれば レバーx2 A2が実質成立しますし、
Run Attackとの2択みたいなことも簡単にできますね。
普通は上のように設定する事で A2を押すと Freespecialが発動します。
anim walk
cancel 0 99 0 A2 freespecial2
loop 1
delay 6
frame data/chars/test/test.gif
このように Anim WalkにCancel(3つ目の数値が0なのでA2押せばいつでも)を仕込む事で
Walkはレバーを入れている方向に歩くというAnimなので、
Comで設定してなくても実質 レバー入れA2 が成立し、
Freespacial2に処理が移行します。
Anim Runに入れれば レバーx2 A2が実質成立しますし、
Run Attackとの2択みたいなことも簡単にできますね。
2021/03/20(土) 02:36:39.18ID:nx9KiXPx
grabin {type} {distance} つかみに関するもので格闘ゲームの吸い込みみたいな
forcedirection {dir} 相手を無理やり自分とは反対側に向かせたりする
damageonlanding {value} {type} 吹き飛ばし攻撃で地面にFallすると追加ダメージとか
dropv {height} {speedx} {speedz} 吹き飛ばし攻撃の高さや距離を、別ラインに強制移動させたり
nokill {bool} この攻撃ではHP1を残して生かしておく
stun {int} 設定した時間、硬直させる(Freezeみたいな)
seal {time} {energy} SpecialやFreespecialを設定した時間使用できなくする
forcemap {map} {time} 設定した時間強制的にmapのパレット色にする
noreflect {bi} Anim PainやAnim Fallに移行させずダメージを与える
jugglecost {int} 打ち上げ攻撃からの追撃(おてだま)回数管理
OTG {bi} Anim Fallずみの相手にもAttackをヒットさせたり
guardcost {int} Blockしてる相手のガード削り
DOT {Index} {Time} {Mode} {Force} {Rate} 設定した時間徐々にダメージを与える
staydown {rise} {riseattack} 強制的にダウンさせたままにする、起き上がり攻撃も遅らせる
これらは、基本Attackコマンドと一緒に使う事になります。
BurnやFreezeなど元々特殊な効能のあるAttackコマンドの派生とは別に、
特殊な状況を作り出すのに便利です。
forcedirection {dir} 相手を無理やり自分とは反対側に向かせたりする
damageonlanding {value} {type} 吹き飛ばし攻撃で地面にFallすると追加ダメージとか
dropv {height} {speedx} {speedz} 吹き飛ばし攻撃の高さや距離を、別ラインに強制移動させたり
nokill {bool} この攻撃ではHP1を残して生かしておく
stun {int} 設定した時間、硬直させる(Freezeみたいな)
seal {time} {energy} SpecialやFreespecialを設定した時間使用できなくする
forcemap {map} {time} 設定した時間強制的にmapのパレット色にする
noreflect {bi} Anim PainやAnim Fallに移行させずダメージを与える
jugglecost {int} 打ち上げ攻撃からの追撃(おてだま)回数管理
OTG {bi} Anim Fallずみの相手にもAttackをヒットさせたり
guardcost {int} Blockしてる相手のガード削り
DOT {Index} {Time} {Mode} {Force} {Rate} 設定した時間徐々にダメージを与える
staydown {rise} {riseattack} 強制的にダウンさせたままにする、起き上がり攻撃も遅らせる
これらは、基本Attackコマンドと一緒に使う事になります。
BurnやFreezeなど元々特殊な効能のあるAttackコマンドの派生とは別に、
特殊な状況を作り出すのに便利です。
2021/03/20(土) 02:43:58.72ID:nx9KiXPx
例えば
Attack 0 0 50 50 0 1 0 0 0 0
dropv 4 1 0
こんな感じで設定すると、
Attackはダメージ0だけど吹き飛ばし効果あり
そしてDropvにより
吹き飛ばしの効果に上昇4横方向1奥行き0がプラスされます
いわゆる おてだま するとき便利ということになります
Attack 0 0 50 50 0 1 0 0 0 0
dropv 4 1 0
こんな感じで設定すると、
Attackはダメージ0だけど吹き飛ばし効果あり
そしてDropvにより
吹き飛ばしの効果に上昇4横方向1奥行き0がプラスされます
いわゆる おてだま するとき便利ということになります
2021/03/21(日) 02:32:40.10ID:xsxh/Aen
悶絶案件
Anim ChargeAttack(一定時間攻撃ボタンを押して、離すと発動)のタメ時間を設定する
ChargeTime これは、Anim ChargeAttackの中に記述しないと(例えばヘッダーとか)
落ちます、エラーログに原因が出力されずに。
マニュアルをちゃんと読めば何処で宣言すべきか書いてはあるんですが、
他のコマンドでは間違った場所でも特にエラーも出ず、無視されることが多いのに、
上のようにエラー出力せず無言落ちするものも一部ではあるので、油断できません。
ChargeAttack自体使い辛い(特にボタンを押してタメてるとか表示されない)ので、
滅多に使わないんですけどね、専用FXの設定とかあれば良いのですが。
逆にそういうのがエラー原因だとなかなか特定できなくて悶絶。
Anim ChargeAttack(一定時間攻撃ボタンを押して、離すと発動)のタメ時間を設定する
ChargeTime これは、Anim ChargeAttackの中に記述しないと(例えばヘッダーとか)
落ちます、エラーログに原因が出力されずに。
マニュアルをちゃんと読めば何処で宣言すべきか書いてはあるんですが、
他のコマンドでは間違った場所でも特にエラーも出ず、無視されることが多いのに、
上のようにエラー出力せず無言落ちするものも一部ではあるので、油断できません。
ChargeAttack自体使い辛い(特にボタンを押してタメてるとか表示されない)ので、
滅多に使わないんですけどね、専用FXの設定とかあれば良いのですが。
逆にそういうのがエラー原因だとなかなか特定できなくて悶絶。
2021/03/30(火) 01:38:56.46ID:1gbSxSh3
Anim Throw
なにげに Anim Grabからの派生だと思ってしまうかもしれませんが
単体(Anim Grabが無くても)で使用可能です。
Entityのヘッダーなどで設定(宣言)した GrabDistanceの距離に近づくと勝手に投げます。
ダメージもThrowDamegeで設定できます。
手数が増えますね。
なにげに Anim Grabからの派生だと思ってしまうかもしれませんが
単体(Anim Grabが無くても)で使用可能です。
Entityのヘッダーなどで設定(宣言)した GrabDistanceの距離に近づくと勝手に投げます。
ダメージもThrowDamegeで設定できます。
手数が増えますね。
2021/03/30(火) 02:02:18.70ID:1gbSxSh3
それならAnim Grabに攻撃コマンドを設定したら?
Anim Grabの最後のFrameで一旦停止して入力待ちになってしまいます。
なので、上の直接Throwは実際には手数少なくなります。
OpenBoR のシステム上、Anim Grabからの派生 GrabUp、 Grab Down、 GrabForward
さらにそこからのAttack3や各Grabの2への合計6回分の攻撃が使えなくなるためです。
しかし、Anim Grabからの一時停止によるテンポの悪さは無くなるので、
いきなりThrowは、そこまで悪手でもないのかなと個人的には思います。
Anim Grabの最後のFrameで一旦停止して入力待ちになってしまいます。
なので、上の直接Throwは実際には手数少なくなります。
OpenBoR のシステム上、Anim Grabからの派生 GrabUp、 Grab Down、 GrabForward
さらにそこからのAttack3や各Grabの2への合計6回分の攻撃が使えなくなるためです。
しかし、Anim Grabからの一時停止によるテンポの悪さは無くなるので、
いきなりThrowは、そこまで悪手でもないのかなと個人的には思います。
2021/03/30(火) 10:33:03.24ID:1gbSxSh3
訂正 ThrowDamege X ThrowDamage O
Grabに関して、6回分の攻撃?
ThrowやAttack3(GrabAttackなどの3撃目)を出さなければ、
掴み抵抗など何も設定してない敵に、
2系(GrabUp2などの2系はGrabから3撃目のフィニッシュ攻撃)までAnimを用意してあると、
連打せずポチ・ポチとボタンを押す事で各方向2回ずつ攻撃できる(GrabUp・GrabDown・GrabForward分)ので
掴んだらやりたい放題になります。
ムゲンからのキャラ流用なんかだとモーションが余る事が多いので、
派生技が多くなるのは便利です。
Grabに関して、6回分の攻撃?
ThrowやAttack3(GrabAttackなどの3撃目)を出さなければ、
掴み抵抗など何も設定してない敵に、
2系(GrabUp2などの2系はGrabから3撃目のフィニッシュ攻撃)までAnimを用意してあると、
連打せずポチ・ポチとボタンを押す事で各方向2回ずつ攻撃できる(GrabUp・GrabDown・GrabForward分)ので
掴んだらやりたい放題になります。
ムゲンからのキャラ流用なんかだとモーションが余る事が多いので、
派生技が多くなるのは便利です。
2021/04/05(月) 10:33:40.89ID:JCfKgngn
ロケットヴァイパーのシステムや敵をまるごと流用してるのに作りが雑なbriga de rua(英訳street fight)
キャラクター作りに愛が無い感じで正直微妙な出来
スクリプトの内用を理解しつつ改変してるようなので
それなりの技術力はありそうなのにゲームバランスやキャラの作り込みが
今一なんでなんとも勿体無い
ただわかる範囲では3まで作られているんで力尽きてるようでもなさそう
作者さんは飽きっぽい方なのかな
キャラクター作りに愛が無い感じで正直微妙な出来
スクリプトの内用を理解しつつ改変してるようなので
それなりの技術力はありそうなのにゲームバランスやキャラの作り込みが
今一なんでなんとも勿体無い
ただわかる範囲では3まで作られているんで力尽きてるようでもなさそう
作者さんは飽きっぽい方なのかな
2021/04/06(火) 01:42:29.99ID:XHHis+ii
Anim Follow#に処理を飛ばせる Followanim#これは
Grabの派生攻撃であっても記述すれば効果あるので
anim grabdown
delay 8
hitflash Flash2
hitfx data/sounds/beat4.wav
frame data/chars/test/ga1.gif
followcond 1
followanim 4
attack 92 114 28 39 13 1 1 0 10
frame data/chars/test/ga2.gif
こんな感じで組み込み、Follow4なんかには
よく使う攻撃なんか設定しておけば、その他のAnimとも共用できるので
便利に使えます。
一回しか使わないなら、そのまま記述しても良いのですけどね。
Grabの派生攻撃であっても記述すれば効果あるので
anim grabdown
delay 8
hitflash Flash2
hitfx data/sounds/beat4.wav
frame data/chars/test/ga1.gif
followcond 1
followanim 4
attack 92 114 28 39 13 1 1 0 10
frame data/chars/test/ga2.gif
こんな感じで組み込み、Follow4なんかには
よく使う攻撃なんか設定しておけば、その他のAnimとも共用できるので
便利に使えます。
一回しか使わないなら、そのまま記述しても良いのですけどね。
2021/04/08(木) 01:35:22.90ID:91QCSGqP
いろいろなMODを楽しんでいると、いつものメニュー画面とは違ったものに出会う事もあるかと思います。
基本OpenBoRではDATAフォルダの中を読み込んで、各種メニューやセレクトシーンなどに移行するのですが
(level.txtだったりBGSフォルダの中だったり)。
DATAフォルダ直下にScript.txtが用意してあって中に、alwaysupdate 1などと記述してある場合
DATA/SCRIPTSフォルダ内にある Updated.cが優先して読み込まれ中に記述されてるスクリプトが実行されます。
MOD内で普遍的に使用されるスクリプトもここで定義されている事が多いので、
まずはここを探してみるのも良いかもしれません。
基本OpenBoRではDATAフォルダの中を読み込んで、各種メニューやセレクトシーンなどに移行するのですが
(level.txtだったりBGSフォルダの中だったり)。
DATAフォルダ直下にScript.txtが用意してあって中に、alwaysupdate 1などと記述してある場合
DATA/SCRIPTSフォルダ内にある Updated.cが優先して読み込まれ中に記述されてるスクリプトが実行されます。
MOD内で普遍的に使用されるスクリプトもここで定義されている事が多いので、
まずはここを探してみるのも良いかもしれません。
2021/04/08(木) 02:02:29.42ID:91QCSGqP
訂正 level.txt → levels.txt
updated.c に関しては update.c(公式ではこっち)ですが、どちらも優先して読み込まれるようです。
こちらのスクリプトに記述するメリットは、オープニングメニューを派手にしたり、
その場でゲーム難易度などを変更可能にしたり、キャラにレベルアップの要素を仕込むときや
拡大縮小、ゲームの演出上の一時停止を組み込んだりなど、基本システムへの介入を可能にする事でしょうか。
各キャラ(Entity)に一つずつスクリプトを記述する手間が省ける(setglobalvarなどで変数を渡すだけで色々処理できる)
ような感じでしょうか。可能性は無限大になりますが、作る側に立つと脳天炸裂案件ですね。
updated.c に関しては update.c(公式ではこっち)ですが、どちらも優先して読み込まれるようです。
こちらのスクリプトに記述するメリットは、オープニングメニューを派手にしたり、
その場でゲーム難易度などを変更可能にしたり、キャラにレベルアップの要素を仕込むときや
拡大縮小、ゲームの演出上の一時停止を組み込んだりなど、基本システムへの介入を可能にする事でしょうか。
各キャラ(Entity)に一つずつスクリプトを記述する手間が省ける(setglobalvarなどで変数を渡すだけで色々処理できる)
ような感じでしょうか。可能性は無限大になりますが、作る側に立つと脳天炸裂案件ですね。
2021/04/09(金) 17:18:04.09ID:ncGtWkZW
開発中断か別なプロジェクト名に変わったのかも知れない
Demon Sluga 思い切りスクリプト使って
拡大縮小、キャラクターを飛ばしたり奥や手前から敵が出現したり、誘導弾を弾き返したり
全盛期のアーケードゲーム風に作られてます
手に入るヴァージョンによってかも知れませんが海外の環境依存文字を使っているため
一部手直ししないとステージ1すら始まりません
見るべきところは
models.txt
data/misc
data/misc/plane
この辺りの pu・i.txtやpu・d.txt、pu・.gif、
それらを呼び出すplaneb2.txtなどに関連するファイルの手直しになります
Demon Sluga 思い切りスクリプト使って
拡大縮小、キャラクターを飛ばしたり奥や手前から敵が出現したり、誘導弾を弾き返したり
全盛期のアーケードゲーム風に作られてます
手に入るヴァージョンによってかも知れませんが海外の環境依存文字を使っているため
一部手直ししないとステージ1すら始まりません
見るべきところは
models.txt
data/misc
data/misc/plane
この辺りの pu・i.txtやpu・d.txt、pu・.gif、
それらを呼び出すplaneb2.txtなどに関連するファイルの手直しになります
2021/04/09(金) 17:33:36.00ID:ncGtWkZW
幼少の頃ゲームセンターで見た
ノリマロが大活躍するRescue Command remake
敵はオンナサンばかり
面白いのは 掴まれた時のレバガチャ要素
抜け出せないとダメージはもちろん、別なイベントに移行したりと
有効に使われてます。
ゲームバランス的に敵の攻撃力が高いのであれなら
defense all 0.1などモデルのヘッダーに記述して調整しましょう
ノリマロが大活躍するRescue Command remake
敵はオンナサンばかり
面白いのは 掴まれた時のレバガチャ要素
抜け出せないとダメージはもちろん、別なイベントに移行したりと
有効に使われてます。
ゲームバランス的に敵の攻撃力が高いのであれなら
defense all 0.1などモデルのヘッダーに記述して調整しましょう
2021/04/10(土) 10:53:12.10ID:36EPLB+j
anim idle
loop 1
delay 22
offset 23 102
bbox 13 5 22 100
drawmethod shiftx 0
frame data/chars/ciel/std1.gif
drawmethod shiftx 0.02
frame data/chars/ciel/std1.gif
drawmethod shiftx 0
frame data/chars/ciel/std1.gif
drawmethod shiftx -0.02
frame data/chars/ciel/std1.gif
アニーメーションさせるなんて絵描けないしって方は上のようにすると
一枚の元絵が左右にゆらゆらします。
drawmethod shiftx 0 数値の0は何もしない、
+−の数値を入れる事で数値分元絵が変形します。
他に Scale 大きさ Rotate 回転など様々なオプションあり。
loop 1
delay 22
offset 23 102
bbox 13 5 22 100
drawmethod shiftx 0
frame data/chars/ciel/std1.gif
drawmethod shiftx 0.02
frame data/chars/ciel/std1.gif
drawmethod shiftx 0
frame data/chars/ciel/std1.gif
drawmethod shiftx -0.02
frame data/chars/ciel/std1.gif
アニーメーションさせるなんて絵描けないしって方は上のようにすると
一枚の元絵が左右にゆらゆらします。
drawmethod shiftx 0 数値の0は何もしない、
+−の数値を入れる事で数値分元絵が変形します。
他に Scale 大きさ Rotate 回転など様々なオプションあり。
2021/04/11(日) 00:13:20.60ID:9LUoOlWn
以前にCancelで気軽にダブルジャンプと書きましたが
anim jump
loop 0
cancel 1 9 0 j freespecial3
landframe 3
offset 33 121
delay 16
bbox 19 5 31 73
frame data/chars/ciel/jmp1.gif
frame data/chars/ciel/jmp2.gif
frame data/chars/ciel/jmp3.gif
delay 12
frame data/chars/ciel/jmp4.gif
anim freespecial3
jumpframe 1 2 1
landframe 3
offset 33 121
delay 16
bbox 19 5 31 73
frame data/chars/ciel/jmp1.gif
frame data/chars/ciel/jmp2.gif
frame data/chars/ciel/jmp3.gif
delay 12
frame data/chars/ciel/jmp4.gif
具体的にはこんな感じ
anim jump
loop 0
cancel 1 9 0 j freespecial3
landframe 3
offset 33 121
delay 16
bbox 19 5 31 73
frame data/chars/ciel/jmp1.gif
frame data/chars/ciel/jmp2.gif
frame data/chars/ciel/jmp3.gif
delay 12
frame data/chars/ciel/jmp4.gif
anim freespecial3
jumpframe 1 2 1
landframe 3
offset 33 121
delay 16
bbox 19 5 31 73
frame data/chars/ciel/jmp1.gif
frame data/chars/ciel/jmp2.gif
frame data/chars/ciel/jmp3.gif
delay 12
frame data/chars/ciel/jmp4.gif
具体的にはこんな感じ
2021/04/11(日) 00:19:43.51ID:9LUoOlWn
上の例では見たとおりAnimの表題だけ変えて中身はほぼ一緒
anim jumpland
loop 0
cancel 2 9 0 a freespecial2
delay 9
offset 33 72
frame data/chars/ciel/jmp5.gif
frame data/chars/ciel/jmp5.gif
frame data/chars/ciel/jmp5.gif
これはジャンプの着地に攻撃(A)ボタンを押しておくとFreespecial2発動
Anim Landなんかに同じような記述しておけば、投げられ受身に
反応してFreespecialを発動なんてことも自由です。
anim jumpland
loop 0
cancel 2 9 0 a freespecial2
delay 9
offset 33 72
frame data/chars/ciel/jmp5.gif
frame data/chars/ciel/jmp5.gif
frame data/chars/ciel/jmp5.gif
これはジャンプの着地に攻撃(A)ボタンを押しておくとFreespecial2発動
Anim Landなんかに同じような記述しておけば、投げられ受身に
反応してFreespecialを発動なんてことも自由です。
2021/04/11(日) 00:32:07.96ID:9LUoOlWn
cancel 2 9 0 a freespecial2
この記述だと Frameの2〜9の間に Attackコマンドの有無に関係なく(0)
aボタンが押されたら FreeSpecial2を実行
え?例ではFrameコマンド3つしか無いけど?
スタートフレーム(2)は大事ですが終了フレーム(9)に関しては多すぎても
特にエラーにはならないようです。
3フレームで入力なんてきついなー、Delay 9となっているのでFrameコマンド
1つにつき100分の9秒あるんで、格闘ゲームみたいに忙しくなることはありません。
この記述だと Frameの2〜9の間に Attackコマンドの有無に関係なく(0)
aボタンが押されたら FreeSpecial2を実行
え?例ではFrameコマンド3つしか無いけど?
スタートフレーム(2)は大事ですが終了フレーム(9)に関しては多すぎても
特にエラーにはならないようです。
3フレームで入力なんてきついなー、Delay 9となっているのでFrameコマンド
1つにつき100分の9秒あるんで、格闘ゲームみたいに忙しくなることはありません。
2021/04/11(日) 00:41:33.67ID:9LUoOlWn
訂正 3フレームで入力 → 1フレーム
Frameの数え方なんですが、コマンドでフレーム数を数える場合
どうも1番目は 0と数えるようです。
なのでFrameコマンドは 0,1,2の3フレーム
Cancel コマンドの記述は 2、9とありますが9フレーム目なんてないので
Cancel コマンドの判定は 2フレーム(3番目)の一つのみになります。
このFrame数を数えるのが以外に面倒で、Cancelコマンドなどは特に問題にならないのですが
LandFrameやThrowFrameなど間違えるとゲームが遅延したりすることもあるので注意です。
Frameの数え方なんですが、コマンドでフレーム数を数える場合
どうも1番目は 0と数えるようです。
なのでFrameコマンドは 0,1,2の3フレーム
Cancel コマンドの記述は 2、9とありますが9フレーム目なんてないので
Cancel コマンドの判定は 2フレーム(3番目)の一つのみになります。
このFrame数を数えるのが以外に面倒で、Cancelコマンドなどは特に問題にならないのですが
LandFrameやThrowFrameなど間違えるとゲームが遅延したりすることもあるので注意です。
2021/04/12(月) 01:07:22.51ID:rapSeOc5
スクリプトを無理やりねじ込む
didhitscript @script
void main() {
void self = getlocalvar("self");
void tar = getlocalvar("damagetaker");
void anims = getentityproperty(self,"animationid");
if(tar != NULL()) {
if ( anims == openborconstant("ANI_ATTACK3")
||anims == openborconstant("ANI_FREESPECIAL5")
||anims == openborconstant("ANI_FREESPECIAL6")
||anims == openborconstant("ANI_FREESPECIAL7"))
{
tossentity(tar, 4, -1, 0);
}
}
}
@end_script
普通はSCRIPTSフォルダに〜.cな感じで入れておくのですが、
特定のEntityでしか使わない時には、
ヘッダーに上記のようにスクリプトを直接記述するという手もあります。
Didhitscript というのは、こちらの攻撃がヒットした際に参照されるScriptで
この辺はOpenBoR側で規則が設定されているので、他人の使い方を参考にしたり
DCマニュアルを読み込むしかないですね。
didhitscript @script
void main() {
void self = getlocalvar("self");
void tar = getlocalvar("damagetaker");
void anims = getentityproperty(self,"animationid");
if(tar != NULL()) {
if ( anims == openborconstant("ANI_ATTACK3")
||anims == openborconstant("ANI_FREESPECIAL5")
||anims == openborconstant("ANI_FREESPECIAL6")
||anims == openborconstant("ANI_FREESPECIAL7"))
{
tossentity(tar, 4, -1, 0);
}
}
}
@end_script
普通はSCRIPTSフォルダに〜.cな感じで入れておくのですが、
特定のEntityでしか使わない時には、
ヘッダーに上記のようにスクリプトを直接記述するという手もあります。
Didhitscript というのは、こちらの攻撃がヒットした際に参照されるScriptで
この辺はOpenBoR側で規則が設定されているので、他人の使い方を参考にしたり
DCマニュアルを読み込むしかないですね。
2021/04/12(月) 01:15:42.00ID:rapSeOc5
上の例では、Void Main(){ }となっています。これは攻撃ヒット判定が行われるたび
毎回参照されるという意味になります。
C言語準拠の記述になるので、この辺の記述や演算子については、
適当にC言語 演算子などで検索してみてください。
で、内容としては、何らかのターゲットに特定(Attack3やFreespecial#)の攻撃がヒットしたら
いつもより大きく吹き飛ばします(TossEntity)。
それぞれのAttackコマンドにDropvなど設定すれば同じ効果は得られますが、
このスクリプトを使う事でAnim単位で動作を変化させる事ができるのがメリット。
毎回参照されるという意味になります。
C言語準拠の記述になるので、この辺の記述や演算子については、
適当にC言語 演算子などで検索してみてください。
で、内容としては、何らかのターゲットに特定(Attack3やFreespecial#)の攻撃がヒットしたら
いつもより大きく吹き飛ばします(TossEntity)。
それぞれのAttackコマンドにDropvなど設定すれば同じ効果は得られますが、
このスクリプトを使う事でAnim単位で動作を変化させる事ができるのがメリット。
2021/04/13(火) 00:39:56.52ID:r7OWv6Qx
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");
int iR = rand()%10 + 10;
if (iR >= 0 && iR < 4){
vName = "roxi";
} else if (iR >= 4 && iR < 8) {
vName = "Yanyu";
} else if (iR >= 8 && iR < 12) {
vName = "Sakura";
} else if (iR >= 12 && iR < 16) {
vName = "Spiral";
} else {
vName = "Heiderna";
}
clearspawnentry();
setspawnentry("name", vName);
if (iDirection == 0) { fX = -fX; }
fX = fX +getentityproperty(self, "x");
fY = fY +getentityproperty(self, "a");
fZ = fZ +getentityproperty(self, "z");
vSpawn = spawn();
changeentityproperty(vSpawn, "position", fX, fZ, fY);
changeentityproperty(vSpawn, "maxhealth", iMHealth);
changeentityproperty(vSpawn, "health", iHealth);
changeentityproperty(vSpawn, "direction", iDirection);
}
{
void self = getlocalvar("self");
void vSpawn, vName;
int iMHealth = getentityproperty(self,"maxhealth");
int iHealth = getentityproperty(self,"health");
int iDirection = getentityproperty(self, "direction");
int iR = rand()%10 + 10;
if (iR >= 0 && iR < 4){
vName = "roxi";
} else if (iR >= 4 && iR < 8) {
vName = "Yanyu";
} else if (iR >= 8 && iR < 12) {
vName = "Sakura";
} else if (iR >= 12 && iR < 16) {
vName = "Spiral";
} else {
vName = "Heiderna";
}
clearspawnentry();
setspawnentry("name", vName);
if (iDirection == 0) { fX = -fX; }
fX = fX +getentityproperty(self, "x");
fY = fY +getentityproperty(self, "a");
fZ = fZ +getentityproperty(self, "z");
vSpawn = spawn();
changeentityproperty(vSpawn, "position", fX, fZ, fY);
changeentityproperty(vSpawn, "maxhealth", iMHealth);
changeentityproperty(vSpawn, "health", iHealth);
changeentityproperty(vSpawn, "direction", iDirection);
}
2021/04/13(火) 00:46:02.19ID:r7OWv6Qx
上のスクリプトは、vName="Spiral"や"Sakura"など5種類の敵(Entity)を
ランダムに出現させるものです。
changeentityproperty(vSpawn, "maxhealth", iMHealth); 最大HP
changeentityproperty(vSpawn, "health", iHealth); 現在HP
changeentityproperty(vSpawn, "direction", iDirection); 向き
この辺は好みでランダム(rand()%200+ 50)とか設定しても良いでしょう。
ランダムに出現させるものです。
changeentityproperty(vSpawn, "maxhealth", iMHealth); 最大HP
changeentityproperty(vSpawn, "health", iHealth); 現在HP
changeentityproperty(vSpawn, "direction", iDirection); 向き
この辺は好みでランダム(rand()%200+ 50)とか設定しても良いでしょう。
2021/04/13(火) 00:50:45.59ID:r7OWv6Qx
name REnemy
type Enemy
health 100
nomove 1 1
nodrop 2
lifespan 1
defense all 1.0
offense all 1.0
animationscript data/scripts/REnemy.c
load roxy
load Yanyu
load Heiderna
load Sakura
load Spiral
anim spawn
delay 10
offset 1 1
frame data/chars/misc/empty.gif
@cmd EnemySpawn 0 0 0
frame data/chars/misc/empty.gif
anim idle
delay 100
offset 1 1
frame data/chars/misc/empty.gif
これをMODELS.TXTにEntityとして設定します。
spawn REnemy
alias Island_Guard
map 1
coords 500 270
at 3200
そして好きなLevelのテキスト内に上のように記述すれば、そのポイント到達するたび
設定したランダムな敵(Entity)が出現するわけです。
type Enemy
health 100
nomove 1 1
nodrop 2
lifespan 1
defense all 1.0
offense all 1.0
animationscript data/scripts/REnemy.c
load roxy
load Yanyu
load Heiderna
load Sakura
load Spiral
anim spawn
delay 10
offset 1 1
frame data/chars/misc/empty.gif
@cmd EnemySpawn 0 0 0
frame data/chars/misc/empty.gif
anim idle
delay 100
offset 1 1
frame data/chars/misc/empty.gif
これをMODELS.TXTにEntityとして設定します。
spawn REnemy
alias Island_Guard
map 1
coords 500 270
at 3200
そして好きなLevelのテキスト内に上のように記述すれば、そのポイント到達するたび
設定したランダムな敵(Entity)が出現するわけです。
2021/04/13(火) 00:57:10.12ID:r7OWv6Qx
ステージを作ってるとどうしても内容を覚えてしまったりで、
だんだんテストプレイも飽きてきますので、ちょっとした気分転換になるかな?
敵を増やしたとき、スクリプト側とモデル側を少し書き換えるだけで登場させられるので
少しだけ手間が減らせるかなと思います。
もちろんEntityでさえあれば良いので、登場させるのはNPCだってITEMだって良いわけです。
だんだんテストプレイも飽きてきますので、ちょっとした気分転換になるかな?
敵を増やしたとき、スクリプト側とモデル側を少し書き換えるだけで登場させられるので
少しだけ手間が減らせるかなと思います。
もちろんEntityでさえあれば良いので、登場させるのはNPCだってITEMだって良いわけです。
2021/04/13(火) 01:17:53.40ID:r7OWv6Qx
@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
なんてすれば、敵が3人ずつ登場します。
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
なんてすれば、敵が3人ずつ登場します。
2021/04/13(火) 01:36:45.64ID:r7OWv6Qx
Anim Blockを設定してしまうと、Special用のボタンを押すたびAnim Blockが実行されてしまい
Specialは標準攻撃(A)とジャンプ(J)の同時押しで発動ということになります。
Anim Blockに攻撃モーションを設定したり、Anim BlockPainに攻撃を設定したりすれば
攻撃にもカウンターにも使えるので、想像力次第でいかようにも使えるのですが。
OpenBoR側でもともと設定された機能としてSpecialだと攻撃を受けたり、掴み攻撃を受けたり
そんなときも1ボタンでSpecial発動できるメリットもあるわけです。
そんなとき意外と忘れられがちなSpecial2(レバー入れスペシャル)にガードポーズを組み込み
FollowAnim#などで反撃モーションなど入れておけば、1ボタンでスペシャルの利便性を残しつつ
ガードも可能になります。もっと忘れられがちなのがジャンプ中にSpecialのJumpSpecial
もともとジャンプには垂直(JumpAttack)レバー上ジャンプ攻撃(Anim JumpAttack3)
レバー下入れ(Anim JumpAttack2)前方ジャンプ攻撃(JumpForward、ForwardJumpと紛らわしい)に
Anim RunJumpAttackと多彩な動作が可能なので、あまりJumpSpecialを使う機会は無いのですが。
ついでにコマンド設定 Com D F A Freespecial2などで、
Com B B A Freespecial なんてすると、レバー入力的には ← → Aという事になります。
Specialは標準攻撃(A)とジャンプ(J)の同時押しで発動ということになります。
Anim Blockに攻撃モーションを設定したり、Anim BlockPainに攻撃を設定したりすれば
攻撃にもカウンターにも使えるので、想像力次第でいかようにも使えるのですが。
OpenBoR側でもともと設定された機能としてSpecialだと攻撃を受けたり、掴み攻撃を受けたり
そんなときも1ボタンでSpecial発動できるメリットもあるわけです。
そんなとき意外と忘れられがちなSpecial2(レバー入れスペシャル)にガードポーズを組み込み
FollowAnim#などで反撃モーションなど入れておけば、1ボタンでスペシャルの利便性を残しつつ
ガードも可能になります。もっと忘れられがちなのがジャンプ中にSpecialのJumpSpecial
もともとジャンプには垂直(JumpAttack)レバー上ジャンプ攻撃(Anim JumpAttack3)
レバー下入れ(Anim JumpAttack2)前方ジャンプ攻撃(JumpForward、ForwardJumpと紛らわしい)に
Anim RunJumpAttackと多彩な動作が可能なので、あまりJumpSpecialを使う機会は無いのですが。
ついでにコマンド設定 Com D F A Freespecial2などで、
Com B B A Freespecial なんてすると、レバー入力的には ← → Aという事になります。
2021/04/13(火) 18:04:23.86ID:pM+4VIKL
一番出し辛い攻撃はRunSlideだと思う
Run→→中に↓ジャンプ、自然な動作としては
スライディングかなあ
OpenBoRに最初から設定されているAnimは
大概過去に存在したゲームからヒントを得ているぽいね
Run→→中に↓ジャンプ、自然な動作としては
スライディングかなあ
OpenBoRに最初から設定されているAnimは
大概過去に存在したゲームからヒントを得ているぽいね
2021/04/14(水) 00:12:02.00ID:Bl01iZfT
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"));
}
@end_script
例ではAnim Pain1(攻撃を受けた際のリアクション)
本来Attack2 なら Pain2…Attack4 → Pain4 など対応するAnimは固定されいてる(と思う)。
changeentityproperty(を使って強制的に別なAnim を実行させてみる。
まあ気分転換くらいなものですが、攻撃のリアクションを一つ一つ設定するのって
コピペで良いとはいえ結構労力つかうんで。
@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"));
}
@end_script
例ではAnim Pain1(攻撃を受けた際のリアクション)
本来Attack2 なら Pain2…Attack4 → Pain4 など対応するAnimは固定されいてる(と思う)。
changeentityproperty(を使って強制的に別なAnim を実行させてみる。
まあ気分転換くらいなものですが、攻撃のリアクションを一つ一つ設定するのって
コピペで良いとはいえ結構労力つかうんで。
レスを投稿する
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★2 [Hitzeschleier★]
- 【北京中継】「日本国民はとても友好的」日本訪問予定の中国人は冷静な反応…中国側報道「高市首相は辞任すべき」 [煮卵★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」 [Anonymous★]
- 中国の複数の旅行社、日本ツアーを中止 政府の訪日自粛要請受け [蚤の市★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★2 [冬月記者★]
- 「台湾も迷惑だと言っている」フジ「ホンマでっか」出演の早大名誉教授が高市首相発言に「日本はやばいことに」 [muffin★]
- 日本人「戦争戦争!銃の撃ち合いでカッコいいぞ!」中国「高市さあ、対日禁輸だけすればわざわざ戦わなくてもこっちの勝ちだぞ?」 [517791167]
- 【悲報】中国人観光客、絶滅へ。中国旅行会社が日本旅行販売停止。中国人はもう二度と遊びに来れません😤高市どーすんのこれ [856698234]
- 【中国】日本向けツアー中止、邦画公開延期。ジャップが中国叩きをしてる間に続々と大きな制裁に向けて動きが加速www [305926466]
- 【実況】博衣こよりのえちえち雀魂1位耐久🧪
- 【悲報】中国「高市は信用できない」G20サミットでの会談予定なし [834922174]
- 【オワタ】中国外務省「李強首相がG20会合中に日本の指導者と会談する予定はない」と発言 [812874503]
