☆ベルトアクション作成 Beats of rageスレッド☆

1名前は開発中のものです。
垢版 |
2019/01/14(月) 03:57:54.21ID:BfjgfhbB
フリーのベルトアクション作成ツールBeatsofrageでオリジナルの
ベルトアクションを製作するスレッドです。
http://ime.nu/senileteam.segaforums.com/

なかったので立て直しました
2022/04/07(木) 21:23:18.45ID:RWamgL6H
drawmethod rotate #とfliprotate 1はよく使ってます。
前者は好きな角度に回転させるのと、後者は対象のentiryの向きに合わせて
自動で反転してくれるというもの。
shiftx #にも自動反転があればもっと便利になるのですが、
中々難しいものです。
2022/04/08(金) 01:33:24.24ID:W27/nC7P
>>304 のChangeEntityPropertyでTypeやHostileを変更するを利用して
キャラ(Entity)がKnockdownCountで転ぶ(Fall)度に
敵になったり味方になったり変わる様にしたんですが、ChangeDrawmethodなどで
色も変えないと混乱の元なので却下。
動画では、一部の敵を倒すと一定時間NPCが出現するようにしましたが、このほうが分かり易いですね。
Stage2では敵を倒すとどんどん増援が来るようにしたはずが、レベル設定のGroup{Min}{Max}の
影響も受けるようで、そんなに敵だらけになるようなことはありませんでした。
Stage1のようにEnemyポータル方式のほうがメリハリがついて良いかもしれません。
テストとはいえ、コンセプトや世界観なしで適当に登録してある敵をただ順番に出現させているだけなので
ゲーム性は全く無いですね。ステージもTGS4からの流用です。オリジナルを作れる日はいつの事やらw
tu.be/k1-ss0M1Klc
2022/04/09(土) 02:45:15.79ID:huMt1Pej
>>302 にてlocalvar と globalvar について軽く触れていますが、もう一つ
EntityVar もあり、setEntityvar({entity},{index},{var}) 的につかいます。
EX. SetEntityVar(Self, 1, 999)GetEntityVar(Self,1)な感じで、
好きな入れ物(変数)として使えます。
Localvarはシステムも使っていて、結構な頻度でリセットされるので、
キャラ(Entity)固有の変数収納場所(フラグ処理とか)として便利かと。
MOD SailorMoonでは Kastorというキャラが、これを利用して
2対でプレイヤーの情報を共有して、同時攻撃をするなどしています。
2022/04/09(土) 02:58:53.09ID:huMt1Pej
>>316
なので、いわゆるピヨリ値などはGlobalVarよりEntityVarに収納したほうが
管理しやすいかも知れませんが、いまのマシンパワーならメモリ効率とか考えなくても
とくに支障はなさそうなので、使い易いほうで良さそうです。
2022/04/11(月) 03:53:09.40ID:mFlGfZLx
プレイヤーが敵の情報を取得して、その敵を投げた際にdrawmerhod rotateを
使って回転しながら吹き飛ぶようにしようとスクリプト組んでたんですが
ぜーん全上手くゆかないので、プレイアブルキャラ作成に逃避
2022/04/12(火) 01:32:29.29ID:vWluw1zD
void slamSpin() {
void self = getlocalvar("self");
void target = getlocalvar("Target"+self);
if(target==NULL()) { target = getentityproperty(self, "grabbing");
setentityvar(self,3,NULL());
setlocalvar("Target" + self, target); }
if(target!=NULL()) {
if (getentityvar(self, 3)==NULL()){ setentityvar(self, 1, 36);
setentityvar(self, 2, 16);
setentityvar(self, 3, 69); }
int zoom = getentityvar(self,2);
int zoomfct = 256+(zoom*4);
int rotate = getentityvar(self,1);
if(rotate>=360) { setentityvar(self, 3, 99); }
changedrawmethod(target, "enabled", 1);
changedrawmethod(target, "rotate", rotate);
changedrawmethod(target, "fliprotate", 1);
changedrawmethod(target, "scalex", zoomfct);
changedrawmethod(target, "scaley", zoomfct);
changeentityproperty(target,"projectile",1);
updateframe(target, 0);
setentityvar(self, 1, rotate+=36);
setentityvar(self, 2, zoom+=8);
if(getentityvar(self,3)==99) { changedrawmethod(target, "rotate", 0);
setentityvar(self,1,NULL());
setentityvar(self,2,NULL());
setentityvar(self,3,NULL());
depost(0);
throw(999,1,0,4,3,0);
changedrawmethod(target, "alpha", 3);
spawnEF("crash",0,0,1,384,0);
anichange("ANI_DODGE"); } } }
2022/04/12(火) 01:51:05.23ID:vWluw1zD
思ってたんと違ったけど、まあなんとか必殺投げが出来たので
最後の5行に別なスクリプトを呼んでますが、演出用なので
基本上のスクリプトをLooperという別なスクリプトで呼び出して使ってます。
動画のプレイヤーキャラ(黄色いの)が連続キックを繰り出しますが
ああいう同じ動きをするとき便利なスクリプトで、殆どのユーザースクリプトに導入されていると思います。
@CMD Looper 3 5 という感じで7番目のFrame Data/〜に記述すると
3番目のFrame から6番目のFrame までを5回繰り返すというもの
標準コマンドのLoop だと延々と繰り返してしますので、Looper の便利さが分かるかと思います。

