☆ベルトアクション作成 Beats of rageスレッド☆ (658レス)
上下前次1-新
105: 2021/04/27(火)00:57 ID:6v2tN2Sr(1) AAS
最近すごいなと感じたもの KoF beat em up plus
操作可能キャラ39、敵もムゲン系からだと思うのですが、よく集めたなーという感じ
KoFという位なので基本 S社のキャラやアレンジしたものが多いです。
スクリプトは使わずOpenBoRの基本機能だけで作られた正攻法作品、中を覗いてみると、
move、movea、movez など駆使して動きを表現しています。
Jumpframeを何故か使っていないので、格闘ゲームによくあるジャンピングアッパーのような
動作も movea(垂直方向キャラ座標変更)でこなしていて、まさにパラパラ漫画要領で
アニメーションを作っているのが素敵です。
Anim Runにも move が記述されていて、フレームが跳んだような見た目なので、
手直しをしてキャラ作りの練習台にさせてもらうのも良いかもしれません。
省1
106: 2021/04/30(金)18:02 ID:81YP+Cwz(1/4) AAS
@script
if(frame==3) {
void self = getlocalvar("self");
int borx = openborvariant("xpos");
int sdir = getentityproperty(self,"direction");
int y = getentityproperty(self,"a");
int z = getentityproperty(self,"z");
if (sdir == 0){ borx = borx+480; }
clearspawnentry();
setspawnentry("name", "estriker2");
省7
107: 2021/04/30(金)18:09 ID:81YP+Cwz(2/4) AAS
int borx = openborvariant("xpos");
changeentityproperty(vSpawn,"position",borx,z,y);
int sdir = getentityproperty(self,"direction");
if (sdir == 0){ borx = borx+480; }
結局、肝心な部分は上の2つで、パネル(背景)の座標を取得して、
テスト環境は Video 1(480x272)モードなので、
プレイヤーが右(sdir=1)を向いていれば borx(ステージを進んだ距離、画面右端)
左向き(sdir=0)なら(+480画面左端)から助っ人が登場
単純な事なんですが、標準コマンドだけだと意外と面倒。
108: 2021/04/30(金)18:18 ID:81YP+Cwz(3/4) AAS
訂正 X(ステージを進んだ距離、画面右端) O 画面左端
X(+480画面左端) O 画面右端
@script
if(frame==0){
void self=getlocalvar("self");
int sdir=getentityproperty(self,"direction");
setdrawmethod(self,1,256,384,1,0,0,0,0,0,0,0,0);
drawstring(120, 120, 4, sdir, 1);
if (sdir==0) {
// changedrawmethod(self, "flipx", 0);
省13
109: 2021/04/30(金)18:36 ID:81YP+Cwz(4/4) AAS
anim attack3
cancel 11 20 0 D A freespecial4
cancel 11 20 0 U A freespecial5
delay 6
offset 37 78
frame data/chars/erika/363.gif
〜
〜
delay 4
drawmethod alpha 1
省8
110(1): 2021/05/01(土)23:32 ID:ce6GRoi2(1) AAS
なんとなーく調べたら、drawmethodハイフンfillcolor R G B 各々0-255のようですね
drawmethod-fillcolor 0 255 255 で以降のframe コマンドのentityキャラが水色に塗り潰されて表示される筈ですが
現在、別な環境の為確認出来ずにいます。
drawmethodを上手く使いこなせれば、用意する絵的にかなり省力化できるんで
マスターしたいところですが、今のトコ自分で絵を用意した方が早いですね
111(1): kt住江 ◆/VMXjFOJew 2021/05/04(火)01:38 ID:UuKfeUKx(1) AAS
途中経過画像。開発は順調です。
Twitterリンク:ktsuminoe
>>110さん
いつもお疲れ様です。
アークシステムワークスの格闘ゲームによくある、
ストライカーまで実装可能とは、スクリプトは本当に凄いですねぇ。
Twitterリンク:5chan_nel (5ch newer account)
112: 2021/05/05(水)23:54 ID:+/eMzjlh(1) AAS
@cmd clearspawnentry();setspawnentry("name", "fire")
@cmd bindentity spawn() getlocalvar("self") 0 1 10 1 0 1
便利なことなんでもう一度
たったこの2行だけで(MODELS.txtにfireというEnityの登録は必要ですが)
自分にエフェクトを”くっ付ける”ことが出来ます。
上の例では”fire”というEntityを自キャラに重ねて表示します。
謎の数値 0 1 10 1 0 1 はBindentity(バインド)の座標 くっ付けるキャラ(Entity)の
X, Z, Y(A), 向き, 親のAnimと同期するか, キャラに被せるか背景にするか
難しいっぽいのが同期で、実は難しい事などなく、逆に効果的に使えるもので
自キャラ(親)とBindentityで付くEnitityに同じAnimが用意されていると、
省4
113: 2021/05/06(木)02:16 ID:/KeaSO9B(1/5) AAS
訂正 setspawnentry("name", "fire") X setspawnentry "name" "fire" O
@CMD でスクリプトやコマンドを直接呼び出す際は
コマンドに最初から設定されている 括弧やカンマ、ピリオドを消して
スペース記号(見えませんが)で区切って記述しないとエラーになることが多いです。
便利な反面、エラーがでるとかなりてこずります。
スクリプトを弄っていてエラー落ちが発生した場合、便利なのがLogフォルダの
Scriptlog.txt ここに、どのようなスクリプトが実行されているか出力されるので
エラー箇所を特定することになります。
114: 2021/05/06(木)02:24 ID:/KeaSO9B(2/5) AAS
括弧やカンマなど消すといっても getlocalvar("self") これは?
スクリプトや@cmdを使う際にさらに別なコマンドを使うときは
基本どおりの記述でよいので
@cmd bindentity spawn() getlocalvar("self") 0 1 10 1 0 1
この場合 spawn() と getlocalvar("self") は通常の記述
大元の bindentityについては括弧やカンマなど削除して記述します。
bindentity(spawn(), getlocalvar("self"), 0, 1, 10, 1, 0, 1);
本来あるべき姿は上のようになります。
OpenBoRのシステムに直接干渉するので、エラー(大概こちらの勘違い)のさいは
結構な手間になりますが、基本コマンド以上に色々弄れるのが痛し痒し。
115: 2021/05/06(木)02:47 ID:/KeaSO9B(3/5) AAS
>>111さん
すいません、あまりブラウザ更新しないので気付かずに居ました。
画像を拝見しました。
上からっぽくてすいませんが、
1枚の画像からも kt住江様の世界観や作風を大切になさる様が大いに感じられ
ワクワクが止まりません。
いつも人様のムゲンキャラを弄って消費してばかりの私にとって、
いつかは自分もと参考&励みにさせて頂いています。
既存のものを改変するのってとても簡単なので、ついつい人様の作品に弄って楽しんでばかりで
そのぬるま湯から抜け出せすにいます。
省2
116(2): 2021/05/06(木)23:33 ID:/KeaSO9B(4/5) AAS
@script
void self = getlocalvar("self");
int MP = getentityproperty(self,"mp");
setlocalvar("T"+self, findtarget(self));
if( frame == 0 && getlocalvar("T"+self) != NULL() ) {
void target = getlocalvar("T"+self);
void vAniID = getentityproperty(target,"animationID");
void TType = getentityproperty(target,"type");
int Boss = getentityproperty(target, "boss");
if(TType == openborconstant("TYPE_ENEMY") && Boss==0 && vAniID != openborconstant("ANI_DIE") && vAniID != openborconstant("ANI_SPAWN") && vAniID != openborconstant("ANI_RISE")) {
省13
117(1): 2021/05/06(木)23:43 ID:/KeaSO9B(5/5) AAS
上は、敵をNPCにしてしまうスクリプト
anim runjumpattack
followanim 9
followcond 1
attack 25 9 76 85 10 1 1 0 60 20
dropv 4 1
offset 31 91
frame data/chars/kunagi/399.gif
こんな感じで、攻撃がヒットしたらFollow9に跳ぶようにして
anim follow9
省14
118(2): 2021/05/07(金)00:13 ID:RxUWGAGV(1) AAS
上のスクリプトは元々、もっと複雑な仕様(使うにはアイテムを購入して消費)だったものを
簡略化したのでMPさえあれば連続使用できてしまう訳です。
さらには時間で元の敵に戻るということも出来るのですが、それにはMODELS.txtにて
専用 Entityを作成して、それを Bindentityしなければならないので、結構手間がかかります。
簡単に説明すると、Bindentityには必ずParent(親Entity)が必要、それを逆に利用して
透明なEntityをBindentityし、一定時間経ったら元のParent(Entity)の情報に上書きするというもの。
一瞬頭が混乱しますが、Bindentityの特性を理解すると「なるほどー!」となります
もちろんオリジナルは私などでは無く、D&D Rise of Warduke2015から拝借しました。
119: 2021/05/08(土)00:13 ID:S2juEpeY(1/4) AAS
少し前に、data/scripts/フォルダ下に特定のファイルを入れておくと自動で読み込まれ
優先的に実行されると書きましたが、Loading.c もその一つ
void main()
{
void s;
void value = getlocalvar("value");
void max = getlocalvar("max");
if(max==1){
return;
}else{}
省20
120: 2021/05/08(土)00:34 ID:S2juEpeY(2/4) AAS
didhitscript @script
void main() {
void self = getlocalvar("self");
void opp = getlocalvar("damagetaker");
if(opp != NULL()) {
if(getentityproperty(self, "animationID") == openborconstant("ANI_RUNATTACK")) {
if (getentityproperty(opp,"a")==0) {
changeentityproperty(opp, "nextanim", getentityproperty(opp, "nextanim")+360);
changeentityproperty(opp, "nextthink", getentityproperty(opp, "nextthink")+360);
setglobalvar(getlocalvar("self")+"_delayhit",1);
省8
121: 2021/05/08(土)00:41 ID:S2juEpeY(3/4) AAS
anim runattack
jumpframe 0 0 1 0
@script
if (frame==13){
void self = getlocalvar("self");
if (getglobalvar(self +"_delayhit")) {
setglobalvar(self +"_delayhit",NULL());
changeentityproperty(self, "animation", openborconstant("ANI_SPECIAL"));
}
}
省7
122: 2021/05/08(土)01:01 ID:S2juEpeY(4/4) AAS
jumpframe {Frame}{a}{x}{z}について
もともとキャラクター(Entity)の座標を直接変化させるには
Move(水平)Movea(垂直)Movez(奥行き)があり、
コマンド後に書かれたFrame 掛ける Moveの数値分座標が移動します(+なら進行方向 ーなら逆)
Move 0コマンドが記述されるまでFrameの度に移動しますので注意。
Jumpframeコマンドは、その名の通りジャンプに関するコマンドなのですが
指定したFrame(最初は0で数える)からスタートして、{a}{x}{z}分
自動で移動します。{a}を3などにすれば通常通りジャンプするのですが、
{a}を0にし、{x}{z}に+−数値を入れる事で、ジャンプせずに移動も可能になります。
すべる様にに移動するので、Moveではガクガクしてしまう動作も滑らかにすることができます。
省6
123: 2021/05/09(日)18:57 ID:uQy3TiTw(1) AAS
OpenBoR stats 0.53 では mugen のairファイルが読み込めて便利と以前に書きましたが
たまにファイルが灰色に表示され、選択出来なくなることがあります。
そんな時は無限用のファイターファクトリーでsffファイルを8bit用のデータでセーブしてやると
OpenBoRstatsでも読み込めるようになることもあります。
124: 2021/05/09(日)23:30 ID:1QV0D9Lf(1/2) AAS
>>118 ここで「## Charm」とありますが、「#」これ一つで以降に書かれたテキストはOpenBoRとしては無視する
いわゆる「コメント(人間が読んだときの栞や説明)」となります。
で一つ「#」を使えば十分なのですが、大量に使って作成者が目印にしたりもします。
私は基本「##」2つ連続で使うのですが、一時的に使わないけど、また後で使うかもなコマンドの最初に
# jumpframe 0 0 1 0
こんな感じに使う事で、一時的に無効にすることができます。
で、OpenBoR stats を使っていると、#を使っているとたまに行ごと削除されてしまうことが有り
それを防ぐおまじないとして##2つ重ねています。
上下前次1-新書関写板覧索設栞歴
あと 534 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.030s