かんなつきのゲーム目録

MUGENのキャラ作成、ゲームのプレイ日記、TRPGのことをつぶやいたりなブログ。

一番手前に立っているbitフラグを調べるアルゴリズム

0 Comments
かんなつき
必要だったので調べたんですが非常にシンプルな回答がありました。

( var(0) & ( -var(0) ) )

見やすいように余計なスペースが入っていますがたったこれだけ。
var(0)に入っている一番手前のbitのみを残して、他の全てのbitが0になります。

具体的に何番目のbitフラグか調べるなら

Ceil(log(2,(var(0)&-var(0))))

これの解が0~30となります。
log計算なので、var(0)>0の条件でのみ使用してください。
最上位bitは別途例外処理するか、そもそも代入されないようにするといいと思います。


なにに使っているかというと、
本体同期GameTime貫通で使用しています。

エリナちゃんの本体同期GameTime貫通は3F観測して、変動していた変数にのみ貫通を行うようになっています
(処理低減とエラー落ち・論外化の阻止などが目的)


[State ]

type=ParentVarSet

trigger1=var(5)>0

v=Ceil(log(2,(var(5)&-var(5))))

value=enemy,var(Ceil(log(2,(var(5)&-var(5))))


[State ]

type=ChangeState

triggerall=1||var(5):=var(5)-ifelse(var(5)<0,(var(5)&-2147483648),(var(5)&-var(5)));最下位bitを減算

trigger1=var(5);まだbitフラグが残ってる

value=stateno


var(5)は観測の結果変動していた変数を示すフラグがbit単位で格納されている変数を最初に代入している、計算用変数です。


上のステートは実際の物よりだいぶ簡略化していますが、


1.最下位bitが立っているところの変数を代入

2.その最下位bitを計算用変数から引いて、まだbitフラグが残っているならループ

3.bitフラグが無くなったら終了


という処理を行っています。



ちなみにこれとは逆、最上位bitを調べるのは結構大変みたいです。

使いたくなった時にまた調べてみましょうか。




追記:

triggerall=1||var(5):=var(5)-ifelse(var(5)<0,(var(5)&-2147483648),(var(5)&-var(5)));最下位bitを減算

triggerall=1||var(5):=(var(5)&(var(5)-1))


こちらのほうが同じことではありますが演算量が全然違います。すごい。

スポンサーサイト

インクリーズイリス修正

0 Comments
かんなつき
不具合があったので修正します。
ver0.2は必ずこの修正版ver0.2.1に更新をお願いします。

HP吸収の回復量を半分に調整
回復ペナルティを追加
即死バフ発動中の即死LifeAddが回復方向になっていた問題を修正
デバック用記述を追加
分身設定0と分身設定0以下をデバック用に分離

インクリーズイリス更新

0 Comments
かんなつき
更新しました。強くなってます。

追加内容

投げ技追加
3ゲージ技追加
HP吸収バフ設定追加
永続ターゲット追加
永続ターゲットによる表示ヒットカウントの不具合を補正するシステムを追加


調整

ステ抜けや喰らい抜けを調整
210技が多段ヒットするように変更。その他210技は細かく微調整
割合ダメージを試合開始後20秒後に解禁に変更
割合ダメージ解禁後、通常ダメージと割合ダメージが確率で選択されるように変更
分身にのみ落下即死が有効になるように変更。
本体が落下ダメージを付与されたとき、それをリセットするように変更
分身がアーマー中の時、攻撃が終わるまでライフが無くなっても行動できるように変更


不具合修正

分身のパレットが本体共有になっていたのを個別パレットに修正
混線ステ返しされたときのProjでヒットスパークが垂れ流されていた問題を修正
アーマー処理後もHitdefが当身・被弾していないならHitdefが持続するように修正
ノーマルヘルパーHitdefの当身しにくいHitdefが1F目以外普通に当身できてしまっていた問題を修正
Explodの消去召喚に対する保険を追加



その他SE追加や細かい微調整、デバック用記述の追加などを行いました。


今回の更新でデフォ1Pでも狂下位を越えてしまいました。
6Pは狂上位の中層~上層付近はあると思います。

7P以降はわたしでも未知の世界です。狂最上位のどこかだと思います。

体験版について

0 Comments
かんなつき
いまDropBoxに上がってる
「Erina-FM(体験版)」は動画使用・生放送使用禁止です。

あくまで体験版なのでそこのところよろしくお願いします

The Witcher 3 クリア記念

0 Comments
かんなつき
は~…すっごい…

なんというか世界に引き込まれるようなそんな感覚。

わけあって一度ある程度やって積んでしまったので、もう一度最初からやり直しました。
トータルプレイ時間は

321時間!

すごいやったんだなぁ…と。

わたしがSteamでプレイした中では4番目の長さになります。
(トップはSkyrim+SkyrimSEの600時間、次点でFallOut4の470時間、Terrariaの450時間)


RPGとして最も根幹にある物語、ストーリーがやはり素晴らしかった。
最後の怒涛の展開はもうなんかいろいろすごい(語彙力…)


巷では賛否両論という感じの戦闘システムですが、わたしは嫌いじゃない…というかまだすべてに触れてすらいないんですよね。
石弓の矢とかは全部売り払って使ってないし、変異誘発剤や爆弾も使いこなしてるとは程遠いです。

しいて言えば多数の敵と戦うときの回答が少し少ないかなぁとは思いました。
このゲームそういうシチュエーションが多いわりに辛いんですよね…


グラフィックはとてもいい…とてもいいんですけど、うちのPCのパワー不足で全然その真価を見せてもらえません。重たい…
いずれ最高設定でぬるぬる動くPCが欲しいですね。
それで2周目、3週目をやりたい…


とても良いゲームでした。一生の宝物ですね。
しかし、このゲームはマルチエンディングという話を聞きました。すごい。
NG+という強くてニューゲームも、難易度デスマーチも残っています。

少なくともあと2週はプレイできますね。DLC込みで実質4週できる。
というか今のセーブデータもまだDLCに手を付けていません。

まだまだおわらない!