・前日。
0830:ミックスナッツ×2。
1200:うまかっちゃんもどき+焼き豚。
1300:低糖質クッキー。
1600:ミックスナッツ×2。
1730:サラダチキン+焼き鳥パック+低糖質タレ。
電解質タブレット✕3と水分1.8リットル程度。
性欲:低~高。
筋トレ:


便意
結局今日の日中もなかったな。今日中に排便がなかった場合、明日の遠出も控えたいところだが。


・排便。
22時半にかなり自然な感じの便意があり、感覚的にはほぼ以前と変わらない排便があった。ここまでくればまぁ安心かなと思えるレベル。明日は遠出しても良いな。
ついでに便の臭いがかなり低下している。最近の肉の摂取量は変わってないので、断食+多量の水溶性食物繊維の影響だろうか。腸内環境的には定期的に断食+水溶性食物繊維をした方が良いんだろうなぁ。野菜を食わないならせめてって感じ。まぁ確かに野菜を増やせないならそっちもアリか。
断食はやるとしたら金曜か?ただ、当日にダウン症状が発生すると困るので土曜か?しかし土日はせっかく色々と食える日だからなぁ。さらに言えば食事の内容的には木曜とかを断食の日にしたいところ。まぁ当面は断食しないとは思うが、腸内環境を問題視するようになったら考慮しよう。


・予定。
というわけで遠出できる状態になったと思うので予定を立てよう。
残ってるのは川崎でやりたい用事ばかりか。休日よりは平日の方が空いてるかと思うので、明日一通り見てこようかな。余裕があれば寒天ゼリーも補充しておきたいが、まだ1ストックあるから急ぎではない。そんなにかさばらない予定ではあるが、荷物があるとわかってる状態で買うものでもないかな。
メシに関しては鍋ボトルを試すことになるか。下痢になるとして早くても夕方だろうから川崎で食って帰ってくるのは問題なし。夕飯のそぼろがそういえば作ってないから、ひき肉とかを買って帰ることになるな。その意味でも寒天ゼリーはまた今度か。
といったところかな。まぁなんかダメそうなら早めに切り上げよう。別にメシまわり以外は急ぎじゃないし。


・Unityの方の予定。
とりあえずユニット選択画面自体はできた。あとはここで実際にユニットのパラメータを色々と設定できればOK。
まずは一旦保留にしてた敵味方の切替まわりをやるとして、その後はどうするかな。パラメータに関しては「HPとかのパラメータ」「BOID的な移動関連の力」「攻撃手段」とか色々あるんだけど。すぐに動作確認できるのはBOIDまわりか。他は攻撃まわりを実装しないと確認できない。
あと、「ユニットの新規作成」やら「配置済みのユニットの変更」とかも色々とあるんだよなぁ。まぁ基本的には新規実装寄りの方が重たそうだから休養期間にやるならBOIDまわりの方が先かな。
それ以外で重そうなのはタブまわりか。タブは内部処理的には多次元配列のIndex変更でしかないんだけど、見た目の方が既存機能でやると面倒そうなんだよな。まぁどういうタブにするかにもよるが。


・睡眠時間5時間くらい。
内容は覚えてないが変な夢を見てたようで終盤がやや断続的な覚醒。覚醒直後はわりと眠気が強かったが、仕事期間の想定時刻にほぼ起き上がることができたし、その後のあれこれの準備も順調だった。この状態を維持できればひとまず問題なさそう。


・鍋ボトル。
というわけで作ったが、前回考えた手順を直前で変えてみた。そもそも水+豚肉をレンチンした場合、加熱時間が短いと生煮えになり、長いと肉が固くなる。なので、まずは水だけ先にレンチンして沸騰させ、そこに豚肉を入れてから改めて加熱することで鍋の時の加熱に近づけてみた。これでどうなるか。ただ、今朝の時点で腹具合がちょっと微妙に見えてまた下痢になってるかもしれない。まぁそこらへんは実際の排便を確認してから。
あと、徒歩川崎するならボトルを持ち運びたくはないか。まぁ走らなければ大丈夫か?ただ、走れるなら走りたいんだよなぁ。今のところ帰宅してからのメシでも十分間に合うというか、むしろそっちの方が想定した時刻になりそうだからボトルは家に置いておくか。


