dev-hsimyu

おれが作ったものとかについて紹介したりするブログ

VTKを出力するだけのC++ヘッダーライブラリを書いた

Xdmfを出力するライブラリを書いて使っていたのだが、階層構造を持つグリッド構造を表現できなくて死んだ。

正確に言うと、GridTypeをTreeにすれば階層化はできるのだが、それをOverlapしないように可視化できるソフトウェアが存在しなくて死んだ。

 

調べたらVTK形式ならいけることが判明したので、SimpleXdmfを流用してSimpleVTKというVTK出力用のライブラリを書いた。

github.com

 

調べたやつをまとめた記事はこれ。

qiita.com

qiita.com

 

 

キタ━━━━(゚∀゚)━━━━!!

Unity: サブカメラ画面を配置してワールドカメラと切り替え

最近Unityを使い始めたのでメモ代わりに記事を書いていきたいと思います。(クソゲーを作って一発当てるぞ!!!!)

gametukurikata.com

今回はカメラの切り替えの話です。
Unityでサブカメラを配置する場合、ViewportRectを小さくして任意の位置に配置することで可能です。


また複数カメラが存在する場合、カメラの描画順はDepthの値が小さいものから画面寄りに重ねられていきます。
naichilab.blogspot.jp

CameraコンポーネントのViewportRectの値はrectプロパティに、Depthはそのままdepthに格納されているので、
ワールドカメラと主観カメラを切り替えるといった動作を実現する場合、これを入れ替えてやればOKです。

サンプルはこんな感じ(subjectiveCameraのViewportRectの初期値は(0.7, 0.7, 0.3, 0.3)にしています)

public Camera mainCamera;
public Camera subjectiveCamera;
private bool isSubjectiveCameraOn = false;

void Update () {
    if (Input.GetKeyDown("v")) {
        CameraSwitcher();
    }
}

void CameraSwitcher() {
    if (isSubjectiveCameraOn) {
        isSubjectiveCameraOn = false;
        SwitchCameraProperty(subjectiveCamera, mainCamera);
    } else {
        isSubjectiveCameraOn = true;
        SwitchCameraProperty(mainCamera, subjectiveCamera);
    }
}

void SwitchCameraProperty(Camera currentMainCamera, Camera targetCamera) {
    currentMainCamera.depth = targetCamera.depth;
    currentMainCamera.rect = targetCamera.rect;
    targetCamera.rect = new Rect(0, 0, 1, 1);
    targetCamera.depth = -1;
}

rectを毎回newするより直接弄る方が少しコスト小かもしれません。
また、現在どちらのカメラが有効になっているかによって移動方法なども切り替えたいので、booleanで保持するようにしています。
実際の動作を見てみます。

こんな感じにワールドカメラと主観カメラを配置して、

動かします
youtu.be

いい感じですね。
一点、ワールドカメラをPlayerに追随させるために子要素として配置しているのですが、
回転がそのままになるため、カメラ切り替え時のワールドカメラの位置が次の切り替えまでそのまま保持されるような状態になっています。
このへんは好みで調整が必要になりそうです。

はい。

Xdmfを出力するヘッダーライブラリ

研究の方でデータ可視化用にXdmfを出力したくなったので書いた。

github.com

 

その過程でXdmfについて調べたものもQiitaにまとめた。

qiita.com

 

データ埋め込み以外にHDF5やバイナリもソースに指定できるし、

参照を持ったりFunctionを定義したりもできるのでかなり便利なイメージだが、

Face中心要素やEdge中心の要素を可視化してくれるソフトがないっぽいところが残念。

 

8/19 得意武器が抜けていたキャラを修正 & 奥義上限修正

得意武器が抜けていた、というより実装当時は不明だったキャラの得意武器が「無し」に設定されていたため、修正を行いました。

なぜ隠しパラメータだったんだろう。

あとはジークさんの得意武器に刀を追加しました。

 

影響があるのは以下のキャラです。

  • ジークフリート
  • ジークフリート(浴衣ver)
  • メドゥーサ
  • シャノワール
  • ヴァイト
  • ソシエ(火属性ver)
  • ロミオ
  • ユーステス(ハロウィンver)
  • イシュミール
  • ラスティナ
  • ベアトリクス(水着ver)
  • レフィーエさん(土属性ver)
  • スツルム
  • キャタピラとヴィーラ
  • ナーヴェ
  • ククル
  • ルシウス(火属性ver)
  • はおうまる
  • ナコルル

 

また、奥義減衰ラインを150/170/180/250万の40%/70%/95%/99%に変更しました。

こちらを参考にさせて頂きました。

450 * 4.5倍 / 防御5 = 405万の生ダメージに対して

