忍者ブログ
色々とダメな人がこれ以上ダメにならないように努力しながら自爆する所、かなあ?
[147] [146] [145] [144] [143] [142] [141] [140] [139] [138] [137
Posted by - 2024.04.24,Wed
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by Azmix - 2010.07.07,Wed
まえおき

パクリ大会ダメ、絶対。許可は必要だよ!
でたらめ書いてあっても泣かない(俺も)。罵ってもいいのよ?
自殺ダメ、絶対。


Azmixの超適当改変教室

第二回「特殊ルールで死ぬ方法」

…あれ?俺、ストーリー動画支援の企画で始めようと思っていた気がしたんだが(汗
まあある意味AIいじり他への一歩とも言える内容にもなるかもしれないし?

ということで柴田ゆー様からの質問。
9条の人の大会とか発想すごいですね。っつーかまず貴方は最終k(削除

そして宣伝。ヤンデレの押しかけなのは様とジョンスの即席兄妹と純情魔理沙とレイズ乙の人間交差点。
「それがおそらく、僕らの日常」
http://www.nicovideo.jp/mylist/18487011





閑話休題。

特殊ルールです。NG行為。自分は死ぬ。
相手が死ぬわけではないので自分の記述をいじるだけの簡単な作業です。

で、済ませてしまうのもアレなので少しだけ余計な部分とか。


今回のポイント。
Statedef -1
Statedef -2
Statedef -3
の部分。
常時監視ステートとか呼ばれてます。
何と言うとわかりやすいだろうか…割り込み命令集?

常に -1>-2>-3>-1>… と巡回しながら条件を満たした命令を処理する
キャラを動かすための大事な部分なわけですわ。

っつーかこの部分でコマンド入力やら何やらの裏処理を一手に引き受けているわけで。
AIもここ。

主な用途は
-1:手動操作のコマンド入力受付。AI(人による)。
-2:補正。ヘルパー処理。特殊なゲージ関係。変数処理関係。
-3:AI他(人による)。着地音ややられボイスとかに使われるケースも。

こんなことやってるんだよ、程度に頭に入れておいてくださいませ。





さて、ようやっと本題の自殺です。

今回使うのは-2ステートです。
まず構成ファイルの中から「Statedef -2」で検索を。

存在していなかったら自分で

[Statedef -2]

って好きなところに作っちゃおう。新規にファイル作るのもいいかも。
DEFファイルに登録するのを忘れちゃ駄目ダゾ?(殴



★STEP1 はうつー自殺

死ね、って命令は存在しないのでどかーんとライフを減らす方向で。

例)
[State -2,自滅]
type = Lifeadd
triggerall = roundstate = 2
trigger1 = (条件)
value = -999999

Lifeaddの詳しい説明は「ステート内容」
http://homotaro.s44.xrea.com/sctrlref.htm

Roundstateの詳しい説明は「トリガー内容」
http://homotaro.s44.xrea.com/triggerref.htm

それぞれ参照ということで。

要はラウンド中に(厳密には少し違うけど)条件を満たしたらライフに-999999を加える。即ち999999ダメージ。
減少量はお好みで。オーバーフローの値もあったけど忘れた(ぉぃ

roundstate = 2 が入っていないと勝利確定時に条件を満たしたら死ぬ可能性有り。




★STEP2 自殺の条件

9条の人のを例に「多分こんなことしてるんじゃね?」とかの解説とか?



●憲法9条を守れない奴は死ねトーナメント
●世の中手だけは出しちゃダメトーナメント

攻撃したら死ぬ。これはwikiにも書いてあるので適当に。

trigger1 = movetype = A

のみですな。但しこれも書いてある話だけど
A属性が攻撃以外の行為にも設定されているキャラがいたり、
一部のキャラは飛び道具の発射にA属性をつけていなかったりする場合があるので注意。
じゃあどうすればいいのか?って聞かれると難しいです。
キャラ個別ならステート番号指定出来るんだけどねえ。
ヘルパー型の飛び道具の発射判定だけは自分にはどうしようもないです。頭悪いから。
そこを除けば

trigger1 = hitdefattr = SCA,AA,AT,AP
trigger2 = numproj > 0

あたりにすれば移動技とかで死ぬことはなくなるかと。

1行目が空中or立ちorしゃがみ状態で攻撃の属性が通常or必殺or超必殺の打撃or投げor飛び道具。
2行目は自分のProjectile型飛び道具が発射されている。

1行目は
trigger1 = hitdefattr = SCA,NA,SA,HA,NT,ST,HT,NP,SP,HP
と同義っす。



●新時代のSUMOUトーナメント
●宇宙の真理それはSUMOUトーナメント

倒れたら死ぬ。画面端で死ぬ。まさにSUMOU。
注:相撲ではありません。

転ぶ、あるいは画面端に背中がつく、ってことで
(追記)勇み足も起こりえるのでその逆も。

trigger1 = statetype = L
trigger2 = backedgebodydist <= 0
trigger3 = frontedgebodydist <= 0

1行目は前回説明してるので略。
2行目は当たり判定背中側と画面端の距離。一応保険でマイナス条件も。
3行目はその逆。
キャラによってはキャラと壁の当たり判定の接触判定が上手く行かない場合があるので0より軽く大きめの値にするのがいいかも。



●漢達の棒倒しグランプリ
●漢達の体育祭 紅白棒倒し大会
●神々のオベリスク倒しグランプリ

…手動でやってますね。

もしもやるとするならきっと

trigger1 = numpartner = 1
trigger1 = partner,statetype = L

オベリスク~の場合は、相手の棒キャラを死亡させてもダメなので
棒キャラを2P・4Pとした場合

trigger2 = numenemy = 2
trigger2 = enemy(1),life <= 0

をつける形になるのかなあ?
これは未検証なので間に受けない方がいいかと。

1行目はパートナー数が1、即ちパートナーが存在する。
これが無いとシングルの時にデバッグモードでエラーを延々と吐き出されたり。
2行目はパートナーが倒れた状態の時に。
partner,部はリダイレクトと言って対象を指定できたりする。この辺も「トリガー内容」参照願う。
3行目も1行目と同じく、相手の人数の確認。
4行目は相手の2人目のライフをトリガーに。1人目はenemy,かenemy(0),で(いいはず)。



●安全な場所など何処にも無いグランプリ
●作品別全部全画面判定トーナメント

これはCNSじゃなくてAIRの方で攻撃の当たり判定を無茶苦茶広げているだけ…かな?
というか自殺系じゃないので省略。



●決闘の雰囲気を味わいたいトーナメント

10回斬られたら人は死ぬ。超必殺技なら即死も致し方なし。
これはどうなんだろ…イーアルカンフー主人公のデータとか見たらわかるかなあ。
まあこれも自殺系じゃないのでry



●密入国する奴は島流しトーナメント

センターラインを超えたら死ぬ。見切れたら死ぬ。
ということで今度は位置で死にます。

ということでこんな感じでしょうか。

trigger1 = teamside = 1
trigger1 = pos X > 0 || pos X < -160
trigger2 = teamside = 2
trigger2 = pos X < 0 || pos X > 160

1,3行目。1P側か2P側かの判定。
2,4行目。自分のX位置判定。pos Xはステージ中心が0でそこから左側がマイナス、右側がプラスの座標に。
センター越えるか背中側画面端までの距離を超えるか。心持ち160よりも大きめのほうがいいかも。

これだけだとステージの方がスクロールしてしまって都合が悪いので
ステージのDEFファイルにも少々細工を。

ということでステージのDEFファイル。

変更する部分は

tension(画面端から~の距離からスクロール開始)
screenleft (左画面端から移動制限がかかる見えない壁の位置)
screenright (右画面端から移動制限がかかる見えない壁の位置)

の値。

それぞれを大きめのマイナス値にすればスクロールすることなく画面の外側に行けます。

逆にscreen~の値を大きくすると移動範囲が狭まり、狭少住宅トーナメントみたいなことが出来るように。
常に攻撃の間合いというのもあまり見かけませんな。ステージの記述いじるだけでいいのに…


えっと死んだ後に流れていくのは…

[State -2,島流し]
type = velset
trigger1 = !alive
x = -2.0

かな? x の値は適当。
生存していなかったら後ろの方向に速度セット。
roundstate 条件はつけたらダメ。
あえてつけるなら roundstate = 3 だけどタッグ時だと相方生存時に流れ出さないかも。




●うはwwみなぎっwてwきwwたwwトーナメント
●ちょwおまwwみなwぎりwすwぎwwトーナメント

ノーコメント(ぉぃ
師範代ことpprn様のテキストを参考にしたほうが分身バグとかは起こりづらい…かも?



●君がそばに居ないと生きていけないトーナメント

相方と離れると死ぬ。相方が死ねば当然死ぬ。
ダブルアーツだって片方は生き残るの(だろう)になんという過酷な(何

ということで、相方との距離を直接調べるトリガーはないので、先述のステージからの絶対距離の差を使うのかな。

triggerall = numpartner = 1
trigger1 = abs(pos X - partner,pos X) > 40
trigger2 = partner,life <= 0

1行目は略。共通の条件。
2行目、abs(~)は絶対値。自分と相方の絶対距離を算出。実際はもうちょっと値大きくてもいいかも?
3行目は道連れ。君のためなら死ねる、というか君のせいで死んでしまう。

相手との関係よりも味方との関係を調べるほうが何かと面倒だったり。
味方攻撃することを主眼に置いてるわけじゃないしなあ。



◆他

そう言えば他の人で振り向いたら死ぬ、ってのもありましたな。
teamside と facing あたりで出来ます。

後は…後ろに下がったら(ノックバック含む)死ぬとか浮いたら死ぬとかしゃがんだら死ぬ
みたいなのはすぐに出来ますな。トリガー一覧見ながら色々試してみるといいかと。

この辺もAIに応用できる部分もあるから覚えておいて損はないよ!ないよ!

以上、他人様の大会の解説だけで終わった気もするが参考になったでせうか?


こんなのを参考に斬新なルールの大会の案などが生まれ…るのかなあ?(汗


PR
Comments
Post a Comment
Name :
Title :
E-mail :
URL :
Comments :
Pass :   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
TrackBack URL
TrackBacks
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
フリーエリア
最新コメント
[02/23 NONAME]
[03/04 HN考えてない]
[01/31 NONAME]
[01/04 シーモック=モリ]
[10/19 Phaze]
最新トラックバック
プロフィール
HN:
Azmix
性別:
男性
趣味:
放浪・妄想
自己紹介:
いきあたりばったり人生。
これでいいのか俺。
バーコード
ブログ内検索
P R
Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]