☆ベルトアクション作成 Beats of rageスレッド☆ (658レス)
☆ベルトアクション作成 Beats of rageスレッド☆ http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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
90: 名前は開発中のものです。 [sage] 2021/04/14(水) 00:12:02.00 ID:Bl01iZfT Anim Pain @script int Crnd = (rand()%20)+10; if (frame==0 && Crnd>26) { changeentityproperty(getlocalvar("self"), "animation", openborconstant("ANI_PAIN4")); }else if (frame==0 && Crnd>18){ changeentityproperty(getlocalvar("self"), "animation", openborconstant("ANI_PAIN3")); } @end_script 例ではAnim Pain1(攻撃を受けた際のリアクション) 本来Attack2 なら Pain2…Attack4 → Pain4 など対応するAnimは固定されいてる(と思う)。 changeentityproperty(を使って強制的に別なAnim を実行させてみる。 まあ気分転換くらいなものですが、攻撃のリアクションを一つ一つ設定するのって コピペで良いとはいえ結構労力つかうんで。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/90
91: 名前は開発中のものです。 [sage] 2021/04/14(水) 00:20:22.41 ID:Bl01iZfT 上の例だと、もちろんAnim Pain3とPain4は設定しておかないと駄目です。 いろいろと検索していると、ユニティとかアンリアルとか目にしますが、 一つのゲームを完成させるとなると結構な労力になると思うのですが、 OpenBoRって基本ゲーム(BeatsOfRage)を土台にすれば、ともすれば いわゆるツクールより楽にアクションゲームを完成させることが出来ると思うんです。 やはり知名度なんでしょうか?他人のプログラムの改変であっても、一個のゲームまで いかなくてもキャラ一つでも弄ってみたら嵌ると思うんだけどなぁ スクリプトとか小難しく言っちゃうのが駄目なのかな http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/91
92: kt住江 ◆/VMXjFOJew [sage] 2021/04/16(金) 03:27:16.33 ID:kkjyE+N0 最近復活しました、kt住江です。 長らくスレから遠ざかってしまい、申し訳ありません。 現在新作としてダブルドラゴンのゲームを創意開発中です。 ↓開発中のダブルドラゴン用敵キャラ ttps://twitter.com/ktsuminoe/status/1379416846458253314/photo/1 そして、kt住江のゲーム保管庫が出来上がりましたので、 皆さま、僭越ながら宜しくお願いします。 ttps://amberusagi.theblog.me/posts/13123474 https://twitter.com/5chan_nel (5ch newer account) http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/92
93: 名前は開発中のものです。 [sage] 2021/04/18(日) 00:19:35.36 ID:FUfakm3o おつかれさまです。 早速、DLさせていただきました。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/93
94: 名前は開発中のものです。 [sage] 2021/04/18(日) 20:34:55.61 ID:FUfakm3o kt住江氏の作品はやはり流石の出来ですね。 アクションのバランスも良くて、強技出してればクリアなんて事は無く。 微妙なmodにありがちな敵に殴られる位ならスペシャル連打でいいや、なんて事が無いのが素晴らしい。 敵ごとにちゃんと対処しないと1クレジットクリア出来ない、絶妙なバランスで、とても楽しませて頂きました。 グラに関しても解像度が高ければ良いってものじゃ無いのがとても良く分かります。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/94
95: kt住江 ◆/VMXjFOJew [sage] 2021/04/19(月) 18:52:55.18 ID:bjKqc+m0 >>93さん DLしてくださり、ありがとうございます。 ごゆっくりと、ゲームをお楽しみください。 >>94さん ありがとうございます。そう言っていただけると、開発したかいがあります。 現在、ダブルドラゴンのゲームを開発中ですが、 2012年の『ギコタク』から続いて『カオスファイト』『コテハンファイト』 『アインバイン』『くにおくんLA』『巫女と吸血鬼』『削除隊』と7作も作ると、 流石によくある攻撃を仕掛けてくるザコ敵はともかく、 中ボス格の敵キャラのアイディアが狭まってきました。 毎回、どんな攻撃をしてくる敵キャラを出そうかというアイディアで悩んでいますので、 僭越ながら、敵キャラのアイディアを出していただけると大変助かります。 参考に開発中のダブルドラゴンの粗筋をご紹介します。 ダブルドラゴン4でリー兄弟がレネゲーズを壊滅させた数か月後・・・ 西海外の町、サンフランシスコに突如出来上がった格闘道場『フェニックス』の 稽古中を捉えた写真には、死んだはずの宿敵ウィリーの姿が映っていた。 ウィリーが蘇った真相を探るため、ダブルドラゴンはサンフランシスコへと乗り込む! http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/95
96: 名前は開発中のものです。 [sage] 2021/04/20(火) 22:57:09.31 ID:N5Bx9E2D @script { if (frame == 48) { void vEnt,self = getlocalvar("self"); int dx =100,dy=0,dz=0; int dir = getentityproperty(self, "direction"); int tgtdir = 0; if(dir==0) { dx = -dx; } setlocalvar("T"+self, findtarget(self)); void target = getlocalvar("T"+self); void TType = getentityproperty(target, "type"); tgtdir = getentityproperty(target, "direction"); if( getlocalvar("T"+self) != NULL()&&TType == openborconstant("TYPE_ENEMY")) { int Tx = getentityproperty(target, "x"); int Tz = getentityproperty(target, "z"); changeentityproperty(self, "position", Tx+dx, Tz+dz, dy); if (dir == 0) { if (Tx+dx > dx) { changeentityproperty(self, "direction", 1); } else { changeentityproperty(self, "direction", 0); } } else { if (Tx+dx > dx) { changeentityproperty(self, "direction", 0); } else { changeentityproperty(self, "direction", 1); } } } else { changeentityproperty(self, "animation", openborconstant("ANI_FAINT")); } } } @end_script http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/96
97: 名前は開発中のものです。 [sage] 2021/04/20(火) 23:12:55.15 ID:N5Bx9E2D 改行多杉かと思ったら通った。 プレイヤーの周囲にいるTYPE_ENEMYを探して、 いたらENEMYの後方100ドット(int dx=100)にテレポートする。 最初のFrame[==48というのがテレポートを実施したいFRAME数 ここをFrame==0にすれば、いきなり跳ぶ 下の方にANIM_FAINTというのがあるが、これは該当する敵が居なかったときに 移行するAnimで、別にANIM_IDLEなどでもよいし他の技でもいい。 まあ、Move 100とかしてFlipFrameで反対向きにしても、それっぽい事はできるんですけどね。 スクリプトだと結構いい感じにテレポートしてくれるんですが、 どこかに嵌ってる敵にも反応してしまいます(そのまま穴に墜落とか)。 画面の解像度数を拾って+−補正すれば良いのですが、とりあえず、 敵の座標を拾って、そこに移動(プレイヤーの座標を書き換える) 条件を満たさなければ別なAnimに移行する この辺が分かり易ければよいかなと思います。 分かり易く http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/97
98: 名前は開発中のものです。 [sage] 2021/04/21(水) 00:05:05.46 ID:fX+bN6sg X Frame[==48 O frame == 48 or frame==0 X ANIM_FAINT O ANI_FAINT X ANIM_IDLE O ANI_IDLE 間違えると落ちるとこばかりミスった、すいません。 まだ試してませんが、敵に仕込んで跳び先(TType)をTYPE_PLAYERにすれば 後ろにテレポートしてくるウザイ奴にできるかもしれません。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/98
99: 名前は開発中のものです。 [sage] 2021/04/21(水) 00:57:17.50 ID:fX+bN6sg >>95 見逃していました。いつも楽しい作品をありがとうございます。 DDシリーズとても楽しみです。 どの作品でも、敵キャラの動きに表情というか個性を感じられ 予備動作や「間」にとても愛情を感じる事ができ、 次はどんな技を使ってくるんだろう?と敵を倒さずウロウロしてみたりしてます。 さっさと倒して駆け抜けようとしても強技連打が通用せず意外と歯応えがあったりと バランスの妙に感心するばかりです。 私は、プレイヤーキャラにテレポートや分身をくっつけて激しく連打など プレイヤーの強化しか考えていないので、敵のちょうど良い塩梅の動作というのは 仰るとおり非常に難しいことだと想像できます。 クライムバスターズというMODの敵は多彩な動きをするんですが、 画面を斜めに横断するように攻撃してきたり、空中から遠距離攻撃連打してきたり プレイヤー側の対処する技がSpecial位しか無く、ずっと作業になりがちなちょっとアレなバランス 敵の無敵が長すぎるのもフラストレーションになるでしょうし、難しいですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/99
100: 名前は開発中のものです。 [sage] 2021/04/21(水) 01:02:42.96 ID:fX+bN6sg maxattacks {max} Default is 4. maxattacktypes {max} Sets the maximum number of attack types. PAIN,FALL, RISE, BLOCKPAIN and DEATH animations limit is also set together with this. {max} is number of available types. Default is 10 & maximum value is 99. maxfollows {max} Default is 4. maxfreespecials {max} Default is 8. maxidles {max} Default is 1. maxwalks {max} Default is 1. maxbackwalks {max} Default is 1. maxups {max} Default is 1. maxdowns {max} Default is 1. http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/100
101: 名前は開発中のものです。 [sage] 2021/04/21(水) 01:20:08.86 ID:fX+bN6sg 上の設定はMODELS.TXTに記述することで効果が得られます。 Entity(プレイヤーや敵など)で利用するコマンドの上限を設定します。 AttacksとFollows、Freespecialsは何も考えずに99とかにしておいて良いかと思います。 Attacksは単純に通常攻撃の手数に影響します、ただコンボは12までしか繋がらないようなので そこまで多くなくても良いかと思います。 FreespecialはCancelや@cmdの跳び先など使い勝手が良いので、ついつい増えがち。 FollowsもFreespecialと同じく FollowanimやFollowcondなどで良く使う事になるので キャラの方向性が落ち着くと山のように増えることが結構あります。 Idle以降はまあ趣味の範疇かなとも思いますが、@cmdの跳び先として便利なのは他と一緒。 たぶんですが、旧型のPCだとメモリの関係上初期設定が少なめになってるかと想像します。 現行のPCなら全部99でも良いのかなと思います。 私の環境で重めのMODでも1.7ギガ程度のメモリ使用量です。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/101
102: 名前は開発中のものです。 [sage] 2021/04/21(水) 01:27:48.11 ID:fX+bN6sg 逆にMODELS.TXTで設定せずに Anim Pain20 などと記述してしまうと簡単に落ちます。 記述に間違いがないのに落ちるーと悶絶することもあります。 中には Logに何も出力されず、ただ落ちることもあります。 とりあえず99で良いかもしれません。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/102
103: kt住江 ◆/VMXjFOJew [sage] 2021/04/21(水) 19:33:21.95 ID:J0YwHZ/b >>99さん ありがとうございます。毎度敵の攻撃パターンには特に気合いを入れて作っていますので、 そう言っていただけると感無量です。 貴重な情報ありがとうございます。クライムバスターズMOD、後ほど見てきます。 わしのベルトアクション技術は、専らダブルドラゴンやベナアックルで勉強しました。 特にベアナックル2は敵の構成パターンに飽きさせない工夫があり、 例えば1面中ボスのジャックは、最初は単体で登場しますが、 次の3面では鞭女2体を連れて、7面ではデブ2体と等、 どの敵キャラも登場する度敵の構成パターンが変わるため、 同じ攻略法が通じない綿密な攻略が必要になるため、非常に参考になります。 くにおくんLAもベアナックル2を参考に、意図的にザコ敵の配置を施してあるんです。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/103
104: 名前は開発中のものです。 [sage] 2021/04/23(金) 22:06:45.41 ID:uM7p5A0b 敵の種類をいくつか混ぜてバラっと設定してるMODが多い中(もちろん完成させて発表されてるだけで凄いです)。 くにおくん達はプレイしていて楽しい感覚が妙にクセになるんですよね、 もう一回プレイしようと思えるバランスは流石です。 オーソドックスな作りながら攻守のテンポがよいのは BeatemUp UltimateAllianceでしょうか、 大味ながらつい遊んでしまいます。 これBorpak.exeだけで解凍しようとするとエラーで解凍できないのですが(一部ファイルネーム長すぎ) OprnBoR StatsのFILE→Import PAKで解凍するとXtractフォルダに出力されます。 StreetRage Z3はプレイヤーがレベルアップするタイプ、後半ほぼ無敵になるのが気持ち良いです。 というかレベルアップ(スコアを稼ぐ)しないとボスの攻撃が理不尽系ですw RescueCommandも敵の掴み攻撃をレバガチャで抜けるというギミックに感心します。 Crime Bustersは現在としては古き良きとでも言うような感じです。 C社やS社のキャラを使ったものでは、RocketViper2が模範解答みたいな存在に感じます。 ファンタジー作品など他にもいろいろありますが、技術を駆使する方、 独自の世界観で作を重ねている方や、細かい事はいいから敵をぶっ飛ばすの楽しいでしょって作品、 なにより愛情をこめてMODを作ってらっしゃる方が多いように感じ、 それがOpenBoRの魅力の一つだと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/104
105: 名前は開発中のものです。 [sage] 2021/04/27(火) 00:57:48.13 ID:6v2tN2Sr 最近すごいなと感じたもの KoF beat em up plus 操作可能キャラ39、敵もムゲン系からだと思うのですが、よく集めたなーという感じ KoFという位なので基本 S社のキャラやアレンジしたものが多いです。 スクリプトは使わずOpenBoRの基本機能だけで作られた正攻法作品、中を覗いてみると、 move、movea、movez など駆使して動きを表現しています。 Jumpframeを何故か使っていないので、格闘ゲームによくあるジャンピングアッパーのような 動作も movea(垂直方向キャラ座標変更)でこなしていて、まさにパラパラ漫画要領で アニメーションを作っているのが素敵です。 Anim Runにも move が記述されていて、フレームが跳んだような見た目なので、 手直しをしてキャラ作りの練習台にさせてもらうのも良いかもしれません。 ルート分岐やエンディングまでしっかり作ってある力作(200MB超)。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/105
106: 名前は開発中のものです。 [sage] 2021/04/30(金) 18:02:08.17 ID:81YP+Cwz @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"); void vSpawn=spawn(); changeentityproperty(vSpawn,"parent",self); changeentityproperty(vSpawn,"direction",sdir); changeentityproperty(vSpawn,"position",borx,z,y); } @end_script 画面の端からストライカーって感じのスクリプト http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/106
107: 名前は開発中のものです。 [sage] 2021/04/30(金) 18:09:21.33 ID:81YP+Cwz 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画面左端)から助っ人が登場 単純な事なんですが、標準コマンドだけだと意外と面倒。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/107
108: 名前は開発中のものです。 [sage] 2021/04/30(金) 18:18:44.10 ID:81YP+Cwz 訂正 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); changedrawmethod(self, "scaley", 256); changeentityproperty(self,"velocity",-1,0,0); } else { changeentityproperty(self,"velocity",1,0,0); } } @end_script 何故かストライカーがムーンウォークで登場してしまい悶絶。 その為Drawmethodを使って大きさを変えたりしてチェックする、デバッグ用スクリプト。 散々テストして結局、元の絵(gif)が左向き基準に描いてあっただけという 基本、OpenBoRのキャラ絵は右向き基準で描く事が多いので 左右向きが混在してしまうとOpenBoRは正しい処理しているのに こちらの脳がパンクするという事態に。 結構 Anim Turnなんかでもやっちゃうんですよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/108
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 550 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s