・Unity。
そういえば自機自体の移動処理がまだ未実装だったんだよな。まぁ先にUIを作って問題ないとは思うけど、BOIDとは違うパス計算なので休養期間で実装はしておきたい。


・外出終了。
概ね予定通り。終盤がやや下痢気味な雰囲気があったが、まぁ社会的な死は訪れなかった。
ていうか腹が下り気味なのは冷やしてしまったとかじゃなくてエリスリトールとかが多いせいな気がしてきた。コーヒーゼリーでがっつり消費してるからなぁ。もう少し控えてみるか。


・鍋ボトル。
豆腐を温め忘れてたのでぬるかった。豚肉の加熱はおそらく問題なかったとは思うが、その後ぬるいところで3~4時間放置されたことで菌が繁殖した可能性はあるか。まぁ今回何か問題が発生した場合はちょっと参考にならんかもな。というわけで早めに正露丸とか飲んで一応対処だけはしとく。


・Unity。
ReactivePropertyとかの使い所もそれなりにわかってきたかな。外部から参照する時点でもう利用を検討して良いレベル。外部から使うってことは変化があった場合に検知したい可能性が高いしな。さらに言えば複数のViewをまたいで値を伝搬するような状況で中継的なメンバを持っても更新とかが不完全になってしまう可能性がある。
しかしReactiveProperty自体の受け渡しってどうなんだろうなぁ。Vector3みたいな構造体の共有には良さそうではあるんだけど、概念的に正しいのかどうか。まぁ今回は普通に受け渡ししてみてメリットやデメリットを観察するか。
PauseやResumeを用意したりしたわけだけど、結局表示のオンオフと同期してるからOnEnableとかに対してSubscribeすれば良かっただけっぽいな。まぁ作る前に気付けるほどUniRxに習熟してないというか初使用だから仕方ないが。
で、そこ関連で「パラメータは変化したけどViewがアクティブになるまで呼び出しは遅延して欲しい」という時どうすれば良いのかな。上記の通りOnEnableとかまでObservableにしてあれこれすればいけなくもなさそうなんだけど、それで良いかがいまいち見えない。呼び出される側で自身がVisibleになるまでAwaitするってのもなしじゃないしな。実装候補が他にもありそう。
うーん。一部だけReactivePropertyにするのはさすがに微妙過ぎるな。というか全部置き換えるならそもそものModel自体をReactivePropertyにする?改めてちょっと根本から考えないとダメそう。時間かかるな。
そもそもReactivePropertyってJSONで保存できるのか?と思ったができるっぽいな。間にValueが挟まってしまうが、まぁほぼ同じ形式。Testですぐに確認できるのはラクで良いな。
多次元配列はどうするかなぁ。ReactiveCollectionで1次元ならどうにかなりそうだが、これを入れ子にするのか?なんか微妙な気がする。どうせ要素を1回入れるたびに色々と再構築されると困るので、SetValueAndForceNotifyで最後に伝達する形でも良い気はする。
メンバ変数に代入しながらイベント発行してるのを見るともはや微笑ましさすら出てくるな。ReactivePropertyを使えば一発なんだけどな。まぁちゃんと学習が進んでる証ではある。
うーん。ReactivePropertyに多次元配列を入れるとJSON化で空になるなぁ。
あー。privateに別で多次元配列を持ったとして、JSONから戻す際にまた問題になるのか。面倒だな。ReactivePropertyのValueが入るのがそもそも微妙ではあるし、コピペして型と名前だけ変えればいけるように構造を組んでみるか。
ISerializationCallbackReceiverというのを継承すればJSON化の際に事前・事後にコールバックが呼ばれるから、これでなんとかするしかないっぽいなぁ。
違うなこれ。多次元配列そのものがJSONに対応してないのか。そういやここの構造を変えたんだったな。
というあたりで気持ち悪くなってきた。さすがにぶっ続けで作業し過ぎたな。ちゃんと休もう。


・下痢。
今日は昼以降がまた下痢気味だったが、前述の通り低糖質系のあれこれを食ってしまった影響で腹が緩くなってるだけの可能性もある。ので、まだ土曜は普通のメシにする予定。今日もちょっと低糖質のやつはすでに食ってしまったので、日曜くらいまでは様子を見ないとなんとも。ただ、なんにせよまた断食はありかもしれない。


