☆ベルトアクション作成 Beats of rageスレッド☆ (658レス)
1-

139: 2021/05/12(水)01:15 ID:z4QIhI5l(3/6) AAS
>>137 で(Frame==6)とあるようにAnim のFrame 7番目(1番は0なので)で実行されます。
frame 7番目にAttackコマンドが記述してあれば、攻撃判定を持ったまま移動します。
勢いは Velx(横方向)Velz(奥行き)dx、dzはスタート位置をずらしたりの調整(0でOK)
適当なFrameで@cmd changeentityproperty getlocalvar("self") "velocity" 0 0 0として
止めてあげます。
利点は、奥や手前の敵にホーミング攻撃できる!
問題点はFindtarget(OpenBoRに最初から用意されてるコマンド)が結構雑で思った敵に行かない所でしょうか
一対一の格闘ではないですし、現在画面内にいる敵をカウントして自分との距離を算出するなんて
想像しただけで気が遠くなるので、コマンドを用意してくれてる公式に感謝です。
140: 2021/05/12(水)01:48 ID:z4QIhI5l(4/6) AAS
>>136 さん
同士討ちの原因は簡単で
candamage player enemy
candamage(Attackコマンドの攻撃判定が有効になる対象)
player(そのままプレイヤー) enemy(TYPE_ENEMYと設定されたentity)なので
これが記述されていると同士討ちになる訳です。
特別スクリプトを使わずに、OpenBoRの基本設定でなんとできるかな?と試しただけなので穴だらけです。
丁寧に処理するには、OnDoAttack(Entityが攻撃コマンド実行時に処理されるスクリプト)か
AnimationScript(Entityが何かするたび処理)辺りで設定してみるか、
@scriptでうまいこと座標の重なりを検知できれば良いのですが、
省1
141: 2021/05/12(水)01:56 ID:z4QIhI5l(5/6) AAS
>>134 で苦労の割りにと書いたのは、場合によっては全ての敵にAnim Pain6などリアクション設定しないと
あまり効果が出ないので、同じ種類の敵でもSpeed(移動速度)をランダムにしてみる。
などのステータスを弄ってみたほうが楽かなと思いました。
srand(seed)
set a seed for random number generator
まだ使った事ないですが、こんなコマンドもあるようなので試してみようと思います。
142: 2021/05/12(水)15:39 ID:z4QIhI5l(6/6) AAS
スクリプトばっかりで意味がわからん、という方も多いかと思います。
スクリプトはあくまで味付けなので、殆どのMODはOpenBoRの基本コマンドだけで作られていますので
もし、たとえばOpenBoR STATSに触れる機会があったら、+LEVELSをクリックしていってみて
spawn Bob
health 50
coords 500 200
at 0
こんな感じの所をコピペで増やしてみたり
+PLAYERをクリックしていってHealth 100などとあったら300にしてみたり
ちょっとづつ出来合いのものを変えてみてはいかがでしょう?
省5
143
(1): 2021/05/13(木)01:20 ID:OoHlaO5a(1) AAS
anim jumpattack3 ## Jump, Up + A
@script
if(frame==3) {
float vx=3, vz=0, vy=-4;
int vd=getentityproperty(getlocalvar("self"),"direction");
if(vd==0) { vx= -vx; }
changeentityproperty(getlocalvar("self"), "velocity", vx, vz, vy);
}
@end_script
jumpframe 0 2 -0.5
省19
144: 2021/05/16(日)00:01 ID:FoJl/otl(1/7) AAS
あいかわらず Paletteや ReMapについては良く分からないです。
ぐっちゃぐちゃの色になったり、Alphaがとんでもない事になったり
もう色については放置です。

