流れる時の中で

主にmugenの凶悪キャラを制作しております

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

更新までの道のり 

2016/03/07
Mon. 12:28

とりあえず, 鈴々を更新したいところですが, 最後に触ってたのが約1年前というありさま。

記憶をたどって何をしていたのか確認してみたところ, デバッグ表示機能を搭載して各種の精度を向上させていたようですね。


無限62

現状だと混線各種のステート返しの設定がまだ途中だったみたいなので, この辺の調整と
後はデバッグ表示機能をスイッチ化できれば一応更新できる状況にはできそうです。

なぜ後一歩という所で放置していたのかは定かではないですが・・・(


それとは別に最近の動画の影響でちょっとやりたいことが1つあるので, できればこちらも片づけてから更新したい所ですが
何分今までと勝手が違うところがある上に初めて手を付ける所なのでちょっと時間がかかりそうな。

記述云々というよりもどういった方法とるかを考える方が時間かかりそうなんですよね。

そういうわけですので, もうしばらくお待ちいただければ幸いです・・・orz


[edit]

CM: 0
TB: 0

page top

進行状況 

2015/03/16
Mon. 11:00

更新までの現在の進行度目安。

鈴々:40%
親変更積んだお蔭で調整するものが増えすぎた。地道に消化中。

親変更セットR:80%
記述自体は書き終わってる。後は解説入れるだけ・・・。
だったんだけど, ちょっとID調整の方法を変えようかと思ってます。

エイプリールフールキャラ:10%
現在メインで作成中。
何気に今までエイプリールフールにキャラ公開したことないから頑張ってみようかと。

んー・・・何もかもが中途半端すぎる(

[edit]

CM: 0
TB: 0

page top

撃破挑戦-パッチ入りシーン12P 

2015/03/13
Fri. 09:12

IRCで撃破挑戦されているのに便乗していくスタイル。
ただ, 本当ならもう少し早目に挑戦するつもりだったけど何故か遅くなった。(すっとぼけ


無限50

基本的な穴は元々のシーンの即死の穴の1つと同じなんだけど, かなり条件絞られてますね。
テキスト見たら汎用撃破用っぽいけど, それやると他に影響でそうなのでおとなしく専用となりました。

現在親変更セットRの方制作中なのでできれば今日中に更新しておきた所ですが・・・。

[edit]

CM: 1
TB: 0

page top

続・1ステートで1~4Byte目の値を弄る 

2015/03/10
Tue. 10:43

まず結果から述べると, 1ステートで1~4Byte目の値を同時に弄る事はできました。
ただこれ, すっごいめんどくさいことになったんですよね・・・orz

流れとしては,

1.trigger1=0(条件式を満たさない)状況で1~4Byte目の値を全て0にする
トリガーを満たさない場合のアドレスの値の変動は0なら0のまま, そうでなければ-1される
つまり, 前の親のIDの1~4Byte目の値の中で最も大きい値分ループさせれば良い。
(1Byte目:120 2Byte目:1 3Byte目:0なら120ループさせれば値は0になる)

2.現在の親のIDの1~4Byte目の値の中で一番小さい(0を除く)数値を求める
(なぜ一番数値かというと, ループ回数が最も多くなるものを求める為。現在の影のIDの値は0なので128-var(X)がループ回数)

3.現在の親のIDの1~4Byte目の値の小さい順にトリガーを満たして値を変動させていく。
かなり言葉にしにくいんですが・・・。
例えば1Byte目の値が12 2Byte目の値が1 3Byte目の値が0の時。影のIDは現在0。

最初の1ループ目にもっともループ回数が多くなる2Byte目のトリガーを満たせるようにする。
(128-1=127ループ。この時点で2Byte目の値は127に。以降2Byte目のトリガーは一切満たさない。つまり以降は値が-1されていく)

次にループ回数が多い1Byte目のトリガーを満たせるようにする。
この1Byte目がトリガーを満たす条件は
ループ回数=((128-現在の親のIDの2Byte目の値)-(128-現在の親のIDの1Byte目の値)+1)
つまり, =((128-1)-(128-12)+1)=(127-116+1)=12ループ目に1Byte目の値を127にする。
以降1Byte目のトリガーは満たさないようにして値を-1させていく。

この状態で127回ループさせると, 1ループ目に値を127に変動させた2Byte目の値は残りの126回のループで値は(127-126=)1に。
12ループ目に値を127に変動させた1Byte目の値は残り115回のループで値は(127-115=)12になります。


[State ,6689:影のID-1Byte目]
type=Null
triggerall=(Floor(fvar(11))&1)&&var(4)>0
trigger1=(Floor(fvar(11))&2)
trigger1=Floor(fvar(10))=1
trigger2=(Floor(fvar(11))&4)
trigger2=Floor(fvar(10))=(var(8)-var(7)+1)
trigger3=(Floor(fvar(11))&8)
trigger3=Floor(fvar(10))=(var(9)-var(7)+1)
persistent=128
ignorehitpause=1
[State ,6690:影のID-2Byte目]
type=Null
triggerall=(Floor(fvar(11))&1)&&var(5)>0
trigger1=(Floor(fvar(11))&2)
trigger1=Floor(fvar(10))=(var(7)-var(8)+1)
trigger2=(Floor(fvar(11))&4)
trigger2=Floor(fvar(10))=1
trigger3=(Floor(fvar(11))&8)
trigger3=Floor(fvar(10))=(var(9)-var(8)+1)
persistent=128
ignorehitpause=1
[State ,6691:影のID-3Byte目]
type=Null
triggerall=(Floor(fvar(11))&1)&&var(6)>0
trigger1=(Floor(fvar(11))&2)
trigger1=Floor(fvar(10))=(var(7)-var(9)+1)
trigger2=(Floor(fvar(11))&4)
trigger2=Floor(fvar(10))=(var(7)-var(9)+1)
trigger3=(Floor(fvar(11))&8)
trigger3=Floor(fvar(10))=1
persistent=128
ignorehitpause=1
[State ,6692:影のID-4Byte目]
type=Null
trigger1=1

[State ,6709:ループ処理(値のリセット)]
type=ChangeState
triggerall=!(Floor(fvar(11))&1)
trigger1=1||fvar(10):=Floor(fvar(10))+1
trigger1=Floor(fvar(10)) < var(1)
trigger2=Floor(fvar(10)) < var(2)
trigger3=Floor(fvar(10)) < var(3)
trigger4=1||fvar(10):=0
trigger4=0*(fvar(11):=(Floor(fvar(11))|1))
persistent=256
value=StateNo
ignorehitpause=1
[State ,6710:ループ処理]
type=ChangeState
trigger1=!(Floor(fvar(11))&2)&&var(4)>0
trigger1=((var(4) < var(5))||!var(5))&&((var(4) < var(6))||!var(6))
trigger1=0*(fvar(11):=(Floor(fvar(11))|2))
trigger2=!(Floor(fvar(11))&4)&&var(5)>0
trigger2=((var(5) < var(4))||!var(4))&&((var(5) < var(6))||!var(6))
trigger2=0*(fvar(11):=(Floor(fvar(11))|4))
trigger3=!(Floor(fvar(11))&8)&&var(6)>0
trigger3=((var(6) < var(4))||!var(4))&&((var(6) < var(5))||!var(5))
trigger3=0*(fvar(11):=(Floor(fvar(11))|8))
trigger4=Floor(fvar(10)) < var(7+!!(Floor(fvar(11))&4)+2*!!(Floor(fvar(11))&8))
trigger4=1||fvar(10):=Floor(fvar(10))+1
persistent=256
value=StateNo
ignorehitpause=1
[State ,6711:親変更後ステートへ]
type=ChangeState
trigger1=1
persistent=256
value=58580611
ignorehitpause=1


これはもう完全におまけもおまけですね・・・。
ここまでするくらいならステート分けたほうが楽ですし(
(全領域親変更の場合はChangeStateで値弄るのでトリガー管理で問題ないですし)
よく考えたら全領域親変更だとこの方法使えませんね・・・。(128超える部分と127以下の部分が複合したら組み合わせ次第で詰む)
通常親変更のみ搭載で限りなく容量小さくしたい時くらいしか役に立たないんじゃないですかねこれ・・・・(

もしかしたらもっと簡単な方法があるのかもしれないですけど・・・ChangeState系以外での値を弄る方法ではこれが限界な気がします・・・。

[edit]

CM: 0
TB: 0

page top

これはひどい 

2015/03/10
Tue. 02:09

鈴々の親変更ID調整を行ってたら酷いミスに気付いた件・・・・。

トリガー条件を満たさなかった場合のアドレス値の変動ですが, これって変動が起きないわけじゃなくpersistentが無い場合と同じになるんですよね。(0なら0のまま, 0以外なら-1される)
つまりどういうことかというと, 以前書いた1ステートで1~4Byte目の値を同時に弄る事ができないわけで・・・。
(完全に不可能というわけではないと思うけど、あの方法では無理)

うーん・・・何でこんな勘違いをしてたのかさっぱりすぎる・・・orz
(デバッグはちゃんとしたつもりだったけど, 恐らく2Byte目以降も弄るのを確認してないんでしょうね。1Byte目だけを弄るなら問題ないはずですし・・・)

ちょっと色々確かめたいので一旦あの記事は非公開にしておきます。

[edit]

CM: 2
TB: 0

page top

2017-07

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。