☆ベルトアクション作成 Beats of rageスレッド☆ (656レス)
上下前次1-新
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
followcond 1
followanim 4
attack 92 114 28 39 13 1 1 0 10
省5
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すら始まりません
見るべきところは
models.txt
data/misc
data/misc/plane
省2
75: 2021/04/09(金)17:33 ID:ncGtWkZW(2/2) AAS
幼少の頃ゲームセンターで見た
ノリマロが大活躍するRescue Command remake
敵はオンナサンばかり
面白いのは 掴まれた時のレバガチャ要素
抜け出せないとダメージはもちろん、別なイベントに移行したりと
有効に使われてます。
ゲームバランス的に敵の攻撃力が高いのであれなら
defense all 0.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
drawmethod shiftx 0.02
frame data/chars/ciel/std1.gif
drawmethod shiftx 0
省8
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
bbox 19 5 31 73
frame data/chars/ciel/jmp1.gif
frame data/chars/ciel/jmp2.gif
省15
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
frame data/chars/ciel/jmp5.gif
frame data/chars/ciel/jmp5.gif
これはジャンプの着地に攻撃(A)ボタンを押しておくとFreespecial2発動
省2
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つにつき100分の9秒あるんで、格闘ゲームみたいに忙しくなることはありません。
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コマンドなどは特に問題にならないのですが
LandFrameやThrowFrameなど間違えるとゲームが遅延したりすることもあるので注意です。
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()) {
if ( anims == openborconstant("ANI_ATTACK3")
||anims == openborconstant("ANI_FREESPECIAL5")
||anims == openborconstant("ANI_FREESPECIAL6")
省13
82: 2021/04/12(月)01:15 ID:rapSeOc5(2/2) AAS
上の例では、Void Main(){ }となっています。これは攻撃ヒット判定が行われるたび
毎回参照されるという意味になります。
C言語準拠の記述になるので、この辺の記述や演算子については、
適当にC言語 演算子などで検索してみてください。
で、内容としては、何らかのターゲットに特定(Attack3やFreespecial#)の攻撃がヒットしたら
いつもより大きく吹き飛ばします(TossEntity)。
それぞれのAttackコマンドにDropvなど設定すれば同じ効果は得られますが、
このスクリプトを使う事でAnim単位で動作を変化させる事ができるのがメリット。
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");
int iR = rand()%10 + 10;
if (iR >= 0 && iR < 4){
vName = "roxi";
省21
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
offense all 1.0
animationscript data/scripts/REnemy.c
load roxy
省22
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
なんてすれば、敵が3人ずつ登場します。
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(レバー入れスペシャル)にガードポーズを組み込み
FollowAnim#などで反撃モーションなど入れておけば、1ボタンでスペシャルの利便性を残しつつ
ガードも可能になります。もっと忘れられがちなのがジャンプ中にSpecialのJumpSpecial
もともとジャンプには垂直(JumpAttack)レバー上ジャンプ攻撃(Anim JumpAttack3)
省4
89: 2021/04/13(火)18:04 ID:pM+4VIKL(1) AAS
一番出し辛い攻撃はRunSlideだと思う
Run→→中に↓ジャンプ、自然な動作としては
スライディングかなあ
OpenBoRに最初から設定されているAnimは
大概過去に存在したゲームからヒントを得ているぽいね
上下前次1-新書関写板覧索設栞歴
あと 567 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s