@cmd changeentityproperty getlocalvar("self") "animation" openborconstant("ANI_CHARGE")
frame data/〜
とすることで、Animの処理中に別なAnim(例ではCHARGE)に処理を跳ばす事が出来るんですが
処理中のAnimにLoop 1(当該Animを繰り返し実行)があると、例のパターンだと一瞬だけANI_CHARGEに跳んで
すぐLoop 1のAnimに戻ってしまうんですね。
そんな時、Loop 1であっても別なAnimに処理を強制的に移行させるのが
@cmd executeanimation getlocalvar("self") openborconstant("ANI_CHARGE") 0
省1
145: 2021/05/16(日)00:31 ID:FoJl/otl(2/7) AAS
>>143 に、ジャンプ上攻撃(JumpAttack3)の中にもJumpFrame 0 2 0.5とありますが
これは、元々のジャンプが降下に移っているとき攻撃を出しても、
攻撃が実行される前に着地してしまうことを避けるため、擬似2段ジャンプのような形にして
JumpAttack3が降下中でも攻撃判定がでるように工夫してます。
以前に紹介した、Cancelを利用した2段ジャンプは別にFreeSpecialを用意する必要がありましたが
時には使う事が無いJumpAttack2やJumpAttack3を2段ジャンプ代わりにすることも出来るわけです。
146: 2021/05/16(日)00:43 ID:FoJl/otl(3/7) AAS
>>137 の敵に向かってホーミング移動は自分だけでは無く
自分が射出する系(はどー拳みたいな)のEntityに仕込むことで、実際に誘導弾にできるので
void self = getlocalvar("self");
float vX=2 , vY= 0, vZ= 0, dX= 50;
int sX = getentityproperty(self, "x");
int sY = getentityproperty(self, "a");
int sZ = getentityproperty(self, "z");
int iCnt=4, iEnt, Rd= 0, dir = getentityproperty(self, "direction");
if(!dir) { dX= -dX; }
for(iEnt= 0; iEnt<iCnt; iEnt++) {
省12
147: 2021/05/16(日)00:46 ID:FoJl/otl(4/7) AAS
上の
setdrawmethod(vShot, 1, 160, 160,0,0,0,1,0,0,0,0,0);
changeentityproperty(vShot, "owner", self);
changeentityproperty(vShot, "parent", self);
ここはあまり意味無い(darawmethodによる描画の変化、プレイヤーにスコアが入るかの設定)なので
気にしないでOK
148
(1): 2021/05/16(日)01:04 ID:FoJl/otl(5/7) AAS
vY += 0.5;
vX -= 0.25;
この部分で射出される弾の軌道を調整(例では4つの弾が斜め上にずれて打ち出される)しているので、
iCntを増やして、vX,vYを関数的に処理すれば綺麗な扇弾にすることもできますね。
ジャンプに関しての追記ですが、
anim jumpattack2
@script
if(frame==8) {
float vx=3, vz=0, vy=-4;
int vd=getentityproperty(getlocalvar("self"),"direction");
省18
149: 2021/05/16(日)01:26 ID:FoJl/otl(6/7) AAS
余計な事ですが、
int vd=getentityproperty(getlocalvar("self"),"direction");
if(vd==0) { vx= -vx; }
この部分は、一回しか使わないので、
if(!getentityproperty(getlocalvar("self"),"direction")) { vx= -vx; }
これでも良さそうですね
度々、お世話になる”direction”これは、キャラ(Entity)の向きを表しています。
1ならEntityは右向き、0なら左向きとなります。これはプレイヤーでも敵でもアイテムでも一緒です。
if(〜) { 〜 } に関しては、もし(〜)内の条件が 1の時は{〜}内の処理を実行するというもの。
!getentityproperty 気付きにくいですが先頭の!マークがあると「〜ではない場合」の意味なので
省4
150: 2021/05/16(日)03:06 ID:FoJl/otl(7/7) AAS
Loop 1からの脱出
AnimにLoop 1が設定されていると
@cmd changeentityproperty getlocalvar("self") "animation" openborconstant("ANI_CHARGE")
では、すぐに元のAnimに戻されてしまう。
そこで、executeanimationを使う事で完全に別なAnimに移行できると紹介しましたが、
executeanimationを実行させる条件付けはどうしよう?
@script
if(frame>0) {
if(getplayerproperty(0, "newkeys")) {
executeanimation(getlocalvar("self"), openborconstant("ANI_CHARGE"), 0);
省18
151: 2021/05/17(月)00:52 ID:FAJnAZ+T(1/2) AAS
@Script

@Emd_Script
ばかり紹介してるけれど、本来スクリプトは data/scripts/フォルダにまとめて
そこから呼び出すようにした方が良いって公式にも書かれています。
でも完全にそうなってしまうと、得体の知れないブラックボックス的なものになってしまうかも
という危惧があります(余計なお世話ですが)。
なので一旦、スクリプトってどんな働きをしてるの?という部分について
大雑把にこんな感じ(だと思う)だよ、と紹介できたらなというのが私の思いです。
標準コマンドは危険が無いように各種ステータスを自動で調整してくれますし、
省8
152: 2021/05/17(月)02:39 ID:FAJnAZ+T(2/2) AAS
同じ敵でもSpeedの数値をランダムに変えれば、多少は「団子状態」で迫りくる状況が変えられるか?
という事で、いくつかのシチュエーションで試してみましたが、
プレイヤーが一人で、転んだり(Fall)などの状況になってしまうと
結局、団子になってしまいます。
敵同士のぶつかり(重なり)を避けるためにCanDamage を使うと、プレイヤーに対する攻撃が
同じ属性(TYPE_ENEMY)にもヒットしてしまうので、面白いけれど、全ての敵がそうだと少々面倒。
今後の課題として、EntityPropertyなどの参照で、”DamageTaker”や”Opponent”を取得できれば
TYPE_ENEMYのAttackコマンドがTYPE_ENEMMYにヒットしないように(ヒットしても無視するように)
することも出来るかな?と思う。

もう一つの対処法としてRand()%100などを使ってランダムな数値を出し、その数値によって
省7
153: 2021/05/19(水)23:48 ID:upn5bY1m(1) AAS
model commands:
entitypushing {int}: if 1 entity pushing target on collision
pushingfactor {float}: pushing factor on collision. Default: 1.0

openborscript functions: get_entity_collision_collection(void handle, int frame);
get_entity_collision_instance(void handle, int index);
get_entity_collision_property(void handle, int property);
set_entity_collision_property(void handle, int property, value);

openborscript:
added "entitypushing", "pushingfactor" to entityproperty
added "collidedentity" to entityproperty
省9
154: 2021/05/22(土)03:25 ID:zSTPvS3W(1) AAS
drawmethod scale # は機能する(#の数だけ拡大・縮小)のに
drawmethod scalex # scaley # (横、縦の比率を指定して拡大・縮小)は機能しない
OpenBoRのバージョンは3で固定のようですが、Buildでかなり動作にムラがあるようなので
MODによって、全く動作しなかったり、特定のステージ・エリアに行くと落ちたりします。
作者さんが動作確認できているBuildを公表するなりしてくれていると助かるのですが、
私の勝手な分け方では、古いMOD(2018年以前)はBuild 3789〜4086あたり、
それ以降であれば最新のものでも、ほぼ動作するようです。
大分安定しているとはいえ、過去Buildでは問題なく動作したコマンドが
最新ではエラー扱いになったりするので、どんな物でもそうなんですが、エラー原因の特定は
なかなか難しいですね。
155: 2021/05/25(火)01:13 ID:blxYdI/g(1) AAS
今ちょこちょこと弄っているのが、DungeonMAgic、過去にライトブリンガーとして
アーケードゲームとして斜め見下ろしダンジョン攻略アクションRPG風とでも言うのでしょうか
その登場キャラを例によってゴニョってOpenBoRに落とし込んだもの
ただ公式サイトでも、動いたー止まったーと幾つか混乱が生じているようですが、
Build 4078であれば特に落ちる事無くエンディングまで行けるようです。
Build 6000番くらいまで来ると、EntityPropertyの関係や、AttackTypes、AImoveの関係で落ちるっぽい?
修正できるかな?と思いましたが、とにかくLoadされるModelが多過ぎなのと
作者さんが ;セミコロンをコメント扱いにしていたりと中々の曲者なので
素直にBuild 4078でプレイするのが吉かと
156: kt住江 ◆/VMXjFOJew 2021/05/25(火)22:23 ID:GJ3pQcTQ(1) AAS
こんばんは、kt住江です。
開発中のベルトアクションの開発率が50%に達しましたので、
途中経過の動画をご紹介します。
タイトル『ダブルドラゴン番外編』のOPです。
Twitterリンク:ktsuminoe

2か月後の完成を目指して、引き続き頑張りたいと思います。
僭越ながら宜しくお願いします。
Twitterリンク:5chan_nel (5ch newer account)
157: 2021/05/30(日)02:14 ID:VOVq5aSh(1) AAS
おろしや国辺りのサイトを見てると、痕跡は残っているのに、
Modそのものは結構消滅して行ってる感じが悲しい。
チャイさんヒスパさん系はフリーだったり、寄付募集したり、逞しい感じw
2D_Engineとしてかなり取っ付き易いのでもっと皆に弄って遊んで欲しいですね。
158: 2021/06/07(月)00:31 ID:kBKigIMN(1) AAS
分岐器で開発部門特製ソフトが発売されると大々的にCM打たれてますが
これを機にエディター系のジャンルが流行ってくれればなーと個人的には思いますが
カルネージハートは検索しても出てこないし、ヒューマンリソースマシーンとか
7ビリオンとか別に話題になってないみたいなんで、
おじ様達にちょっとヒットするくらいなんでしょうか

OpenBoRのほうはジャンプと攻撃のみでシンプルに楽しむ、王道2Dを弄っております
足場の端っこに立った場合のAnimとか用意してあって、OpenBoRの奥深さにいまさらながら驚いています。
1-
あと 500 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s