(405 - 250) * 0.01 + (250 - 180) * 0.05 + (180 - 170) * 0.30 + (170 - 150) * 0.60 + 150 = 170.5

 

上限+15%をつけた場合

減衰ラインが172.5/195.5/207/287.5になるので、

(405 - 287.5) * 0.01 + (287.5 - 207) * 0.05 + (207 - 195.5) * 0.30 + (195.5 - 172.5) * 0.60 + 172.5 = 194.95

 

ちゃんと計算されてるっぽいですね!

ハイ!(ハイ!のスタンプ

 

いくつか報告されていたのですが、チェインバースト数を2以上に設定すると計算が行われなくなる不具合を修正しました。

併せて、チェインバーストダメージの減衰ラインも、チェイン数が4の場合は新上限ライン、3の場合は120/140/160/200万で計算されるようにしました。

3チェインの時のダメージが少し低い気がしていますので、検証情報をお持ちの方はお知らせ下さい。

8/17 EX攻刃守護(中)追加 & 武器追加 & 種族一覧に星晶獣追加

ほしみです。

 

本日のアップデートで、イカの項目を実装しました。

  • EX攻刃守護(中)を実装
    検証データが見当たらなかったので、wikiを信じてSlv10時に攻刃12%、守護15%としています。攻刃はEX攻刃(中)、守護はアンノウンVIT・IIの値と同じですね。詳細なデータがありましたら修正しますのでお知らせください。

  • 武器追加
    ローズクリスタル武器2とウーチンフィストを追加しました。

    f:id:hsimyu:20170817135458p:plain



  • 種族一覧に星晶獣追加
    テスカ用やリリィのサポアビの際に正しくカウントされるようになりました。また、キャラテンプレートも修正しました。
    古いバージョンのままユグドラシル等を追加するとエラーが出る場合がありますのでご注意下さい。

 

奥義上限関連、落ち着いたと思うので修正したいのですが、

正確そうな検証情報をお持ちの方がおりましたらコメント頂ければと思います。

それでは。

8/4 オメガウェポン追加

ほしみです。

 

※ 公開時〜8時くらいまで、オメガウェポン用のスキルに神石の効果が乗るようになっていたので修正しました。

 

昨日〜今日でちょこちょこ作業して、オメガウェポン用のスキル群とオメガウェポンのテンプレートを実装しましたのでお知らせします。

 

オメガウェポンの見た目、なんか……R武器っぽくないですか?

f:id:hsimyu:20170805045208p:plain

f:id:hsimyu:20170805045228p:plain

テンプレート選択時に第一スキル/第二スキルを選択可能です。

強壮と激情についてはまだ計算式が微妙なので未実装です。

 

いくつか注記です。

  • 各スキルの効果量は、1.0 * SLv か 2.0 * SLv、(勇気の発動確率のみ5.0 + 1.0 * slv)で計算しています。生命についてはこれで合っていることが分かっているのですが、ベーススキル、戦意、闘争、勇気についてはSLv10未満の場合の値が正しくない可能性があります。
  • 複数本ある場合については、とりあえず複数加算されないように計算しています。(編成に入っていてもスキル効果量が増えないようになっています)
    このあたりは検証が進んできたら変更する可能性があります。

奥義上限の変更関連についてはちょっと確定情報が掴めていないので未修正です。

 

 

あるよね〜、そういうこと。

 

 ありがとう無料10連

7/25 新武器新スキル追加、少しUI調整

ほしみです。

高級鞄武器、実装されましたね〜ということで武器と新スキルの追加です。

 

  1. 通常無双(中)、通常神威(中)、リミットブレイク(奥義上限アップ10%)、舞姫の演舞の実装
    通常無双は通常攻刃(中) + 通常二手(中)というスキルとして計算していますが、
    未検証状態ということをご留意ください。

    舞姫の演舞はソシエ武器の最終上限解放によって付与されるスキルです。
    通常攻刃(大) + ダメージ上限UP7%ですね。
    緋舞扇の最終上限解放版も追加しておきました。

  2. 奥義上限UP計算の実装
    奥義上限UPスキルだけでなく、バフの計算等も含めて追加しました。
    それに合わせて、全体バフや個別バフ欄も追加しました。

  3. 武器とキャラ入力欄UIの調整
    折りたためるようにしました。
    数が多くなるといちいち下までスクロールするのが面倒だった問題への対応です。

    f:id:hsimyu:20170725173418p:plain

 

そんな感じです。

シミュレーターの方にダメージ上限バフの追加ができていないので、そのあたりは後々弄ります。

あとはそろそろキャラLBやらないといけないですね。

 

アルバハが28日実装らしいので、そこでの追加武器と合わせて大きく環境が変わりそうですが、そもそもアーカルムとかはいつ帰ってくるんでしょうか……。