動画だと動画のフレームが跳んでしまって分かりにくいですが、
なんとなーく私のやりたいこと分かっていただけますでしょうか?
tu.be/CRGXjQowAG8
2022/04/12(火) 02:29:22.96ID:vWluw1zD
上のスクリプトは汎用性はほぼ無し、条件設定として
Health が25%切った相手を投げた際に30%の確立で発動な感じです
(動画ではテスト用に発動条件ユルユルですが)。
なのでやっぱり
攻撃者のAttack5 などに、相手側がリアクションとして Pain5 や Fall5 を
設定しておいたほうが結果手間が掛からないかと思います。
2022/04/13(水) 00:14:16.67ID:aDur5ZAn
ピヨリについて、面倒だと思うよーとか適当な事言っておいて
EntityVar に値を入れておけば楽だと思うよーとか超いい加減なことばっかレスしてるんで
一応作ってみました、結果そんなに苦労はないかも?
今回はプレイヤーがピヨリ値を蓄積し、一定に達すると4秒間ピヨリ
レバガチャで時間短縮と成功でリバーサル攻撃。
内容は単純でAnim Pain実行時ピヨリ値をプラス、Anim Idleで少しづつピヨリ値減少
一定数たまったら、Executeanimationで”Ani_Follow{#}”でピヨピヨ実行
このとき、レバガチャEntityをプレイヤーにBindEntityして
ガチャ成功するとリバーサル攻撃用のAnim_Follow{#}にExecuteanimationするというもの
レバガチャEntityにはLifespan 4が設定してあって、4秒で自動消滅
CPU戦でピヨるとかウザイだけかもという認識でしたが、作ってみたら意外と良かったw
tu.be/6iLBqsjC2eI
2022/04/13(水) 01:10:35.54ID:aDur5ZAn
anim pain
@script
if (frame==0) {
void self = getlocalvar("self");
int incDM = getentityvar(self,9);
if((incDM==NULL())||(incDM<=0)) { incDM=1; }
incDM+=incDM;
spawn01("dmflashsp", 0, 4, 0);
if(incDM>=20) { executeanimation(self,openborconstant("ANI_Follow9")); }
setentityvar(self,9,incDM);
}
@end_script

ピヨリ蓄積部分もこんな感じで単純です。Anim Painの度に倍になってゆき、
数値20以上でピヨリAnim(Follow9)を実行。

anim idle
@script
if(frame==5) {
void self = getlocalvar("self");
int incDM = getentityvar(self,9);
if (incDM<=0) { setentityvar(self,9,NULL()); }
if(incDM!=NULL()) { setentityvar(self,9,incDM-=1); }
}
@end_script

アイドル状態でピヨリ値1ずつ減少。AnimのFrameが最後の方まで描画されたら
減少するようになってます。または、Anim Sleepを設定しておいて、
そちらで下がるようにしても良いかも。
2022/04/13(水) 01:17:03.20ID:aDur5ZAn
script @script
#include "data/scripts/escript.c"
void main()
{
void self = getlocalvar("self");
void par = getentityproperty(self,"parent");
void vict = getentityproperty(par, "playerindex");
void vict2 = getplayerproperty(vict,"entity");
int HP = getentityproperty(self,"health");
int HPmax = getentityproperty(self,"maxhealth");
if(HP>=80) {
spawn01("dmsuper", 0, 0, 1);
executeanimation(vict2, openborconstant("ANI_Follow11"));
bindentity(self, NULL());
killentity(self);
} else if(playerkeys(vict, 2, "moveleft")) { // Left is pressed?
changeentityproperty(self, "health", HP+4);
} else if(playerkeys(vict, 2, "moveright")) { // Right is pressed?
changeentityproperty(self, "health", HP+4);
} else if(playerkeys(vict, 2, "attack")) { // Attack is pressed?
changeentityproperty(self, "health", HP+2);
} else if(playerkeys(vict, 2, "jump")) { // Jump is pressed?
changeentityproperty(self, "health", HP+6); } }
@end_script
レバガチャ部分もシンプルで、方向キーで+4、アタック+2、ジャンプ+6で
80以上溜まったら成功(Follow11、リバーサル攻撃)
2022/04/13(水) 01:25:34.49ID:aDur5ZAn
2行目で #include "data/scripts/escript.c" してるのは、
成功時の演出 spawn01("dmsuper", 0, 0, 1);の為だけです。

anim spawn
@script
void self = getlocalvar("self");
changeentityproperty(self, "health", 1);
@end_script
最初に Health 100(MaxHP)などと設定しておき、Anim Spawn時に
現HPを1にしています。
これを プレイヤーにBindEntity するのですが、スクリプト上方のSelf,Par,Vict,Vict2
ここを理解するのに頭こんがらがるかも知れませんね、元々他のモッダーさんが組んだ
スクリプト(古くからあるのでBloodBane氏でしょうか?)をアレンジしましたです。
2022/04/13(水) 04:05:16.91ID:aDur5ZAn
元々、仕様とバグのギリギリいってる手法なので、
ピヨリ中にもう一回敵からのBindEntityを利用した攻撃を受けると
OpenBoRが落ちますw
やっぱり標準コマンドで何とかしたほうが良さそうですね。
レバガチャで回復早めるとかしなければ、EntityVarを使って
値を蓄積して、一定時間無防備になるというのは
バグの危険なく可能です。
中々難しいものですね。
2022/04/17(日) 02:42:23.91ID:xLR26ELd
なんか煮詰まったので、プレイアブルキャラ作成に逃避。
ムゲンからキャラのインポート(聞こえが良いですね)。
ここで新たに、光弾問題に遭遇、どうもDBキャラはいろいろ撃ちますが、
単純に弾を撃つならCustKnifeなりで作ればよいし、誘導弾ならType NPCのSubType Chaseとかで
追尾させればよいのですが、なんとなく弾幕作りたいな〜とかやってドハマリ中。
通常攻撃とシンプルな特殊技はこんな感じかな?
tu.be/_xQBhCUit8c
2022/04/17(日) 03:48:50.61ID:xLR26ELd
SpawnEF S{vName} {X} {Y} {Z} {S} {A} {R} {Ani}
ナニコレ?
私個人のスクリプトですが、上の動画でも多用されています。
XYZは単純に座標、SはScale(Zoom)AはAlpha(透明度)R(回転)Ani(Anim)
本来、複雑な手続きを簡略化するのもスクリプトのメリットの一つだと思いますが
色々出来るようにして、かえって煩雑になった悪例w
ちゃんと設計やらしない大雑把な性格そのままです。
怪我の功名とでもいいますか、一つAnimがあれば回転拡大縮小をつかって
さまざまなエフェクトに活用出来そう。
ただし、ソースを見ないと意味不明、ですが、自身のオリジナルではないので
アップは憚れるという、ムゲンと共通のジレンマ。
オリジナルの作者様には尊敬しかないです。
2022/04/17(日) 16:44:32.78ID:xLR26ELd
openBoRには標準でsin cos atanなど揃っていたので、扇弾を弄ってたのですが
考えてみれば敵はそんなのお構いなしですし。
自分が敵にやられたらイラだつだろうしで、全方位弾にしました。
おおよその敵の方向に撃つ直進弾がたまに止まっちゃいますがご愛嬌w
一見おおっ!となっても実は使い道の無い技ということで。
特に敵以外との衝突判定はしてないので32×4射ってますが
さすがopenBoR処理落ちなどしないですね。
セブンティーン氏が洪水おこしてますが、技が思いつかないので適当です。
Krrnはサポートに飛び込んできて、入力に連動して攻撃を繰り出すように出来ないか考え中。
2022/04/18(月) 12:39:49.39ID:+se/Swu+
何の事だと思ったら、動画の話しなんですね。
まだ、何も分かりませんが、日本語での解説ありがたいです。
2022/04/19(火) 03:14:29.19ID:a3xIrRSp
>>275
Anim Death 中に SpawnFrame を実行させれば
倒されるたびに新たな敵({Entity}なら何でも)を出現させられます。
Anim Deathを必ず実行させる為に Falldie 1or2(Death 1or2)
nodieblink はお好みで設定すればOK。
ですが Level(ステージやBranch)の中で Group 1 2 など出現キャラ数に
制限をしていると、SpawnFrame が実行されないので注意です。
Weapon で設定した場合、一定数転んだら別キャラ({Weapon})のような感じだったり
任意のタイミング(Freespecialなど)で切り替えたりして変身的に使えます。
{Weapon や Entity}で継承される技(Anim {xxx})が被ったりすると
上書きされたり(止める事もできますModelflag)するので気をつけないと
謎の技が暴発したりしますw
Weapon を使うなら Animal も研究すると面白いかもしれませんね。
2022/04/19(火) 03:24:07.55ID:a3xIrRSp
>>別キャラ({Weapon})
({WeaponFrame} や{WeapLoss} などを設定して切り替わるようにする)。です。
このあたりの設定の細かさは流石です。
2022/04/20(水) 21:43:31.43ID:PW9VJXxm
weaponの技の上書きというより、マージと言ったほうがわかり易いかも?
Anim Freespecial1のみプレイヤーキャラにあって、weaponにAnim Freespecial2があった場合、武器を拾ったプレイヤーは両方使えるようになります。
Modelflag{0,1,2}を設定してないと、混ざったままになってしまうことがあるということですね。
2022/04/22(金) 01:04:20.67ID:g9+olsrt
算数も割り算の時点で微妙な私は、もちろんプログラムなんて全く分からなかったけれど
kt住江さんの作品に出会ってOpenBoRを知って、なんとか拡散砲を撃てるようになりました。
リソースは全部ひと様のものなので本来動画すら微妙なんですが、
スクリプトの中身見たら四則演算って知ってる?って感じですが
そんな私でも、For文とDrawmethodを組み合わせると、
こんな感じも演出出来てしまう。そしてすっごく軽いOpenBoR凄いという話です。

tu.be/hpDEMufHzC8
2022/04/25(月) 03:51:31.30ID:vu/W7WGq
NO18さんの体力低下時スペシャルKRRN
最初はプレイヤーは空中に退避、各ボタン押下でMPに応じて技を繰り出す
というような感じにしたんですが、操作が煩雑になるので連打に
なんか連打も面倒(ピヨリで十分イライラですし)。
結果、全ての敵のそばに出現して勝手に暴れるように
ただ、これをやると、その後MPの回復を0か遅くする、
またはタイマーセットで規制しないと
体力下げてスペシャル連打でいいよね?になってしまうのですが、
そのへん作り込むのは面倒、良いアイデアないでしょうか

tu.be/iCGEtG9JQ8w
2022/04/25(月) 19:15:40.23ID:vu/W7WGq
だんだん脳内で設定してスクリプトを切り張りしても、収拾つかなくなってきたので
ルールのまとめをしてゆこうかと思います。
拡散するショットはMPの消費を激しくして、さらに3回を限度に。
KRRNの呼び出しはHP20%以下、1回きり。しかし、KRRNの攻撃力は高い。
KRRNを呼び出すとMAXMPは3分の1程度に(大技不能)、ただしMP回復力大幅アップ。
HP20%以下からプレイヤーキャラがHPを50%以上回復すると、
上のペナルティ(メリット)はリセットされる。
ピヨピヨから回復するための操作でMPをマイナスされる、
ただし回復に成功すればMPは回復する。
回復操作でMPが減り、時間切れではマイナスのままです。
敵の捕縛攻撃時に回復操作した場合、MPとHPはマイナスされる。
成功してもMPはマイナスのまま。
しかし、敵に大きなダメージを与えられる(今回の動画では映っていません)。

あとは追撃作成すればだいたい良いかな?

tu.be/KkTDOyFT9hw
2022/04/26(火) 01:26:17.09ID:tRI20Ut9
>>336
とやったら弱くなりすぎた。
ピンチ状態(HP20%以下)ではMP回復2倍は良い感じに思える。
その辺を分かり易くするエフェクトが必要かも?
ピンチからHP50%まで回復すると、MP回復2倍のまま
MaxMP100のハイパー状態に、でも拡散攻撃を実行すると
MaxMP70MP回復25%ダウン(標準は "mpset" 100 0 0 8)
なぜ、こんな事が気軽にできるかというと
@cmd changeentityproperty getlocalvar("self") "mpset" 70 0 0 6
で即座に変更できるからです。

拡散攻撃に混ぜた挙動がおかしい弾は、
Range 0 100で追尾(SubType Chace)のType NPC のお手軽誘導弾。

これまでLocalVarで管理してたフラグを EntityVarで管理できるように。
Set(Get)EntityVar({Entity}{Index}{Var})というように使うのですが
{Entity}毎の管理なのでとても便利です。このへんは以前からOpenBoRに存在してました
私が知らなかっただけですw

追撃については動画のボス・アダーさんに抱きつくような仕草をして
直後に「渦」のようなエフェクトが発生しますが、あれが原型で
スクリプト的には、攻撃で吹き飛んだキャラがプレイヤーの攻撃範囲で
HPが残っていた場合、プレイヤーまで引き寄せ再度攻撃するというもの
「鞭」を装備したキャラを想定した攻撃なので素手では変な見た目になりますね。
2022/04/26(火) 01:47:14.17ID:tRI20Ut9
>>337
最後の追撃ですが、
FindTarget や Opponent、 Grabbing(Grabbed)で選んだ対象が
ANI_Fall で A=Base のType Enemyだった場合、
そしてプレイヤーの攻撃範囲であったら
スクリプト SlamStart して地面を蹴りつける動作でダメージを与えるというものを
作ったのですが、ちょっと見た目的に結構エグかったので削除。
まあそれまでにナグるわケるは好き放題にしてたくせに、何故か引いてしまいました。

別キャラの相手の背後にテレポートしてキりつけるは別にOKなんですが、
人それぞれ結構苦手なシーンがあるかもしれませんね。
2022/04/26(火) 03:20:57.85ID:tRI20Ut9
>>313
Drawmethod Rotate を使った回転について
マニュアルには −45 とすればマイナス方向の45度に回転させられるとあり
実際出来るのですが、画像の欠けが発生し易いようなので
素直に 315と設定したほうが良さそう。

Type Enemy の設定
Anim JumpAttack は
これとRange 設定(0〜100など)だけで自動で前方ジャンプ攻撃を行います。
Anim JumpAttack2 は
同じく Range 設定で 垂直ジャンプ攻撃になります。

Type Enemyも結構いろいろ設定できるので、凝りだすとキリが無さそうです。
2022/04/26(火) 07:34:52.71ID:tRI20Ut9
こちらがコンボを繰り出していると、たまに敵が無敵技で逃げたり
反撃してきたりしますが、
EscapeHits {#} ここで設定した数値+1連続で攻撃を受けると
Anim Special2 が実行されます。
Falldie # やDeath # を1にしておくと、Health 0 で必ず
Anim Death が実行されるので、フラグや演出にも使えそう。
Walk Idle Pain Fall Riseなどの各Anim はほぼ必須な Animなので
通常の利用だけでなく、必ず実行される特性を利用した演出や
フラグの処理などに。ヘッダーで NoMoveを設定しておくと移動しなくなるので
こちらも便利に使えそう。
2022/04/28(木) 01:47:31.28ID:k34JWO6S
anim rise
@script
if(frame==2) {
void self = getlocalvar("self");
int MHP = getentityproperty(self, "maxhealth");
if(getentityvar(self,"PNC")==NULL()&&getentityproperty(self, "health")<(MHP/5)) {
setentityvar(self,"PNC","On");
setentityvar(self,"PCT",openborvariant("elapsed_time")+1500);
spawnAni("FightEF4", 0, 0, 0, "ANI_Follow48");
spawnbind("piyo4", 0, 100, 1); }

int incDM = getentityvar(self,9);
if(incDM!=NULL()) {
if(incDM>20 && getentityproperty(self, "health")<MHP/4) { executeanimation(self,openborconstant("ANI_Follow8")); }
if(incDM>20) { executeanimation(self,openborconstant("ANI_Follow9")); }
setentityvar(self,9,incDM-=2);
}
}

@end_script

これで、攻撃を受けて倒れた時、Healthが20%以下ならピンチモードになり。
蓄積ダメージがあったらピヨリに。
この辺は、Anim Painなどにも記述しておきます。
2022/04/28(木) 01:51:47.77ID:k34JWO6S
Anim Idle
@script
if(frame==4){
void self = getlocalvar("self");
if( getentityvar(self,"PNC")=="On" ) {
int MP = getentityproperty(self, "mp");
int MHP = getentityproperty(self, "maxhealth");
if(getentityproperty(self, "health")>MHP/2||openborvariant("elapsed_time")>getentityvar(self,"PCT")) {
changeentityproperty(self, "mpset", 100);
changeentityproperty(self, "mp", MP);
spawnAni("ALLSP", 0, 0, 0, "ANI_Idle");
changeentityproperty(self, "health",MHP*0.75);
setentityvar(self, "PCT", NULL());
setentityvar(self, "PNC", NULL());
setentityvar(self, "SSP", NULL());
setentityvar(self, "KSP", NULL());
}
}
}
アイドル状態になるたび、回復のチェックをして
ピンチになってから自力でHP50%以上か、または一定時間経過で自動回復。
EnergyCost {#} {#}これでMPのみで必殺技始動にしておかないと
Specialガンガン使ってHealth減らせば、一定時間後に自動回復しまくりで
超イージーにw キャラの調整って難しい。
2022/04/28(木) 02:03:08.09ID:k34JWO6S
Type Enemy や NPCは
Range を設定する事で、一定距離内に入ったら攻撃を始めますが
彼我の距離が変わらないとずっと同じことを実行します。
int Crnd=rand()%20;
if(Crnd>10) {
changeentityproperty(getlocalvar("self"),"animation",openborconstant("ATK_Normal2"));
} else if (Crnd>0) {
changeentityproperty(getlocalvar("self"),"animation",openborconstant("ATK_FreeSpecial"));
}
こんな感じにランダム要素を入れてみたり。
Anim Idleも2〜3フレームしか実行されないことが多いので、Anim Attack#に
Idleの内容と同じアニメを用意して、たまにはボーっとさせるのも一興。
EnemyやNPCに Anim Get を用意してると、回復アイテムを拾います。
気をつけましょうw
まあそれを利用して回復アイテムを放置、
拾いに行く無防備Enemyをコテンパンにするのもあり。
2022/04/28(木) 02:14:43.42ID:k34JWO6S
changeentityproperty(getlocalvar("self"),"animation",openborconstant("ATK_Normal2"));
上の"ATK_Nomal2"は"ANI_Attack2"とかで良いかもしれないけれど、
フリースペシャルは"ANI_FreeSpecial"でないとエラー
即興で適当に書いてしまいました。
ANI_ とATK_ てよく間違えるんです。

setentityvar(self,"PCT",openborvariant("elapsed_time")+1500);
これは結構便利で、Anim Fallなどのタイミングで設定して
openborvariant("elapsed_time")>getentityvar(self,"PCT")
こんな感じで現在時刻(OpenBoR内の)が「設定した時間を超えたら
何かする」というような使い方ができます。
2022/04/28(木) 02:24:25.39ID:k34JWO6S
setentityvar(self, "PCT", NULL());
setentityvar(self, "PNC", NULL());
setentityvar(self, "SSP", NULL());
setentityvar(self, "KSP", NULL());

このへん、いちいち NULL()にしてますが、
if 条件で GetEntityVar(self, "KSP")!=NULL() というように
"KSPの"中身が空(NULL)ではなかったら「値をプラスする」や
==NULLだったら条件の始動にするなど、フラグとして便利
ただデフォは少ないのでScript.txt (注 Scriptsではない)の設定で増やそう。
あまり増やすとメモリ消費が激しいので、4096とかしないようにw
2022/04/28(木) 03:53:19.54ID:k34JWO6S
ステージの設定で
Spawn {Entity}
Health 200
Aggression 30
Item Food
Coords 300 180 0
At 300
こんな感じに記述して、ステージ上に様々なキャラ{Entity}を登場させます。
もともとのキャラ{Entity}でHealth を50などと設定してあっても
上の例だと Health 200で出現します。
Spawn {Entity}の部分は特にキャラである必要はなく{Entity}でさえあれば
(Models.txtで設定)OKなので、特定の場所の演出用{Entity}でも良いわけです。
Item Food の所、そのキャラを倒すとドロップするのですが
演出用{Entity}でも、敵キャラでもOKなので色々ドロップさせると面白いですね。
ただ、1ステージで使える Spawn {Entity}は上限600個程度のようなので
ほどほどで、次のステージに移行しましょう(ステージが切り替わると各種リセットされる)。
上の方のレスでもあった@Script も使えば、かなり様々なことができそうです。
2022/04/30(土) 01:52:33.20ID:rxj78wqY
anim spawn
@script
{
if(frame==2) {
void self = getlocalvar("self");
void sprite = getentityproperty(self, "sprite",getentityproperty(self,"animpos"));
int max_scale = 256;
if ( getentityvar(self,"size") == NULL() ) { setentityvar(self,"size", 16); }
int size = getentityvar(self,"size");
if( size <= max_scale ) {
changedrawmethod(self, "flag", 1);
changedrawmethod(self, "tintmode",5);
changedrawmethod(self, "tintcolor", 0x40ff40);
changedrawmethod(self, "scalex", size);
changedrawmethod(self, "scaley", size);
size += 16;
setentityvar(self,"size", size);
}
}
if(frame==3) {
void self = getlocalvar("self");
changedrawmethod(self, "reset", 1);
setentityvar(self,"size", NULL());
}
}
@end_script
2022/04/30(土) 01:53:21.89ID:rxj78wqY
delay 40
drawmethod scale 0.3
offset 66 154
frame data/chars/plant/puke2.gif
delay 16
frame data/chars/plant/puke2.gif
@cmd looper 1 16
frame data/chars/misc/empty.gif

結局こーんな感じで愚直に拡大処理して敵を出現させたりしてるのです。
各{Entity}のデータを取得してスクリプトでスポポーンと処理したいものですが、
ひとつひとつ手動でやったほうがエラーも無く早いという。
エイティーンさんは、一回だけ自動回復付けて、なんか、もう、こんな感じで良いかなとラインに来たので
また別キャラに逃避します。

tu.be/C-_sJr-DUXM
2022/04/30(土) 02:15:26.77ID:rxj78wqY
void sprite = getentityproperty(self, "sprite",getentityproperty(self,"animpos"));

ここは機能していないので削除です。こうして手探りで各コマンドの効能を調べてます。

切実にに情報が欲しいのが
int Swidth = getgfxproperty(sprite, "srcwidth");
int Sheight = getgfxproperty(sprite, "srcheight");
この辺の使い方で、GetGfxProperty でSprite情報を取得して
Swidth、Sheightでスプライト画像の幅やYの長さが取得できればいいなと
勝手に想像してるんですが、結果OffSetは0,0になってしまうので
まったく成功の兆しがありません。

例えば、Animの特定フレーム((AnimPos)のSprite(画像)の情報を取得して
その画像のキャンバス情報(横100*縦200ドットとか)を取得できる手段がありましたら
ご教授ください。宜しくお願いいたします。
2022/04/30(土) 02:33:43.50ID:rxj78wqY
anim idle
@script
if(frame==2) {
void self = getlocalvar("self");
int MHP = getentityproperty(self, "maxhealth");
if(getentityvar(self,"PNC")==NULL()&&getentityproperty(self, "health")<(MHP/5)) {
setentityvar(self,"PNC","On");
setentityvar(self,"PCT",openborvariant("elapsed_time")+1500);
spawnAni("FightEF2", 0, 0, -1, "ANI_Follow12"); }
}
if(frame==3) {
void self = getlocalvar("self");
int incDM = getentityvar(self,9);
if(incDM!=NULL()) { setentityvar(self,9,incDM-=2); }
if (incDM<=0) { setentityvar(self,9,NULL()); }
if( getentityvar(self,"PNC")=="On" && getentityvar(self,"REV")!="On" ) {
int MP = getentityproperty(self, "mp");
int MHP = getentityproperty(self, "maxhealth");
if(getentityproperty(self, "health")>MHP/2||openborvariant("elapsed_time")>getentityvar(self,"PCT")) {
changeentityproperty(self, "mpset", 100);
changeentityproperty(self, "mp", MP);
spawnAni("ALLSP", 0, 0, 0, "ANI_Idle");
spawnAni("FightEF2", 0, 0, 0, "ANI_Follow29");
changeentityproperty(self, "health",MHP*0.75);
setentityvar(self,"REV","On");
setentityvar(self, "PCT", NULL());
setentityvar(self, "PNC", NULL());
setentityvar(self, "SSP", NULL());
setentityvar(self, "KSP", NULL()); } } }
@end_script
2022/04/30(土) 02:47:59.07ID:rxj78wqY
>>301 さんのレスから
そんなに難しい事なんかないよ!と言いたくて、
すこしスクリプトを書いてみましたが、ポンコツな私の能力では
結局こんなんなっちゃって、もうなんと申したら良いかって感じです。
やりたいことは
HPが一定数減ったか?
HPが減った状態から回復したか?
強力な必殺技を一定数使ったか?
だけなんで、内容はシンプル。ただ、関連するAnimが他に
Anim Faint、Anim Fall、Anim Pain、Anim Rise
少なくとも4つあるので、記述そのものはコピペでOKとはいえ面倒だなーと思いました。
手前味噌ですが、やってみたら意外とアクセントになって良かったかも?
という感想です。
2022/05/07(土) 01:55:26.36ID:NmRbFI7S
スクリプトで Looper を紹介しましたが
標準コマンドの Loop も十分に活用できるものです。
基本は Loop 1という感じで 1と0でOn/Offの関係です。
Loop 1 5 とすると10FrameあるAnimの場合、一回10Frame目までAnimを
実行した後、次は5Frame目から繰り返しでAnimを実行します。
例えば、Anim Runで0〜4Frameまでは走り始めのアニメ、5〜10Frameは
走っているアニメとすれば、最初の一回だけ0〜4Frame、以降5〜10Frameの
繰り返しでスムーズに走っている状態のアニメを再生できるわけですね。
Anim WalkやAnim Idleといったお馴染みの動作を想像していただければ分かり易いかと。
Walk Idle Run などはいつでも別な行動でキャンセルまたはリセットできるので
問題ないのですが、Anim FreeSpecialなどキャンセルできない行動にLoop 1と
してしまうと 延々と同じ動作(Anim)を続けてしまいます。
そんなときは、ChangeEntityProperty({Self}、"Animation"、"")や
ExecuteAnimationなどを@Cmdを使って実行し、強制的に別Animに移行したり
Cancel を使って別なFreeSpecialに移行したりします。
2022/05/07(土) 02:01:51.67ID:NmRbFI7S
上の閉じたLoopでも
BBoxで喰らい判定や、Attackコマンドと付随するFollowコマンドがあれば
別なAnimに移行できます。
なので、あえて閉じたLoopを使って、チャージの真似事をさせたり
CancelでA2ボタンを押すたび別なFreeSpecialに跳んで、A2を押した数だけ
べつな技を出す。なんてことが可能になります。
もちろん別な方の受け売りですが、Loopひとつで技のヴァリエーションが
増えるのはなかなか便利です。
2022/05/10(火) 06:46:43.73ID:ANAGzemE
Jenniferで思ったけれど
ゴオン・リーラ・ディ・ディオとか
グリズリーコークスクリューマグナム
みたいな巨大すぎる手だけの背景技が作りたいのと
バットルサーキットみたいにショップに入れたりしたら面白いのにね
2022/05/11(水) 03:15:52.16ID:5CHTfmx4
背景技に関してはどこまで凝るかによりますが
name {waza}
type text
subtype noskip

こんな感じでEnityを作ると、このEnityがSpawnFrame などで呼び出されている間、
ゲームが一時停止されるのを利用するのが単純でよいかも?

スクリプトで存在している全てのEntityに対してFreezeやStun状態にして
プレイヤーのAnimをDrawmethod Scale {倍率}で巨大化させるという手もありますし。
PlayAnim(うろ覚え)でGIFアニメを再生するコマンドもあったはず。
画面一杯に演出を表示してボム的な技を繰り出す事に関してはかなり自由にできると思います。

お買い物に関しては、
DungeonsDragons Rise ofWarduke2015(Rise ofWardukeは少なくとも2種類ある)
MIX Mastersあたりが、とても参考になります。

うろ覚えですがTekkenのDemoが装備品としてプレイヤーのステータスをアップする
スクリプトを組んでいたような?
2022/05/12(木) 03:20:11.72ID:4lLWq45r
PlayAnim(うろ覚え) => X
Animation data/scenes/scene.gif 0 0 こちらが正しい表記 最後の 0 0 はXY座標
このコマンドでGIFアニメを再生できます。主にDEMOシーンなどに使います。
インゲーム中は普通に{Entity}を作ったほうが早そうです。
2022/05/14(土) 02:02:26.01ID:3oAON5YM
動画でOVERLOADをあげましたが、
何でかというとハンドガンの弾薬数を数字で表示したかったからです。
件のMODはハンドガンがプレイヤーに標準装備というなんとも掟破りな感じで私は大好きですw

@script
if(frame==0) { void self = getlocalvar("self"), gun = getlocalvar("G"+self);
if(gun==NULL()) { gun = 0; setlocalvar("G"+self,0); }
int Blt=(8-gun);
settextobj( 9, 30, 200, 4, 0, Blt, openborvariant("elapsed_time")+600);
}
@end_script
これをAnim Idleなど必ず1回は実行されるAnim に記述しておくと
画面左下に 数字がチョコンと表示されます。

このスクリプトの肝は settextobj のところで、どうもこれは標準コマンドっぽいのです。
{Index} {X} {Y} {Font} {Layer?} {表示したい内容} {表示する時間}
DCManualに載ってなかったので手探りですが、意外と便利(Update,Updated を使わなくてすむ)
似たものに drawstring(int x, int y, int font#, text, layer) というのものがあるのですが
ちょっと使いにくいので settextobj を専ら使っています。
2022/05/14(土) 02:07:27.46ID:3oAON5YM
動画のMODでは基本無限に撃ててしまうので、8発ごとにリロードを挟むようにしました。

anim freespecial
@script
void self = getlocalvar("self");
void gun = getlocalvar("G"+self);
if(frame==0) { if (gun==NULL()) { setlocalvar("G"+self,1); } else {
if(gun>=8) { performattack(self,openborconstant("ANI_FOLLOW5",1)); }
else { gun = gun+1;
setlocalvar("G"+self, gun); } }
}
@end_script

Ani_Follow5に跳んでる部分がリロードアニメです。
このスクリプトでは LocalVar GlobalVar を使ってますが
少し上のレスの EntityVarを使えばもっと単純にできますね。
2022/05/14(土) 02:32:09.60ID:3oAON5YM
以前にも紹介しましたが

@cmd clearspawnentry();setspawnentry "name" "test"
@cmd bindentity spawn() getlocalvar("self") 60 1 40 1 0 1

こんな感じでたった2行でBindEntityが使えるので、
キャラクターと一緒に移動するエフェクトを表示したい場合などに便利です。
2022/05/14(土) 02:37:55.00ID:3oAON5YM
SpawnFrameと同様の動作をする

spawn(); ですがこの場合は座標の補正や向きなども指定しないとならないので
@ScriptやScriptsで定義したほうが使い勝手が良くなります。
2022/05/14(土) 03:25:29.49ID:oWC+YZhm
テラワロス
syodai.g3.xrea.com/ura/patch.htm
どうせならいつでもメニューを開けるようにできればPCゲームに負けないインパクトを出せそう
2022/05/14(土) 14:26:04.17ID:3oAON5YM
ポーズメニューで難易度や同士討ちの設定など出来るようになってるのが
ベア・ナックルX{#}で大元はChronoCrashでお馴染みクラタス氏だったような?
tekken何とかdemoやknights and dragonsの何作目だったかポーズメニューで
装備品を切り替えてプレイヤーの攻撃や防御を変化させてたような?
メニュー作りの基礎はRocketViper2やTMNTの何作目だったかBonus氏のMODが参考になるかと
2022/05/14(土) 23:56:15.60ID:3oAON5YM
RVGM set OprnBOR PACK

Open BoR Game Club
この辺で検索するとメージャーなMODがリンクと共に紹介されています。
それぞれモッダーさんによって標準コマンドのみであったり
そこまでスクリプト使わなくてもって感じに作成されています。
興味を持ったMODをアンパックしてDATAの中身を覗いてみれば
自分が作りたいMODの良いヒントが見つかるんじゃないでしょうか。
2022/05/15(日) 11:25:46.85ID:pXw15ZHa
もうすぐこの文章も消えますので保管します
古いリスト一覧表
(閲覧できるだけ)
m.vk . com /pages?oid=-156200484&p=Y
(空欄3個)

ia904502.us.archive . org /view_archive.php?archive=/1/items/OpenBOR-Launchbox-Pack/Game%20Paks.7z
(空欄3個)

mugenarchive . com /forums/archive/index.php/f-5-p-15.html
(空欄3個)
3706 Ladies of Rage 不足分?
2022/05/15(日) 11:44:51.33ID:pXw15ZHa
もうすぐこの文章も消えますので保管します2
www.afeidj . com /tag/openbor/
(空欄3個)
パス afeidanji
2022/05/18(水) 01:21:30.91ID:2bJvsfcm
ツールなども開発しているクラタス氏
スクリプトを覗かせていただくと、最近のものはDeffine などを駆使して
省略形を使ったりしてちょっと癖が強いので、
すこし前のSoR2XMegaMixあたりだと読みやすくとても勉強になります。
getentityproperty(self,"animhits") こういった Propertyの使い方なども
とても参考になります。
2022/05/18(水) 01:29:14.80ID:2bJvsfcm
performattack(self, openborconstant("ANI_FOLLOW8"), 0);
changeentityproperty(self, "aiflag", "jumping", 1);
changeentityproperty(self, "takeaction", "common_jump");
こういった処理を見つけて、こうすればANI_Follow8はジャンプ扱いになるのかな?
と予想して自身の処理に組み込んでみたり。

changeentityproperty(self, "takeaction", "common_grabattack");
これだとAnim Grabattack 扱いになるのかな?などと色々実験してゆくうちに
夜が明ける感じです。
2022/05/22(日) 22:22:15.61ID:VlDnYkVW
保管させてください
mk2k.net/releases/psp/games/
ameblo.jp/shoanddiggy/entry-12224585029.html
3943668BiiEff
www.juwanshe . com /roms/bor/91-2-0-0-1.html
同人射撃遊戯東方射手5
mega.nz/file/LcQmQIjY#UOxB_BnsaJdT9uAIU9hI6VUBl5qcfXP_rsaPSr69NR0
2022/05/22(日) 22:35:25.61ID:VlDnYkVW
寝ぼけてすごく間違えちゃった
2022/06/01(水) 02:50:36.94ID:JmmaEfzE
くにおくんLAが流行のExtraMenuも導入されて、Ver3.1.6になってますね。
海外の くにおくん人気は凄まじいものがありますが、やはり元が良いからでしょうか。
2022/06/02(木) 00:15:15.40ID:Jne9s08k
ハイスクルーのやんちゃな男女が大暴れっていう、
くにおくんの系譜は現役で作られているようですね。
2022/06/02(木) 00:42:54.95ID:Jne9s08k
>>358
射撃武器を使った場合、弾薬の演出で簡単に済ますなら
Anim Attack{#}のコンボ途中にリロードアニメを混ぜればよいかもですね。
例えば、
Anim Attack5に射撃アニメ Anim Attack6にリロードアニメ
ヘッダーの設定で AtChain 5 5 5 6 0 のようにすれば4発撃ったらリロードになります。
Range を設定すれば、AtChain 1 1 2 3 0 5 5 5 6 0 これで
近距離(1 1 2 3)殴り、遠距離射撃(5 5 5 6)にできるかも?
ふと思いついたのでまだ試してませんがw
2022/06/03(金) 02:24:03.03ID:9BJR8uXf
何度目になったか、もう数えてませんが
くにおくんLA 最後まで遊ばせていただきました。
kt住江 氏の間の取り方、適度な演出、攻撃とHPのバランスの妙
最高ですね。Ver3.1.6などのEdit作品も原作リスペクトのアレンジでよいのですが
アンバーちゃん氏の巣穴ページからDLできる初期オリジナルが至高ですね(個人の見解)。
2022/06/03(金) 21:14:08.99ID:7Ag/1Egm
ちゃん氏ワロス
さすが日本人!全てに数字の鍵がかかってるね!
2022/06/03(金) 21:46:04.62ID:7Ag/1Egm
そして書き込みエラーワロス
mrbdn316.bl
og36.fc2 . com /bl
og-en
try-1186.ht
ml?sp
2022/06/03(金) 22:49:14.68ID:9BJR8uXf
Pass はDLページの一番上に書いてありますよ?
Edit作品は ChronoCrash にあります(要Login)。
2022/06/04(土) 00:43:37.98ID:dPRWKu7b
#define OBC openborconstant
#define GEP getentityproperty
#define CEP changeentityproperty
#define SLV setlocalvar
#define GLV getlocalvar
#define GEV getentityvar
#define SEV setentityvar
#define CLP changelevelproperty
#define OBV openborvariant
#define COBV changeopenborvariant
#define GPP getplayerproperty
#define CPP changeplayerproperty
#define SGV setglobalvar
#define GGV getglobalvar
#define self GLV("self")

こんな感じにスクリプトで宣言しておく事で
2022/06/04(土) 00:50:34.82ID:dPRWKu7b
void rotation()
{
changedrawmethod(self,"enabled",1);
changedrawmethod(self, "rotate", GGV("rotation"));
if(GEP(self,"type") == OBC("TYPE_NONE") )
{
if(playerkeys(0, 3, "moveup"))
{
float xpos = openborvariant("xpos");
float x = GEP(self,"x");
CEP(self, "velocity", (cos(GGV("rotation")) * 95)*0.01 , (sin(GGV("rotation")) * 95)*0.01, NULL() ); //Move!
if( x > xpos+310 ){ CEP(self, "position", xpos+310, NULL(), NULL());}
if( x < xpos+10 ){ CEP(self, "position", xpos+10, NULL(), NULL()); }
} else { CEP(self, "velocity",0,0,0); }
} }
こんな風に略することができるんですが、
浅慮な私には逆にデバグ面倒になってない?と思ったり。思わなかったり。
#define GLV getlocalvar
#define self GLV("self")
この辺は便利そう。

〜/Data/Scripts/〜.c とか〜.h の中で使います。
2022/06/04(土) 23:36:23.17ID:/SuZQTlg
先生の先生?374?ux.getuploader . com /gikotakurpg/
2022/06/08(水) 04:53:27.40ID:wI0LZaee
皆様、お久しぶりです。
2022年も相変わらず能天気なkt住江です。
ダブルドラゴン番外編やくにおくんLAを遊んでくれた方、本当にありがとうございます。
最近、ようやく新たなOpenBORゲームの開発をスタートしましたので、ほんの少し告知します。

くにおくんの新たなる戦いが、中国は龍海で繰り広げられる!
その名も『熱血硬派くにおくん 中国龍海編』
3〜4か月後の完成を目指しています。僭越ながら宜しくお願いします。
2022/06/09(木) 14:03:20.99ID:YHYJKkPV
うわお、新作超楽しみです。kt住江様のゲームの特徴として、アクション自体の爽快感もありますが、
もうひとつストーリーも毎回楽しみにしています。
DDは主人公達もある意味アウトローとして敵組織の殲滅に注力出来ますが。
くにおくん達はまだ学生、時には同級生も巻き込まれるかもしれないという、主人公の立場から、どんなストーリーが紡がれてゆくのか、とても楽しみです。
特に複雑なストーリーが無くても、挑戦してくる奴は誰でも相手になるぜ!って感じでも、
今から妄想が止まらないです。
2022/06/09(木) 14:06:02.51ID:YHYJKkPV
余談ですが、MikoQも大ファンです。
力まず頑張って下さい。
383名前は開発中のものです。
垢版 |
2022/06/22(水) 17:37:09.48ID:Q1gUnxNW
防御したときに自キャラが一瞬白く光る演出
古いゲームに良くありますが

光らせたいフレームの前に
drawmethod tintmode 1
drawmethod tintcolor 255_255_255
こうすることで真っ白になります
tintmode の 1はdrawmethod alphaと同じく
1〜6まで効能も一緒
tintcolor の数値は 0〜255まで、3つあるのは各々R.G.B.になります
効果を消す時は drawmethod tintmode 0
tintcolor 255_16_16 こんな風にすると真っ赤にまるのでダメージの時に便利

opebor wip tmaster で検索すれば、利用した動画が出てくるかと思います。
2022/06/25(土) 11:05:25.17ID:UnewVUwO
>>381 >>382
ありがとうございます。現在、開発は順調です。
ここで途中経過のマップをご紹介します。
ttps://twitter.com/ktsuminoe/status/1540515621166653440/photo/1
https://twitter.com/5chan_nel (5ch newer account)
2022/07/06(水) 01:00:17.28ID:xUxwYeqH
おお、こういう背景絵は、32x32ドットみたいな決まったサイズのパーツを組み合わせて
タイルを敷き詰めるように描いて、最終的に一枚の画像として仕上げるのですかね?

写真をペイントソフトで加工して背景にしたりしてますが、なんか浮いてしまって
結局他のMODから流用させていただくばかりです。
2022/07/17(日) 00:24:42.53ID:WAmJWTWK
新作情報は kt住江様を楽しみにするとして。

Street of Rage Z2(格闘回帰Z2) は結構おすすめです。
古いMODなのでOpenBoR V3(Rev.3789)あたりなら何とか動作するかと思います。
敵や背景などはお馴染みSoRのものですが、某S社からRalfとYuriも参戦してますw
特にRalfはそのままパワーファイターなので爽快感抜群にたのしめます。
敵を掴んでJumpボタンを押すと原作SoRのように敵の背後に廻ったりできます。
敵を一定数倒すとレベルが上がってキャラが強く成って行きますが
Ralfは低レベルから持ち前のパワーで暴れまわれるようになっています。

この系統のMODは結構亜種派生があるのですが、スクリプトの都合か
結構OpenBoRのRevを選びます。クライアントが1.8メガ辺りなら動くものが多いかと
Openborconsrant で使う引数関係や標準コマンドでも廃止されたものが使われてると
最初のロードで落ちるので、Logから修正してゆけば良いんですけど中々時間がとれず
さらに直したところで結局UPできる訳ではないので、もどかしいですね。
2022/07/18(月) 02:47:26.48ID:tWbUHA9o
Briga de Rua(StreetFight)V1〜V3まで確認できています。

V1のステージ4の演出、ステージ序盤は霧に包まれていて
ボス戦になると霧が晴れるという演出スクリプトが面白いのと
ステージ中は列車の屋根という設定なので常に風が吹きキャラが流されます
これもステージ上のEntity全てにVelocityで移動させる処理を行っているのですが
画面上の全ての敵を凍らせるとか、吹き飛ばすなどプレイヤー他
必殺技に応用できそうですね。
V1〜V2は基本RocketViperの流用ばかりなのでステージの演出いがい特別なものは無いようです。
V3はKillerInstictというゲームやお馴染みMKからキャラに出張願っているようです。
バランスはいわゆる洋ゲー(緩め)なので、当たり判定や必殺技の調整にチャレンジして
自分好みに仕上げてみるとバランスの勉強になるかも?
kt住江 氏のゲームを遊んでみると、適度なストレスと開放の繰り返しに気付くかと思います。
これには経験を積み重ねるしかないと個人的に考えています。
その時、すでにバランスが取れているものを調整しても、どんどん難しくなってゆくばかりで
最後には、敵を集めて超必殺で終わりのような雑な仕上がりに陥ることがとても多くなります(個人的に)。
そんな時洋ゲー的雑なバランス(良い意味で)のものをを調整してゆく(難しいものを簡単に)と
いい感じに仕上がる事が多くなると感じています。
そんなとき便利なのが、Attack などの個別コマンドでは一撃10〜30のように統一して設定し
Offense all 1.8(数値が大きくなるほど強力)
Defense all 0.6(数値が小さくなるほど強力)
このコマンドを各キャラのヘッダー(HealthやSpeedなど書くところ)に記述して
このコマンドの引数でバランスを調整して、あまり各AttackやHelathなどは弄らすに
済ますようにしてバランス設定をすると、おおきな混乱なく調整できるかと思います。
2022/07/24(日) 19:15:52.84ID:yrPtcXzi
コウちゃん消えちゃったね...今年1月-6月分はどんなタイトルがありますか?
(壮絶介護と認知症介護で全く見られなかった...無念です)
2021年12月までは全てあります
2022/07/25(月) 03:26:21.56ID:R2FHKdS3
あ〜私もファンといいながらスペシャルの発表の頃チェックしに行くくらいでした。
1ヶ月くらい前はスペシャルの4デモとか、あと、FF、アナザーガールズ、といった
過去作のリメイク的なものだったかと思います。
どうやら会員制のサイトに登録か、ソーシャルネットの友達にでもならないと今後は絶望のようですね。

勝手に改変されクレジットを偽って無断配布された的なことを書かれていたので、
仕方がないかもしれませんね。もともと法的にグレーゾーンだけど、完全フリーだし良いよね?的な
曖昧さでOpenBoRは成り立っている面もあるので、氏の怒りはもっともではあるものの、
結局、氏のMODもプレイアブルキャラ以外は他者からの流用が殆どなので、
2次創作として有料サイトに登録は自衛としてギリギリの落とし所なのかなと思います。

というか改変に関しては、様々なMODやムゲンから切り張りして私も使ったりしているので、
偉そうな事は一切言えないのでしたw
2022/07/25(月) 12:02:19.45ID:uTZpI5um
2021年後半の作品は、VSゾンビとか妖怪とかエイリアンとの戦いが目立っていたので世界観が??謎すぎると思って??記憶から消えがちだったかも知れません
RAGE (VS人)は18作品
HAZARD (VS異種)は10作品以上と2022年の5作品位かな?
スペシャル3は2021年の夏ごろで
スペシャル4はつべ削除後とかかな?
お返事くださりありがとうございました!
2022/07/25(月) 18:35:12.74ID:15AbLW26
世界観かあ、あまり考えてなかった。
確かにエイリアンとアニメ主人公的なキャラが同時に敵として現れたら変な感じですね。
MODの中には、普段はホラー系の敵で、ゲーム中テレビに閉じ込められて、そのテレビの映像の敵と闘うというように別な世界観を上手くMIXさせていたり。パレットで肌の色を青や緑に替えてゾンビ化してしまった的な感じなものもsりました。
くにおくんのような世界観が固まっている作品はアレンジが難しいでしょうね。
2022/07/26(火) 01:59:53.89ID:Z0JONnIb
Ladies of Rage(Remix) / Anime Mix Chaos / Womens War とか女性の敵からボコボコにされるのを楽しむ系もありますねw
2022/07/26(火) 03:39:33.19ID:GiffkAeR
プロ-ロキsちゃんはもう少しでこのへん行きそうだったのにね
(素晴らしいぞこの力)
tube.com/playlist?list=PL902ACB2B1DD07901
いなくなってしまって誠に残念
2022/07/27(水) 01:52:47.09ID:YIU6GmYF
BonusJZ氏 BlazeRhodon氏などお見かけしなくなって久しい反面、
Kratus氏 BloodBane氏 kt住江氏などなど頑張っていらっしゃる方も多数なので、
まだまだOpenBoRは大丈夫だと思います。
2022/07/27(水) 15:16:34.55ID:QvRu+w5T
次こそは、シェリア ミウ シエル で投剣ガールズか!?
とツッコミ入れようとして
3月後半の0時-6時未明に落としていた
スペシャル4HAZARD (VS異種)あった!
2022/07/27(水) 15:28:43.99ID:QvRu+w5T
2021年春頃に次こそは投剣ガールズか!?と思いつくも結局1回も突っ込んでいない
2022/07/28(木) 01:51:19.28ID:i5ijIl7+
KOU氏のプレイアブルキャラの選定センスは
かなり上手いところを突いていると個人的に思っています。

RAGE編だと、KoFの主人公やそのライバルキャラをブっ飛ばす事になるので、
ある程度残虐でも許容できるHAZARD編に移行したのかも知れませんね。
そうなってくるとDemonSlaga風に派手派手にぶちまけても良いかも。

なんにせよ期待できますね。
2022/07/28(木) 21:34:11.02ID:8H72i6gQ
tales EXNeoBlood2 meltybloood(投剣) XXvsXX→ with! onisengoku
いいね!! (>v<)o!
2022/07/31(日) 02:55:53.36ID:ZiN6ib1W
void dodgez( float Vx, float Vy, float Vz )
{
void self = getlocalvar("self");
int pZ = getentityproperty(self, "z");
int sZ = openborconstant("PLAYER_MIN_Z");
int mZ = openborconstant("PLAYER_MAX_Z");
int dir = getentityproperty(self,"direction");
if(dir==0){ Vx = -Vx; }
if((pZ-sZ) > ( mZ - sZ)/2) { Vz = -Vz; }
if( Vx!=NULL() && Vy!=NULL() && Vz!=NULL() ) {
tossentity(self, Vy, Vx, Vz);
} }

まあ、雑談ばかりでもアレなんで、
Anim Dodge を設定していると
上上や下下でAnim Dodge が実行されますが、このコマンドがAnim AttackUpや
Anim AttackDownと被っているので、どちらかの選択になります。
そこで、上記スクリプトを使うと好きなコマンドで緊急回避的ま動作
Z軸によって画面奥か手前に自動でジャンプ移動します。
Anim AttackBackward などに設定しても良いですね。
2022/08/01(月) 03:19:56.78ID:wW6uwh2l
キャラクターや演出などのMODEL を作る際に設定する TYPE
大雑把に Player Enemy NPC Obstacle などありますが
演出や弾丸、波動拳的な飛び道具を設定するときは Type Noneを使う事が多いかと思います。
ですが、Type None に設定してしまうと、Anim Attackなど結構な数のAnim が制限を受けます。
なので、例えば敵との距離で炸裂したい弾を作りたいと思ったら、TypeをNPCにして
あとは、Hostile Enemy、Candamage Enemy、Anim Attack(FollowAnim/FollowCond)、など自由に設定して
高性能な飛び道具を作る事ができます。
NoMove 1 1 としておけば勝手に移動もしません(ChangeEntityProperty でVolocityを弄れば動かせます)。
SubType Chaseにすれば強力な誘導弾にもなります。
Range 設定やAnim JumpAttack(自動でジャンプ攻撃), JumpAttack2(垂直ジャンプ攻撃)を使って
罠のような性質にもできるので、あとは想像力次第ですね。
2022/08/04(木) 01:57:45.95ID:MsMljLu8
>>372 で ComboStyle 1 の ATChain と Range を調整する事で
近距離と射撃の混合。
例えば、近距離殴り(1 1 2 3)、遠距離射撃(5 5 5 6)みたいに出来るかも?
の実験結果、遠距離/近距離の切り分けは普通にできますが
遠距離は5,5,5,6、のように綺麗には発動せず。
ただ、まあまあ雰囲気はでるかな?くらいの効果はありました。
実験用動画ではハンドガンとグレネードガンでおなじみのキャラをインポート。
C社のキャラは本当に良く出来ていますね。
2022/08/09(火) 02:25:56.85ID:JDfy2WDi
MOD MixMasters では、敵キャラがプレイヤーキャラより手前に来ると
UpDate / UpDated.C を使って、敵キャラを半透明になるようにしていました。
4〜5体の敵が出てくると、結構プレイヤーと被って見え辛くなるので
上手い処理方法があると良いのですが、なかなか難しい。
2022/08/09(火) 02:37:05.37ID:JDfy2WDi
最初はA2ボタンなどに必殺技として登録していたハンドガンや擲弾銃を
>>401のようにAボタンのコンボで出るようにして
無敵にならないように、間に隙としてリロードを挟むようにしたら
思ったよりストレスw 調整っていろいろ難しいですね。
2022/08/10(水) 01:45:49.65ID:bGglhmth
EntityProperty の ”Grabbing” 現在掴んでいる相手の情報が格納されているようなのです。
Target = GetEntityProperty(getlocalvar("self"),"Grabbing")
if(Target != NULL()) { 〜
こんな感じにとても便利に使えるのですが、
ChangeEntityProperty(getlocalvar("self"),"Grabbing",NULL())
こういう風に使おうとすると、無理〜っとErrorが出て落ちます。
GitHubに OpenBoRのソースがあるので追ってゆけば良いのですが、
まあそこまでしなくてもスクリプトでいっかとなってしまいますw

何がしたかったというと、掴み暴発の際に即リリースできたらと思った訳です。
Anim Grab に Cancel 0 99 0 A2 FreeSpecial な記述を加えて
A2で技を出すや JでGrabAttack2 で解除など他にやりようがあるので
切実な問題というわけでもないのですが、MOD Tekken Demo v6のように
コマンド技で掴みというのも面白いかもしれませんね。
2022/08/15(月) 01:00:51.91ID:lU8v9ZEH
スレの趣旨と違ってしまうかもしれませんが、
「〜というMODの〜の表現(必殺技など)はどうやってるの?」的な質問があれば
分かる範囲ですが解説します。
標準コマンドで為しえるのか、スクリプトでないと無理なのか、などなど
情報を共有して行きましょう。
そしていつかはオリジナルMODを作り上げましょう。
2022/08/19(金) 04:45:00.56ID:MOIk3mud
セーラー真空波動拳というものを見たことがありますが数年見つけられずに忘れかけて います
誰かこれをダウンロードできた人はいますか
twitter.com/sailor_beyond/status/1297100443395346432
https://twitter.com/5chan_nel (5ch newer account)
2022/08/20(土) 02:22:24.53ID:ELyaagM/
水夫月に関するものはopenBoRだけでも結構あるので全く分かりません。

SetEntityVar/GetEntityVarを上手く使って敵同士が連携をとる
すばらしいスクリプトのMODがリメイクされている最中なようですが、
同じものかは分かりません。
往々にしてOpenBoRのMODの場合、自分で作ってしまったほうが早い事も多いので
自分式MODを作成して、後に正式リリース版と比べて解釈の差を楽しむのもありです。
2022/08/20(土) 09:09:14.53ID:b85V74xz
Ladies of rage の完成版 (キャラ少ない初期の物)に
v3の ももこ アテナ を全てのステージに追加する方法を詳しく教えてください
お願いします!
(pak展開はできます)
2022/08/20(土) 09:27:34.07ID:b85V74xz
プレイキャラとして
が抜けていました
ロード時 コンティニュー時 も選べるようにしたいです
お願いします!
2022/08/21(日) 01:45:09.25ID:HGvXapyt
>>408
 Ladies Of Rage の真のオリジナルを私も所持しているかというと確証が無いのですが、
キング・メイ・マリン・シオン の4キャラが最初かと思います。
そして、V3ですが、標準は上記にアテナ・シキが加わりモモ(カポエラ)が使えるものかと思います。
基本的なところですが、先ずOpenBoR のシステムとして MODELS.txtが読み込まれ
LEVELS.txt が読み込まれます。
必要があれば SCRIPTS.txt 他 BGS SCENES などなど
 LadiesOfRageではRocketViper2のスクリプトでキャラを読み込むような無茶な事はしていないので、
MODELS.txtとLEVELS.txtだけを覗けば概要がわかります。
MODELS.txtを見てみると # Players must also be loaded. と書かれた所に
know momo data/chars/momo/momo.txt
とありますので、know をload に変えてやると初期キャラとして使えるようになります。
 何故そんなことが分かるかというと、LEVELS.txt に SET P.M.S. とありますが
これは、ゲームモードを選ぶときの選択肢として出てくるものです。
見てゆくと、SET 〜が他にもあるかと思いますが、ゲーム中はP.M.S.を一回クリアしたらと表示されてます。
他の SET 〜 には ifcomplete 1 という記述があります、これが一回クリアしたら解禁の部分です。
他にも Credits 〜 Lives 〜とありますね、意味はなんとなく察する事ができるかと思います。
脱線しました。
さて、ここまで分かれば、もともと同じ内容のMODなので、キャラクターの移植は簡易です。
2022/08/21(日) 02:13:57.65ID:HGvXapyt
続き
MODELS.txt にある
load athena data/chars/athena/athena.txt
load Mball data/chars/athena/mball.txt
load(Know) momo data/chars/momo/momo.txt

この3行を移植先(今回はオリジナルLoR)のMODELS.txtへ、
Data/Chars/ にある athenaフォルダ momoフォルダを
移植先のData/Chars/ にコピーしてあげるだけでプレイアブルキャラとして
使用できるようになるかと思います。
ヴァージョンによって既に athena ・ momo フォルダが存在しているかもしれません。
そんなときは、上書きせずMODELS.txtだけ書き換えれば良いかと思います。
私が持ってる LoR V3 は2015年版なので違う部分もあるかもしれませんが、
キャラ移植の基本は MODELS.txt へのpath記述です。
SkipSelect などが絡んできたらまた解説します。何かのお役に立てれば幸いです。
2022/08/21(日) 06:42:24.72ID:Jk6y5MtS
ありがとうございます
せっかく面白いアプリのテーマATHENAを作ったのに初音ミクのアクションゲーム onion rage (仮)とPSYCHO SOLDIER X
が非公開で困っていました
たくさんありそうで実際は少ないものですね
お返事くださりありがとうございました!
2022/08/21(日) 07:59:32.24ID:Jk6y5MtS
ATHENAプレイヤー5種類位?少ないです
モーションだけATHENAであってそうではないキャラと言語が英語のグレイスミスは除外
あるいは敵キャラばかりに採用されてます
2022/08/21(日) 17:14:31.20ID:HGvXapyt
>>411 の続き
肝心な事を忘れてました、
Data/Chars/ に キャラクターフォルダをコピーしたし
MODELS.txt にもPathを記述したのに Athenaが出てこないよ?
そんなときは、キャラクターのファイル、アテナなら Athena.txt
このファイルの上のほう(HealthやType Player)があるところに
Secret 1 がないか見てください、あったら #でコメントにするか、削除すれば
最初から使えるようになります。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況