☆ベルトアクション作成 Beats of rageスレッド☆ (658レス)
☆ベルトアクション作成 Beats of rageスレッド☆ http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
301: 名前は開発中のものです。 [sage] 2022/03/11(金) 11:57:25.86 ID:UqoUjlxU >>299 ピヨリ値蓄積みたいなのをやりたかったんですけどやっぱ複雑ですか… ピヨリ専用のリアクションいいかも知れません、ありがとうございました! http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/301
302: 名前は開発中のものです。 [sage] 2022/03/12(土) 01:40:59.64 ID:eSAMRvJC OpenBoR の内部の変数、 getlocalvar("self")など、よく見るかと思います。 すごく大まかに分けて localvar と globalvar というのがあって 読んで字のごとく local は一時的 global はlocalに比して長期的に数値を保持しておけます なので int piyopiyo =0; 攻撃を受けるたび piyopiyp += piyopiyo; setglobalvar(getlocalvar("self")+"PIYO", piyopiyo); な感じで Anim Fallに if(getglobalvar(self+"PIYO") => 100) { ピヨリAnimに跳ぶ} 的な事はできるかも? 馬乗りはスクリプト Slamで追撃はFindtargetでプレイヤーの向いている方向の180ドットくらいを調べて そのターゲットがFall中なら、攻撃Animへの移行とかすれば良いかもしれませんね。 SoR2XなどのMODでやってたような? 蛇足ですが相手に攻撃が当たっているのが確定なら(didhitscriptとか)、 void tar = getlocalvar("damagetaker"); int enextanim = getentityproperty(tar, "nextanim"); int enextthink = getentityproperty(tar, "nextthink"); changeentityproperty(tar, "nextanim", enextanim +100); changeentityproperty(tar, "nextthink", enextthink +100); こんな感じにすることで+100で0.5秒程度、ダメージを与えた敵を 完全に硬直させる事ができます。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/302
303: 名前は開発中のものです。 [sage] 2022/03/23(水) 01:49:53.63 ID:YS0aCHsY アニメカオスやHAGなど話題に上っていたので、私も”みたいなもの”を作りたいなと思いたち、 何もギミックなど無く、ただ敵を適当に配置してボスまで10分程度のステージ。 しかもステージリソースなどは他の方が作成したものをお借りさせて頂いてるのに、 それでも3日以上かかるという、自身のセンスの無さに辟易。 いくつか実験的なことをしてるとはいえ、混沌としてしまい、たびたびプレイヤーを 見失う事になる悲惨な構成。ただキャラをバラ撒くだけでもこんなに難しいとは。 まあある意味カオスだしいっか。 ステージ構成の〜.txt中でも@scriptで各種Entity(敵とかNPCとか何でも)をTossEntityで ステージに放り込んだりできるのは発見でした。 ExecuteAnimationやPerformAttackなどで、ステージ登場時に特定の動きも させられます。動画の最初に敵が跳びこんで来るのとか。 tu.be/DZkZLRIJmxk http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/303
304: 名前は開発中のものです。 [sage] 2022/03/23(水) 02:14:49.64 ID:YS0aCHsY spawn ninja flip 1 map 1 coords -200 200 @script void main() { void self = getlocalvar("self"); performattack(self, openborconstant("ANI_Attack1")); tossentity(self, 3, 3, 0); } @end_script at 600 こんな感じで記述すると、{Entity}Ninjaが anim Attack1の体勢で Y(a)3,X3,Z0の勢いで跳び込んできます。 void self = getlocalvar("self"); changeentityproperty(self, "TYPE", openborconstant("type_NPC")); changeentityproperty(self, "Hostile", openborconstant("type_ENEMY")); changeentityproperty(self, "Candamage", openborconstant("type_ENEMY")); こんなのを記述すれば敵をNPCに(逆も)できます。結構便利。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/304
305: 名前は開発中のものです。 [sage] 2022/03/23(水) 03:42:34.71 ID:YS0aCHsY 意外と知られて無いのかも? anim attack ではなく、コマンドのattackでattack4と記述して、このattack4が相手にヒットした場合、 ヒットした相手にanim pain4やanim fall4などが存在していれば、 そのanimが優先して実行されます。 スクリプトslamstartなんかは、これを利用して専用ヤラレを表現してるんですね。 attackコマンドには一緒に記述することで、他にも特別な動作をさせるサブコマンドがあるので DCマニュアルで調べてみると面白いです。 よく使う吹き飛びの距離を変化させるdoropvとか、 forceDirectionとstunを組み合わせると、相手を振り返らせてそのまま硬直させるとか。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/305
306: 名前は開発中のものです。 [sage] 2022/03/23(水) 07:46:06.96 ID:YS0aCHsY doropv ミス dropv Y X Z 高さ 幅 奥行 に吹き飛ばす方向の調整attack コマンドと一緒に使用 面白いのがDOT 多分ダメージオーバータイムの略で、指定したダメージを 一定時間と回数(5ダメージを1秒に1回3秒間など)、ヒットした相手に与える。 OTG オンザグラウンド?anim fall等で地面に倒れている相手にもattackがヒット、 ただし倒れている相手にBBoxを設定する必要があります。 結構沢山の要素が設定できるので、標準コマンドでもかなりの事が出来ますね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/306
307: 名前は開発中のものです。 [sage] 2022/03/24(木) 08:53:50.15 ID:SUDjzvRe DCマニュアルとうのは >>2 の上段のサイトのことですね。 英語ですが、ディープL先生に訳してもらえば かなりの情報が得られると思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/307
308: 名前は開発中のものです。 [] 2022/03/24(木) 09:06:51.52 ID:SUDjzvRe 最初はスクリプトなど意識せず、初代BoRのモデル設定Txtなどを読んだり、 プレイヤーキャラや敵等のHealthを100から200にするだけでも、かなりバランスが変わるのが分かると思います。 登場キャラや設定も少なめで基本はシッカリしてるので、構造が分かり易くエディットをミスしてバグっても、追いやすいというのもあります。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/308
309: 名前は開発中のものです。 [sage] 2022/03/27(日) 01:42:21.92 ID:HrM0WEsM 倒れている敵に追撃できないか? 簡単に作る場合は、Anim FreeSpecial などの コマンド Attack にOTGを設定して 置けばよいのですが、喰らう敵側の Anim Fall に BBoxを設定しておかないと 当然のごとく攻撃は当たりません。 通常のAnim Attack に スクリプトで FindTarget して、そこで取得できた敵のX,Y,Z とプレイヤーのX,Y,Zを比較して、攻撃が届く距離なら コマンド PerformAttack で ダウン攻撃Animに移行すればよいわけですが、この場合も、 敵側のAnim Fallには BBoxの設定が必要です。 あとは、FindTarget して、距離を測るまでは一緒で、見つけた敵を強引に スクリプト SlamStart で拾って、あとはよしなに。 もともと1対1の戦闘はそれほど考慮されていないので(それならムゲン) 特定の敵の情報を得るのは FindTarget、Opponent、DamageTaker くらいしか 私は知りませんので、なんとかそれでやりくりしてます。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/309
310: 名前は開発中のものです。 [sage] 2022/03/27(日) 01:45:54.18 ID:HrM0WEsM >>307 2じゃ無くて >>7 ですね。 さらにミスって上げてしまいました。ごめんなさい。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/310
311: 名前は開発中のものです。 [sage] 2022/03/30(水) 02:10:47.88 ID:jn3q1exc anim idle @script void self = getlocalvar("self"); void rflag = getentityvar(self, 1); if (rflag==NULL()){ setentityvar(self, 1, 0); } else { int rotate=getentityvar(self,1); if(rotate>=360){rotate=0;} changedrawmethod(self, "reset", 1); changedrawmethod(self, "rotate", rotate); changedrawmethod(self, "fliprotate", 1); rotate+=18; setentityvar(self, 1, rotate); } @end_script loop 1 delay 2 offset 42 43 attack 0 0 83 86 5 0 1 0 12 12 frame data/chars/spiral/ssword1.gif これは、射出される弾の1枚の絵を回転させられないかな?と作ったもの 回るには回ったんですが、やはりDrawMethod Rotateの特製か、中心を軸に回転させるのが難しい 無い頭で苦心するより、ペイントソフトで回転する絵を作ったほうが早そうです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/311
312: 名前は開発中のものです。 [sage] 2022/04/07(木) 09:32:24.21 ID:RWamgL6H bindentityの機能にターゲットと同じAnimを実行するというものがありますが 速いdelayやAnimを連続切り替えしたりすると、他のentity(敵とか)に影響が出て描画が遅れたりすることがあるようです。 特に同じAnim内でdrawmethodも使っていると症状が出やすいようです。 レイヤーコマンド使って優先順位付けしたら違ってくるかも?などと考えています。 かなり軽いエンジンなので、あんまり無理させちゃいけないのかも知れません。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/312
313: 名前は開発中のものです。 [sage] 2022/04/07(木) 11:11:43.62 ID:V6ejTjoQ >>311 の回転ですが 元絵を余白も含めて縦横比を同じくらいにして offsetを画像の中心付近にすることで、 結構綺麗に回転します。 飛翔体などならそんなに違和感ないですね。 コツが分かってくると、スピンアタック系や ジャンプ中の前転などそれなりに使えそう。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/313
314: 名前は開発中のものです。 [sage] 2022/04/07(木) 21:23:18.45 ID:RWamgL6H drawmethod rotate #とfliprotate 1はよく使ってます。 前者は好きな角度に回転させるのと、後者は対象のentiryの向きに合わせて 自動で反転してくれるというもの。 shiftx #にも自動反転があればもっと便利になるのですが、 中々難しいものです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/314
315: 名前は開発中のものです。 [sage] 2022/04/08(金) 01:33:24.24 ID:W27/nC7P >>304 のChangeEntityPropertyでTypeやHostileを変更するを利用して キャラ(Entity)がKnockdownCountで転ぶ(Fall)度に 敵になったり味方になったり変わる様にしたんですが、ChangeDrawmethodなどで 色も変えないと混乱の元なので却下。 動画では、一部の敵を倒すと一定時間NPCが出現するようにしましたが、このほうが分かり易いですね。 Stage2では敵を倒すとどんどん増援が来るようにしたはずが、レベル設定のGroup{Min}{Max}の 影響も受けるようで、そんなに敵だらけになるようなことはありませんでした。 Stage1のようにEnemyポータル方式のほうがメリハリがついて良いかもしれません。 テストとはいえ、コンセプトや世界観なしで適当に登録してある敵をただ順番に出現させているだけなので ゲーム性は全く無いですね。ステージもTGS4からの流用です。オリジナルを作れる日はいつの事やらw tu.be/k1-ss0M1Klc http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/315
316: 名前は開発中のものです。 [sage] 2022/04/09(土) 02:45:15.79 ID:huMt1Pej >>302 にてlocalvar と globalvar について軽く触れていますが、もう一つ EntityVar もあり、setEntityvar({entity},{index},{var}) 的につかいます。 EX. SetEntityVar(Self, 1, 999)GetEntityVar(Self,1)な感じで、 好きな入れ物(変数)として使えます。 Localvarはシステムも使っていて、結構な頻度でリセットされるので、 キャラ(Entity)固有の変数収納場所(フラグ処理とか)として便利かと。 MOD SailorMoonでは Kastorというキャラが、これを利用して 2対でプレイヤーの情報を共有して、同時攻撃をするなどしています。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/316
317: 名前は開発中のものです。 [sage] 2022/04/09(土) 02:58:53.09 ID:huMt1Pej >>316 なので、いわゆるピヨリ値などはGlobalVarよりEntityVarに収納したほうが 管理しやすいかも知れませんが、いまのマシンパワーならメモリ効率とか考えなくても とくに支障はなさそうなので、使い易いほうで良さそうです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/317
318: 名前は開発中のものです。 [sage] 2022/04/11(月) 03:53:09.40 ID:mFlGfZLx プレイヤーが敵の情報を取得して、その敵を投げた際にdrawmerhod rotateを 使って回転しながら吹き飛ぶようにしようとスクリプト組んでたんですが ぜーん全上手くゆかないので、プレイアブルキャラ作成に逃避 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/318
319: 名前は開発中のものです。 [sage] 2022/04/12(火) 01:32:29.29 ID: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"); } } } http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/319
320: 名前は開発中のものです。 [sage] 2022/04/12(火) 01:51:05.23 ID:vWluw1zD 思ってたんと違ったけど、まあなんとか必殺投げが出来たので 最後の5行に別なスクリプトを呼んでますが、演出用なので 基本上のスクリプトをLooperという別なスクリプトで呼び出して使ってます。 動画のプレイヤーキャラ(黄色いの)が連続キックを繰り出しますが ああいう同じ動きをするとき便利なスクリプトで、殆どのユーザースクリプトに導入されていると思います。 @CMD Looper 3 5 という感じで7番目のFrame Data/〜に記述すると 3番目のFrame から6番目のFrame までを5回繰り返すというもの 標準コマンドのLoop だと延々と繰り返してしますので、Looper の便利さが分かるかと思います。 動画だと動画のフレームが跳んでしまって分かりにくいですが、 なんとなーく私のやりたいこと分かっていただけますでしょうか? tu.be/CRGXjQowAG8 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/320
321: 名前は開発中のものです。 [sage] 2022/04/12(火) 02:29:22.96 ID:vWluw1zD 上のスクリプトは汎用性はほぼ無し、条件設定として Health が25%切った相手を投げた際に30%の確立で発動な感じです (動画ではテスト用に発動条件ユルユルですが)。 なのでやっぱり 攻撃者のAttack5 などに、相手側がリアクションとして Pain5 や Fall5 を 設定しておいたほうが結果手間が掛からないかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/321
322: 名前は開発中のものです。 [sage] 2022/04/13(水) 00:14:16.67 ID:aDur5ZAn ピヨリについて、面倒だと思うよーとか適当な事言っておいて EntityVar に値を入れておけば楽だと思うよーとか超いい加減なことばっかレスしてるんで 一応作ってみました、結果そんなに苦労はないかも? 今回はプレイヤーがピヨリ値を蓄積し、一定に達すると4秒間ピヨリ レバガチャで時間短縮と成功でリバーサル攻撃。 内容は単純でAnim Pain実行時ピヨリ値をプラス、Anim Idleで少しづつピヨリ値減少 一定数たまったら、Executeanimationで”Ani_Follow{#}”でピヨピヨ実行 このとき、レバガチャEntityをプレイヤーにBindEntityして ガチャ成功するとリバーサル攻撃用のAnim_Follow{#}にExecuteanimationするというもの レバガチャEntityにはLifespan 4が設定してあって、4秒で自動消滅 CPU戦でピヨるとかウザイだけかもという認識でしたが、作ってみたら意外と良かったw tu.be/6iLBqsjC2eI http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/322
323: 名前は開発中のものです。 [sage] 2022/04/13(水) 01:10:35.54 ID: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を設定しておいて、 そちらで下がるようにしても良いかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/323
324: 名前は開発中のものです。 [sage] 2022/04/13(水) 01:17:03.20 ID: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、リバーサル攻撃) http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/324
325: 名前は開発中のものです。 [sage] 2022/04/13(水) 01:25:34.49 ID: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氏でしょうか?)をアレンジしましたです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/325
326: 名前は開発中のものです。 [sage] 2022/04/13(水) 04:05:16.91 ID:aDur5ZAn 元々、仕様とバグのギリギリいってる手法なので、 ピヨリ中にもう一回敵からのBindEntityを利用した攻撃を受けると OpenBoRが落ちますw やっぱり標準コマンドで何とかしたほうが良さそうですね。 レバガチャで回復早めるとかしなければ、EntityVarを使って 値を蓄積して、一定時間無防備になるというのは バグの危険なく可能です。 中々難しいものですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/326
327: 名前は開発中のものです。 [sage] 2022/04/17(日) 02:42:23.91 ID:xLR26ELd なんか煮詰まったので、プレイアブルキャラ作成に逃避。 ムゲンからキャラのインポート(聞こえが良いですね)。 ここで新たに、光弾問題に遭遇、どうもDBキャラはいろいろ撃ちますが、 単純に弾を撃つならCustKnifeなりで作ればよいし、誘導弾ならType NPCのSubType Chaseとかで 追尾させればよいのですが、なんとなく弾幕作りたいな〜とかやってドハマリ中。 通常攻撃とシンプルな特殊技はこんな感じかな? tu.be/_xQBhCUit8c http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/327
328: 名前は開発中のものです。 [sage] 2022/04/17(日) 03:48:50.61 ID:xLR26ELd SpawnEF S{vName} {X} {Y} {Z} {S} {A} {R} {Ani} ナニコレ? 私個人のスクリプトですが、上の動画でも多用されています。 XYZは単純に座標、SはScale(Zoom)AはAlpha(透明度)R(回転)Ani(Anim) 本来、複雑な手続きを簡略化するのもスクリプトのメリットの一つだと思いますが 色々出来るようにして、かえって煩雑になった悪例w ちゃんと設計やらしない大雑把な性格そのままです。 怪我の功名とでもいいますか、一つAnimがあれば回転拡大縮小をつかって さまざまなエフェクトに活用出来そう。 ただし、ソースを見ないと意味不明、ですが、自身のオリジナルではないので アップは憚れるという、ムゲンと共通のジレンマ。 オリジナルの作者様には尊敬しかないです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/328
329: 名前は開発中のものです。 [sage] 2022/04/17(日) 16:44:32.78 ID:xLR26ELd openBoRには標準でsin cos atanなど揃っていたので、扇弾を弄ってたのですが 考えてみれば敵はそんなのお構いなしですし。 自分が敵にやられたらイラだつだろうしで、全方位弾にしました。 おおよその敵の方向に撃つ直進弾がたまに止まっちゃいますがご愛嬌w 一見おおっ!となっても実は使い道の無い技ということで。 特に敵以外との衝突判定はしてないので32×4射ってますが さすがopenBoR処理落ちなどしないですね。 セブンティーン氏が洪水おこしてますが、技が思いつかないので適当です。 Krrnはサポートに飛び込んできて、入力に連動して攻撃を繰り出すように出来ないか考え中。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/329
330: 名前は開発中のものです。 [sage] 2022/04/18(月) 12:39:49.39 ID:+se/Swu+ 何の事だと思ったら、動画の話しなんですね。 まだ、何も分かりませんが、日本語での解説ありがたいです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/330
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 328 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s