・Unity。
どうやら1次元配列やリストはOKだが、2次元配列系がダメっぽいなぁ。Unity付属のだとJSONまわりが微妙なので、JSONに関しては別途ライブラリを用意する形になるか。であればReactivePropertyでValueが入ってしまうのも何かしらフックをかけて処理できるタイプのライブラリだと良いんだけど、そんなのあるかなぁ。
LitJsonのJsonMapper.RegisterExporterでなんかそれっぽいことができそうな気がするが、ググってもここに関するピンポイントな情報は見つからんな。まぁ実際に試してみるしかないか。
というわけでLitJsonのインストール。なんか以前とは方法が変わったみたいだし、さらに今回はアセンブリを切らないとたぶん使えないよな。まぁ改めて練習がてら。
情報が少なくてLitJson自体のコードを読むしかなかったが、でもまぁEnumの多次元配列(厳密にはジャグ配列?)のJSON化まではいけた。あとは逆方向を作ればたぶん全体のコンバートもできるだろう。
逆がわりと難しいな。ReactivePropertyなのにIsArray=trueにしないといけないか。
ムリっぽいか。無難にValueを挟んだ方がマシか。
うーん。Enumは可能であれば文字列化して保存して欲しかったが、まぁ運用上は一応問題ないか。とりあえずこれでReactivePropertyにEnumの2次元配列を入れた際のコンバート対応はできた。あとはこれで全体が動くかどうかだな。
全体をやるとなんか相互参照か何かで無限ループになっているようでオーバーフロー系のエラーが出た。中のコードを見たりブレークポイントと置いたりしてみたが、どうもGetterとかも実体として捉えて保存しようとしてるっぽいなぁ。
あー。Vector2Intを保存しようとすると、「zero」みたいな定数もPropertyとして捉えて保存しようとしてしまってるのか。で、zeroインスタンスもまたzeroへの参照を持ってるっちゃ持ってる(同じクラスのpublicにはある)からそこで無限ループしてる、と。面倒くさいなこれ。Vector2Intも自前でParserを用意してみるか。
OK。そこは通るようになった。ただ、それはそれとしてStageのデフォルトコンストラクタも必要なのか。internalでも良いかな。セーブ&ロード的にはそれでOKなはずだが、Testでいけたっけ。確か何かスコープ関連の設定はした気がするが。
あぁ、なんかできてないし、publicにすると次のエラーに移りはするな。ただ、Test用にpublicにするわけにもいかないのでスコープ関連を改めて調べるか。
ていうかもう20時過ぎてるんだよな。また作業しっぱなしだし。なんにせよ休憩はするか。


人工甘味料
そもそもコーヒーゼリーは以前から摂取していたし、低糖質クッキーをそれなりに食べてしまう日もあった。その時は少なくとも自覚できるレベルの下痢ではなかったから、今のこれは食あたりの影響がまだ残っていると考えるのが妥当ではあるか。
となると明日もまた断食にしてみようかなぁ。というか2日に1回断食くらいのペースでも良いのかもしれない。念のためソイプロテインプロテインバーは確保しておいたので、一応明日から早速できはする。まぁ試してみるか。
ただ、そうなると外出はどうするかなぁ。脱力感とかは意外と出なさそうでもあるが、下痢まわりを考えると遠出はしづらい。今日もヤバいとは言わぬまでもそういう感覚自体は少しあったしな。まぁ今日の外出でそれなりに用事は済んだし、寒天ゼリーとかの残りの用事も別に急ぎではないし土日じゃなくて良い。軽く散歩くらいはしてみても良いが、徒歩川崎は控えようかな。まぁ朝から明らかに好調というか腹具合に不安がなければやっても良いが。とりあえず現時点では明日また断食&遠出は控える方向で。


・Unity。
InternalsVisibleToでinternalを該当アセンブリに公開はできるっぽいが、それだけじゃ上手く動かんな。対象をTestsじゃなくてLitJsonにしても同様。
そもそも内部的にリフレクションに失敗してるのが問題なので、Activator.CreateInstanceの第二引数にtrueを入れたところ動くようになった。
あとはデフォルト引数ありのデフォルトコンストラクタではダメっぽかったので、そこらへんを分離したら一通り全部動くようになった。
これでようやくCloneが動くようになったが、これはただの前提条件なんだよな。ここから改めてReactivePropertyでの置き換え作業がある。が、さすがに今日はもう時間がないのでここまでかな。明日はReactivePropertyの置き換えでほぼ終わりそうな気もする。