[過去ログ] ☆ベルトアクション作成 Beats of rageスレッド☆ (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
916
(1): 2016/01/18(月)00:14 ID:pRwsbPGd(1) AAS
便利なスクリプトの紹介です。
@script
void self = getlocalvar("self");
if(frame==0){
float MHealth = getentityproperty(self,"maxhealth");
float Health = getentityproperty(self,"health");
if(Health <= MHealth/2){
changeentityproperty(self, "animation", openborconstant("ANI_xxx"));
}
}
@end_script
これをキャラのModel.txtのAnim_Specialなどに続けて記述すると
自分の体力が満タンから2分の1以下になると”Anim_XXX”を実行するというものです。
途中のMHealth/2を/3などにすれば3分の1にできます。
917
(1): 2016/01/18(月)15:32 ID:Nts35QUN(1) AAS
>>915
>>916
いいですね!
こういう紹介ありがたいっす。
スクリプトとかキャラ弄りはマジ楽しい。
918: 2016/01/19(火)18:13 ID:qyypo4PZ(1) AAS
公式サイトのフォーラムに出ているものを少し改変しただけなので、本来、そちらのリンクを書く方がいいのかもしれませんが。
キャラの距離で技(Anim_RunAttackなど)を変更するスクリプトを紹介します。
@script
void self = getlocalvar("self");
void target = findtarget(self);
float x1 = getentityproperty(target, "x");
float x2 = getentityproperty(self, "x");
float z1 = getentityproperty(target, "z");
float z2 = getentityproperty(self, "z");
if(frame == 0){
if(z1-z2<20 && z1-z2>-20 && x1-x2>-100 && x1-x2<100){
changeentityproperty(self, "animation", openborconstant("ANI_FREESPECIAL5"));
}
}
@end_script
これは、距離+-100ドット奥行き+-20ドットの範囲に敵がいる場合、
FREESPECIAL5 を実行するというものです。該当する数字を変えれば距離の調整もできます。
もともとCancelやFollowコマンドなそ用意されていますが、
「この距離ならこのアニメ」と直感的に使えるので便利です。
919: 2016/01/20(水)00:06 ID:iLrP6Agg(1/2) AAS
外部リンク[php]:www.chronocrash.com
”(Bloodbane's) Simple Scripts”
公式ページのシンプルなスクリプト
使い方は簡単で、DLしたファイルを DATA/SCRIPTS に入れ
使用したいキャラのModel.txt のヘッダー(Healthなど設定するとこ)に
animationscript data/scripts/Script.c
と記入。
Anim IdleやAnim Walkのところに @cmd ClearL

あとは、使いたいコマンドを好きなAnim XXXで使う。
例えば shooter {projectilename} {x} {y} {z} {Vx} {Vy} {Vz}
anim Attck1
@cmd shooter "knife" 30 40 0 2 0 0
のように記述するだけです。
もともとCustKnife や ThrowFrame といったコマンドが用意されていますが、
@cmd なら その場で"Knife" をキャラの前方(x,y,z)に好きなスピード(Vx,Vy,Vz)で投げる。
といったことができるので、フレーム数を数えて指定しなくて良い上、
複数行記述すれば その数だけ投げることができます。
Z軸の+-を使えば扇状に投げることも可能。

私も勉強中ですが、スクリプト入門にいかがでしょうか?
920
(1): 2016/01/20(水)13:37 ID:iLrP6Agg(2/2) AAS
attack 0 0 100 100 0 0 0 0 30 0
こんな感じにコマンドを使えば、攻撃がヒットしたとき 自キャラと敵だけ
一瞬(30の部分)停止して攻撃ヒットの確認と「手ごたえ」感がでますが、
下のようなモデルを作り、CustEntityやSubEntityを使って表示させれば、
カットイン(全てのキャラが一時停止)ができます。

適当な名前txt 例 Insert.txt( Data/chars/Insert/Insert.txt 等)
システム側の Model/txtにも登録忘れずに。

name Insert // 名前
type text // テキスト扱い
subtype noskip // ボタン連打で省略できない
lifespan 0.3 // およそ0.3秒
setlayer 99 // 一番手前に表示(必須では無い)

anim idle
loop 0
frame data/chars/Insert/Insert01 // 表示したい絵など

LifeSpan を 1にすれば約1秒です。
超必殺技発動の際のカットインなどにいかがでしょうか?

>>917
私もキャラを弄るのが大好きで(人様が作られた物ですが)、
ここにアッパー欲しいなとかエフェクトが地味だから火柱上げちゃおう等
実際プレイ時間より長く楽しんでおります。

潜在的なファンは多そうなので、もう少し広まって欲しいですね。
921: 2016/01/21(木)07:52 ID:m68wHYrt(1) AAS
>>920
めっちゃありがたいです。
日本語の解説サイトはなかなか
見つからないので・・・

自分も、もっと広まってほしいな、と画策中です。
922: 2016/01/27(水)08:07 ID:A19eTk2l(1/2) AAS
訂正。

> Subject_to_scrren 1(キャラが画面から出てゆかない) ×

Subject_to_Screen 1 ◎

似たようなものに、

OffScreen_NoATK_Factor 1

これを遠距離攻撃を持った敵やNPCのmodel.txtヘッダーに記述することで
画面外でから戦闘することをある程度防ぐことができます。
レンジ攻撃(遠距離)を持った敵が延々と画面外から攻撃してきたり、
NPCが画面外で敵をフィニッシュしてしまうことをある程度防げるようです。

私は 犬キャラをNPCとして設定して、
主人公のFreeSpecialで呼び出すように組み込み。
一人プレイでも寂しくなーいwという風に楽しんでます。
923
(1): 2016/01/27(水)09:25 ID:A19eTk2l(2/2) AAS
void main(){
char name="Null";
void self=getlocalvar("self");
void x=getentityproperty(self, "x");
void z=getentityproperty(self, "z");
int e=rand()%20+1;
if (e>=19){ name="1up";
}else if(e>=18){ name="Red";
}else if(e>=15){ name="Green";
}else if(e>=11){ name="Pink";
}else if(e>=6){ name="Blue";
}else if(e>=2){ name="Black";
}else { name="Explode"; }
clearspawnentry();
setspawnentry("name", name);
setspawnentry("coords", x-openborvariant("xpos"), z);
spawn();
}
このスクリプトを適当な名前で(ItemGet.c など) DATA/Scripts フォルダに作成
適当な回復アイテムのmodel.txt(apple.txt など)のヘッダー部に
didhitscript data/scripts/ItemGet.c と記述
すると、例でアイテム apple を拾うとランダムでいくつかのアイテムやNPCが出現します。
(もちろん出現するものはmodel.txtキャラ側とmodel.txtシステム側で必要ですが。)
例では 低い確率で 1UP と Explode あとは 順次 色の名前のアイテム となっています。
924
(2): 2016/01/27(水)17:36 ID:U8QU0Foo(1) AAS
シャカセッポーになりますが、
いちいち時間がかかるパックなんてしてらんねーヨとお嘆きの貴兄に
Borpak.exe を使ってアンパックした dataフォルダをopenBor.exe と同じフォルダに移動
PAKフォルダ内に 新規テキストで 例:00_test.txt を作成(内容は0kb)
それを 00_test.PAK とリネーム
あとはいつも通り BoRを起動すると メニューに 00_test と出ますので
それを選べば、openBoR.exe と同じ場所の data が実行されます。
バグ取りなど調整ができたら borpak.exe を使って正式にパックすれば持ち運びに便利になります。

注意点として、PAKフォルダに その他のPAKファイルが入っている時は
その他のPAKファイルを選んでも openbor.exeのフォルダにある dataフォルダが優先して実行されますので
その他のPAKファイルで遊ぶときは、dataフォルダをリネームか退避するなどして下さい。
925: 2016/01/28(木)05:46 ID:fiPaTMVc(1) AAS
>>923
おもしろいっすね
さっそく組み込んでみます

>>924
だいぶ助かります

ありがたや、ありがたや
926: 2016/01/29(金)09:30 ID:ER/8dh97(1) AAS
アイテムのスクリプト例( ItemGet.c )の中で

int e=rand()%20+1; // "e" に 0〜20 までのランダムな数字に+1 を入れ
if (e>=19){ name="1up"; // "e" が 19 以上なら アイテム"1up" が発生
...
}else if(e>=2){ name="Black"; // "e" が 2以上なら アイテム"Black"
}else { name="Explode"; } // どの条件にも当てはまらなかったら "Explode"(爆発)

といった内容なのですが、結構な確率で 1up と 爆発が発生するんですよね。
rand()%20 の 20 部分を 50 などにして 45以上なら 1up 、40以上ならRedなどにすれば
もっと分散するのかもしれませんが、そこまでするのも面倒なので実験してません。

>924については、最後の説明のように、openbor.exe と同じ階層に data フォルダさえあれば
それが優先的に実行されるようなので PAKフォルダに 00_test.pak を作成しなくても、
その他何らかのPAKファイルだけで良いのですが、うちの環境ではコンフリクトを起こすので
空のテキストファイルを 〜.PAK とリネームして使ってます。
927
(1): 2016/02/03(水)10:06 ID:WVUevt2f(1/2) AAS
Flash.txt に火花や液体のキャラを toss するように組み込むことで、
攻撃がヒットするたびに火花やその他設定したものが飛び散ります。
ナイトスラッシャーXで効果的に使われてましたね。
組み込み方は簡単で飛び散らせたい物をキャラ.txtで作り、あとはtossするだけです。
anim idle
custbomb Spark # 火花キャラ
tossframe 1 1
quakeframe 1 1 1 # 画面が揺れる 酔うので無くてok

次の例は当該キャラはゲーム内で重力の支配を受けない(らしい)というもの
antigravity 100 #100で100% 20なら20%
anim idle
followanim 1 # 攻撃判定が何かにあったたら Follow1 を実行
followcond 1
loop 1
Attack 0 0 20 10 0 0 1 0 10 5
frame data/chars/can/flycan.gif # 空き缶が飛んでる絵
anim follow1
jumpframe 0 0.5 -1
seta 0
frame data/chars/can/empcan.gif
この例では 空き缶が飛んでいって、敵その他にあたると上空に弾かれるというものです。

結構まえですがopenBorStatsが 5.3になって
ムゲンのAirファイルが読めるようになりましたね。
これとSAEがあればキャラ作り困ることは無さそうですね。
928: 2016/02/03(水)10:12 ID:WVUevt2f(2/2) AAS
キャラといわずに Entityといった方が分かりやすいかも?
誤字脱字多くてすいません。
929
(1): 2016/02/03(水)19:30 ID:Of58daPq(1) AAS
>>927
ムゲンのAirファイル使えるのは初耳!
ありがとうございます
930: 2016/02/04(木)22:29 ID:AjqZ8VCg(1) AAS
>>929
ムゲンのモーション?のカテゴリごとに Anim 〜と分けてくれるので凄く便利ですよ。
立ちモーションなどは Anim Idle とopenBorに標準の名前も付けてくれます。
BBoxとAttack、各種エフェクト(GIFに変換はしてくれる)には未対応のようですが、
OffSet はインポートしてくれるので本当に助かります。
931: 2016/02/05(金)01:35 ID:l7vrlrLR(1) AAS
すいません

openBor Stats v 5.3 x

openBor Stats v 0.53 ◎

でした。
932: 2016/02/08(月)15:14 ID:q4h/3jF6(1) AAS
openBor Statsを使用される際は、ファイルネームにスペースが入ってはダメです。

例) /my mod test/data ×
/my_mod_test/data ◎

全角文字もダメです
こういうツールにありがちですが、同じファイル名があったりしても
問答無用で上書きしますので、テスト用にデータフォルダを作るか
必ず各種データのバックアップをしてから作業しましょう。
933: 2016/02/09(火)13:01 ID:mXLiuDfI(1) AAS
何回か間違えて上書きしちゃって
呆然となったからなあ・・・
バックアップしといて損はない
934: 2016/02/10(水)23:03 ID:9HfKrQQ/(1/3) AAS
anim 中に別な anim を作動させる
例)
anim RiseAttack #起き上がり攻撃 ダウン中に↑+A
drawmethod 224 272 #絵のサイズ調整(必要なら)
subentity Tburst2 #怒り爆発的な背景
spawnframe 0 #上のTburst2 を表示
delay 7
offset 62 79
frame data/chars/cptcmd/308.gif #起き上がりに攻撃前モーション
@cmd changeentityproperty getlocalvar(
935: 2016/02/10(水)23:09 ID:9HfKrQQ/(2/3) AAS
途中送信になってしまいました。

@cmd changeentityproperty getlocalvar("self") "animation" openborconstant("ANI_FREESPECIAL3")
# @cmd を使って FreeSpecial3 に移行
offset 40 64
frame data/chars/cptcmd/31.gif #上の@cmd を使うためのダミー

changeentityproperty(entity, propname, values)
最初からopenBoR に用意されているコマンドなので Script.txtなど要らないのがメリットですね。
Cancel 0 1 0 A FreeSpecial3 でも同じなんですが、 ANI_ATTACK4 や ANI_SLIDE などにも移行できるので
まぁまぁ便利です。
936
(1): 2016/02/10(水)23:22 ID:9HfKrQQ/(3/3) AAS
Anim Run # 走る
loop 1 #ループする
frame data/chars/cptcmd/0.gif #走り始め1
frame data/chars/cptcmd/1.gif #走り始め2
frame data/chars/cptcmd/2.gif #走り始め3

frame data/chars/cptcmd/3.gif #走る1
frame data/chars/cptcmd/4.gif #走る2
frame data/chars/cptcmd/5.gif #走る3
@cmd updateframe getlocalvar("self") 3 #3番目のframeに跳ぶ
frame data/chars/dummy/empty.gif #@cmd使用のためのダミー

loop 1になっていると上の例では本来 0.gif〜5.gifまでを繰り返し表示するのですが
updateframe(entity, int frame) を使うことによって、
指定したframeまでloopするアニメをスキップできます。
0.gifから始まり5.gifまでくると次は3.gifからアニメが繰り返される。
途中別な動作をすると、0.gifからのloopに戻ります。
937: 2016/02/16(火)13:33 ID:Mmbd7MlP(1) AAS
anim pain
@script
void c=rand()%20+10;
if (frame==0 && c>20){
changeentityproperty(getlocalvar("self"), "animation", openborconstant("ANI_PAIN2"));
}
@end_script
sound data/chars/yagumo/sounds/dm01.wav
bbox 4 6 46 82
delay 14
offset 28 92
frame data/chars/yagumo/pain.gif

これまでのレスを軽く組み合わせた例です。
攻撃を受けた際に実行されるアニメ(Pain)を
ランダムで"ANI_PAIN2"に変えるというもの。
体力の参照(if(Health <= MHealth/2){ }など)を組み合わせれば、
最初は元気で後半ヘロヘロ(ANI_FAINTなど)になる
ランダムで必殺技不発(ANI_FREESPECIALの代わりにANI_CANTなど)
といった変化をつけることも可能になりますね。
938
(1): 2016/02/17(水)01:08 ID:Uo9xsPxr(1) AAS
素材がハンケンテキニアレな物が多いので気軽に実例を挙げられないのが残念ですね。
基本はパラパラ漫画なので、素人でも根気さえあれば〜1週間でベルトアクションが
作れるようになるのがとても魅力だと思うのですが、コテハンファイトはじめ、ロケットヴァイパーや
ナイトスラッシャーX、ナイト&ドラゴン、F.F.ゴールドなど
名作を楽しむだけで満足してる方も多いかもしれませんね。
939: 2016/02/18(木)11:31 ID:XQ0KVPUH(1) AAS
>>938
言えてますな
ChronoCrash(公式)開いてはデモ版・完成版かまわず遊んでます
アイデア次第でシューティングなんかも作れたり、楽しいですね
940: 2016/02/20(土)11:30 ID:3qKkepl/(1) AAS
ベルトアクションに限らず、2Dアクション(マカイムラ的な)も作れるんですよね。
グールズンゴースツだったかな、あとウ゛ァンパイアハンターズとか(似た名前のmod多いけどアクマジョウのやつ)。

公式サイトに新作?で濃いキャラ達の饗宴がアップされてますね。
941
(1): 2016/02/24(水)14:41 ID:4pT4ARQg(1/2) AAS
すいません、
フォルダごとGIFのパレットを統一してくれるソフトなど
ご存知ありませんか?
今は、パレットをいじる際には
ペイントソフトで開く→インポートパレット
ということを1枚1枚やっているのですが、
フォルダごとまとめてできたら嬉しいなと思うのですが、
なんとなく高価なペイントソフトでマクロを組んだりすれば出来るのかな?
とも思うのですが、できたら1万円以内くらいであると嬉しいのですが。
フリーであったら感謝感激です。どなたかご存知ありませんか?
942: 2016/02/24(水)14:43 ID:4pT4ARQg(2/2) AAS
なんか ですが ばかりですいません。
943
(1): 2016/02/27(土)23:36 ID:kAaR8idn(1/2) AAS
ロケットヴァイパー2(無印)のスクリプトがかなり面白いことしてます
プレイヤーキャラが駆け抜けるアクションをすると直線状に並んだ敵キャラ複数が硬直、
プレイヤーキャラがアクションを終了すると硬直した敵にダメージが入りバタバタと倒れる
これを普通にやろうとすると、敵の喰らい硬直に PAIN8にDelay 1000など を組み込んで表現するんですが
全ての敵model.txtに組み込まなければいけないので結構面倒です。
そこでスクリプトを使って、プレイヤー(もしくは敵)の特定の攻撃が当たると
Delayが自動的に延びる(結果硬直する)効果を付加するようです。
似たようなものでFALLでは無く吹っ飛ぶ(moveを強制的に付加する)ものもあります。
キャラごとにスクリプトが分けてあって見やすいので、興味がありましたら覗いてみてはいかがでしょう?
944: 2016/02/27(土)23:59 ID:kAaR8idn(2/2) AAS
覗くったって何処にあるの?という方もいらっしゃるかと思います。
たいていの物は公式フォーラムでメガコレクションなど検索するとURLが出てます。
945: 2016/02/29(月)12:03 ID:O7dbBOI2(1) AAS
>>941
俺の場合、1枚1枚コピペでやってますな…

>>943
他MODの中身のぞくと結構おもしろいですよね
参考になりますわぁ
1-
あと 57 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.015s