☆ベルトアクション作成 Beats of rageスレッド☆ (656レス)
☆ベルトアクション作成 Beats of rageスレッド☆ http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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("typ
e_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.cg
i/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(se
lf,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); setentityva
r(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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 335 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s