☆ベルトアクション作成 Beats of rageスレッド☆ (658レス)
☆ベルトアクション作成 Beats of rageスレッド☆ http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
70: 名前は開発中のものです。 [sage] 2021/04/05(月) 10:33:40.89 ID:JCfKgngn ロケットヴァイパーのシステムや敵をまるごと流用してるのに作りが雑なbriga de rua(英訳street fight) キャラクター作りに愛が無い感じで正直微妙な出来 スクリプトの内用を理解しつつ改変してるようなので それなりの技術力はありそうなのにゲームバランスやキャラの作り込みが 今一なんでなんとも勿体無い ただわかる範囲では3まで作られているんで力尽きてるようでもなさそう 作者さんは飽きっぽい方なのかな http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/70
71: 名前は開発中のものです。 [sage] 2021/04/06(火) 01:42:29.99 ID: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とも共用できるので 便利に使えます。 一回しか使わないなら、そのまま記述しても良いのですけどね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/71
72: 名前は開発中のものです。 [sage] 2021/04/08(木) 01:35:22.90 ID:91QCSGqP いろいろなMODを楽しんでいると、いつものメニュー画面とは違ったものに出会う事もあるかと思います。 基本OpenBoRではDATAフォルダの中を読み込んで、各種メニューやセレクトシーンなどに移行するのですが (level.txtだったりBGSフォルダの中だったり)。 DATAフォルダ直下にScript.txtが用意してあって中に、alwaysupdate 1などと記述してある場合 DATA/SCRIPTSフォルダ内にある Updated.cが優先して読み込まれ中に記述されてるスクリプトが実行されます。 MOD内で普遍的に使用されるスクリプトもここで定義されている事が多いので、 まずはここを探してみるのも良いかもしれません。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/72
73: 名前は開発中のものです。 [sage] 2021/04/08(木) 02:02:29.42 ID:91QCSGqP 訂正 level.txt → levels.txt updated.c に関しては update.c(公式ではこっち)ですが、どちらも優先して読み込まれるようです。 こちらのスクリプトに記述するメリットは、オープニングメニューを派手にしたり、 その場でゲーム難易度などを変更可能にしたり、キャラにレベルアップの要素を仕込むときや 拡大縮小、ゲームの演出上の一時停止を組み込んだりなど、基本システムへの介入を可能にする事でしょうか。 各キャラ(Entity)に一つずつスクリプトを記述する手間が省ける(setglobalvarなどで変数を渡すだけで色々処理できる) ような感じでしょうか。可能性は無限大になりますが、作る側に立つと脳天炸裂案件ですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/73
74: 名前は開発中のものです。 [sage] 2021/04/09(金) 17:18:04.09 ID:ncGtWkZW 開発中断か別なプロジェクト名に変わったのかも知れない Demon Sluga 思い切りスクリプト使って 拡大縮小、キャラクターを飛ばしたり奥や手前から敵が出現したり、誘導弾を弾き返したり 全盛期のアーケードゲーム風に作られてます 手に入るヴァージョンによってかも知れませんが海外の環境依存文字を使っているため 一部手直ししないとステージ1すら始まりません 見るべきところは models.txt data/misc data/misc/plane この辺りの pu・i.txtやpu・d.txt、pu・.gif、 それらを呼び出すplaneb2.txtなどに関連するファイルの手直しになります http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/74
75: 名前は開発中のものです。 [sage] 2021/04/09(金) 17:33:36.00 ID:ncGtWkZW 幼少の頃ゲームセンターで見た ノリマロが大活躍するRescue Command remake 敵はオンナサンばかり 面白いのは 掴まれた時のレバガチャ要素 抜け出せないとダメージはもちろん、別なイベントに移行したりと 有効に使われてます。 ゲームバランス的に敵の攻撃力が高いのであれなら defense all 0.1などモデルのヘッダーに記述して調整しましょう http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/75
76: 名前は開発中のものです。 [sage] 2021/04/10(土) 10:53:12.10 ID: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 回転など様々なオプションあり。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/76
77: 名前は開発中のものです。 [sage] 2021/04/11(日) 00:13:20.60 ID: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 具体的にはこんな感じ http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/77
78: 名前は開発中のものです。 [sage] 2021/04/11(日) 00:19:43.51 ID: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を発動なんてことも自由です。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/78
79: 名前は開発中のものです。 [sage] 2021/04/11(日) 00:32:07.96 ID: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秒あるんで、格闘ゲームみたいに忙しくなることはありません。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/79
80: 名前は開発中のものです。 [sage] 2021/04/11(日) 00:41:33.67 ID:9LUoOlWn 訂正 3フレームで入力 → 1フレーム Frameの数え方なんですが、コマンドでフレーム数を数える場合 どうも1番目は 0と数えるようです。 なのでFrameコマンドは 0,1,2の3フレーム Cancel コマンドの記述は 2、9とありますが9フレーム目なんてないので Cancel コマンドの判定は 2フレーム(3番目)の一つのみになります。 このFrame数を数えるのが以外に面倒で、Cancelコマンドなどは特に問題にならないのですが LandFrameやThrowFrameなど間違えるとゲームが遅延したりすることもあるので注意です。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/80
81: 名前は開発中のものです。 [sage] 2021/04/12(月) 01:07:22.51 ID: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マニュアルを読み込むしかないですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/81
82: 名前は開発中のものです。 [sage] 2021/04/12(月) 01:15:42.00 ID:rapSeOc5 上の例では、Void Main(){ }となっています。これは攻撃ヒット判定が行われるたび 毎回参照されるという意味になります。 C言語準拠の記述になるので、この辺の記述や演算子については、 適当にC言語 演算子などで検索してみてください。 で、内容としては、何らかのターゲットに特定(Attack3やFreespecial#)の攻撃がヒットしたら いつもより大きく吹き飛ばします(TossEntity)。 それぞれのAttackコマンドにDropvなど設定すれば同じ効果は得られますが、 このスクリプトを使う事でAnim単位で動作を変化させる事ができるのがメリット。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/82
83: 名前は開発中のものです。 [sage] 2021/04/13(火) 00:39:56.52 ID: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); } http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/83
84: 名前は開発中のものです。 [sage] 2021/04/13(火) 00:46:02.19 ID:r7OWv6Qx 上のスクリプトは、vName="Spiral"や"Sakura"など5種類の敵(Entity)を ランダムに出現させるものです。 changeentityproperty(vSpawn, "maxhealth", iMHealth); 最大HP changeentityproperty(vSpawn, "health", iHealth); 現在HP changeentityproperty(vSpawn, "direction", iDirection); 向き この辺は好みでランダム(rand()%200+ 50)とか設定しても良いでしょう。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/84
85: 名前は開発中のものです。 [sage] 2021/04/13(火) 00:50:45.59 ID: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)が出現するわけです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/85
86: 名前は開発中のものです。 [sage] 2021/04/13(火) 00:57:10.12 ID:r7OWv6Qx ステージを作ってるとどうしても内容を覚えてしまったりで、 だんだんテストプレイも飽きてきますので、ちょっとした気分転換になるかな? 敵を増やしたとき、スクリプト側とモデル側を少し書き換えるだけで登場させられるので 少しだけ手間が減らせるかなと思います。 もちろんEntityでさえあれば良いので、登場させるのはNPCだってITEMだって良いわけです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/86
87: 名前は開発中のものです。 [sage] 2021/04/13(火) 01:17:53.40 ID: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人ずつ登場します。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/87
88: 名前は開発中のものです。 [sage] 2021/04/13(火) 01:36:45.64 ID: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という事になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/88
89: 名前は開発中のものです。 [sage] 2021/04/13(火) 18:04:23.86 ID:pM+4VIKL 一番出し辛い攻撃はRunSlideだと思う Run→→中に↓ジャンプ、自然な動作としては スライディングかなあ OpenBoRに最初から設定されているAnimは 大概過去に存在したゲームからヒントを得ているぽいね http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/89
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 569 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s