・前日。
運動なし。依然として眠るのを優先。
晩飯はオムライス+ミニハーゲンダッツ
風呂は2時間早く入浴。
今回から血管収縮剤ありの点鼻薬はなし。


・やはり一度寝ると頭が冴える感じはあるな。作業できないならやはり寝れなくても横になっておくべきな感じがする。とうとう来週中盤から有給なので、作業できなかったらいくらでも横になれる。できれば今年のうちに睡眠負債の返済を終えたいところだなぁ。


・睡眠時間5~8時間くらい。
血管収縮剤ありの点鼻薬なしでもほぼ片方は鼻詰まりなしの状態が維持できた。というわけで今後は血管収縮剤ありの点鼻薬の後遺症的なやつはなくしていけるはず。
羊毛布団はまだ暖かくて調整がしづらい。かなり断続的な覚醒が多かったが、前日の19時に寝てしまったのもあると思うがこの温度の問題も大きかった。夏用のパジャマでもまだ暑かったが下を脱ぐと逆に暑くなったのでエアコンを切るしかないか。とはいえ朝が寒いと起きるのに困るので、タイマーで付ける感じかなぁ。


・とりあえず有給の申請は済ませてしまった。いまだに返答がないが特に断れないはずなのであとは想定通りに動こう。


・体調は良いようにも思うが断続的な覚醒がヒドかったので睡眠不足でハイになってるだけな可能性もある。ムリしても仕方ないのでゆっくりやろう。


・仕事。
先週のやつはちょっと修正してコミット完了。これはあとはAssetBundleを待って動作確認するだけ。
あとはアニメーションイベントまわりのちょっとした対応をしてドキュメントを改めて調整すれば終了なはず。


・そういや昨日から麦茶を導入してみた。厳密には改めて食物繊維(賢者の食卓)を導入してみた。
最近ちょっと糖質の摂取が多くなってきたしナッツ系などで脂質の摂取も多くなってきたので食物繊維を摂取したいのだが、野菜は加工済みじゃないと食えないし市販品で良いのはないしそもそもオヤツと一緒に食うもんじゃない。なので食物繊維は飲み物で摂取したいが賢者の食卓in水だと味がちょっとアレで飲みづらくて糖質0でカフェインレスとなるともう麦茶くらいしかないのであった。
まぁでも悪くはない。大抵の食い物には合うからな。合うというか邪魔しないというか。いや、邪魔ではあるんだけどリセット役としてはちょうど良いというか。


・結構作業モチベは復活してきてるな。最近までの「焦り」や「視野の狭さ」から来るものではなく、いつもの「暴力を振るう」がごとく「能力を振るいたい」というやつなので比較的健全なタイプだと思う。
というわけで午前中に軽く作業するか。まずはトイレに行ってからにしたいが。


・仕事。
というわけで作業して午前中に完了。
ていうかAnimatorのControllerって普通にはEditor上では参照できないのな。仕方がないのでシーンのFileIDと同じくPropertyInfoを使って「m_Controller」として参照してobjectReferenceValueから引っ張ってきた。変なところに詳しくなっていくなぁ。
ともあれあとは改めてドキュメントに最近のを追記していくだけ。今日を含めて3日あれば十分にやれる範囲。あとは念のため自分の担当箇所を改めて動作確認しとこうかな。


・今朝は雨だったが晴れたか。雨でもいこうかと思ったが普通に散歩できそうだな。


・仕事。
先週の対応はなんかAssetBundleだと上手く動いてないので修正するかぁ。GameObjectを参照してTransforomを取得しようとするとGameObjectの時点で失敗してる。Transformを直接設定するか。
あぁでもそうか。コンバート時にGameObjectから持ってきてるからTransformにするにはもう一段かまさないといけないのか。それはそれで面倒だなぁ。
それよりもそもそもなんでGameObjectの参照が消えてるのかの確認をした方が良いか。Editor上ではちゃんと参照が残ってるっぽいのに、何故かコード側からは見えなくなってる。
あー。もしかして、コレが通常時でもエフェクトが出なくなる件の正体だったり?内部的にエフェクトを付けるべきノードがなくなってる?少なくとも表面上のデータとしては持ってるんだけどな。
とはいえやはりTransformから引っ張ってくるのが安定かぁ。通常の設定でエフェクトが出ない件と根幹が同じならやはり調査は難航しそうだしな。
なんにせよ結構時間がかかりそうか。まずは落ち着いて一通り考えるか。


・仕事:なんかGameObjectの参照がAssetBundleで飛ぶ件。
そもそもTimelineのデータに入ってるのは「exposedName」というものだけだ。シーンがこの「exposedName」に対して「シーン内のFileID」を割り当てている。で、その「シーン内のFileID」は「シーン内の特定のもの」に対応しているので、実行時に実際にインスタンス化さらたものがFileID→exposedNameと経由して割り当てられるはず。
流れとしてはそれだけのはずだが、これがどこかで止まってるかおかしくなってる。
で、どうするか。
対応方法としては「根源的な問題を突き止める」というのと「Transformなど別で取れるものを探す」あたり。
「根源的な問題を突き止める」の方は実行中に上記のExposedNameやFileIDを取得してあれこれする。ただ、突き止めたとして原因はUnity内部の問題だろうし、そうなるととても今週水曜までに対応できるとは思えない。FileIDの取得とかは地味に重いので初期化時にやるとしてもエフェクトの量から考えてちょっとナシ寄りな感じがする。
「Transformなどを使う」の方は動きそうな気もするし動かなそうな気もする。GameObjectと同じようにexposedNameとかで渡すだろうし、普通にTransformの参照などを作っても動く可能性は低いか。そうなると設定したノードのシーン上のパスを取得して、初期化時にそのパスから対応ノードを持ってくる感じになるだろうか。
あぁ、そうだった。Timelineの自前クリップは「実体」とは別に「インターフェース」があるんだったな。で、「Editor上ではちゃんと設定されてる」ってのは「インターフェースではちゃんと設定されてる」という話で、「コード上では見つからない」ってのは「実体側でNULLになってる」って話だ。で、インターフェースから実体へはExposedReferenceというのをResolveして参照取得して渡してるので、ここでコケてる可能性が高い。ここを見よう。
ビンゴだった。「behaviour.node = this.node.Resolve(graph.GetResolver())」で、this.nodeは設定されてるのにbehaviour.nodeがNULLのままだ。参照を解決できてない。となると、この部分の修正かぁ。やはりこれだとTransformとか設定しても渡らなそうだな。
とりあえずExposedReferenceのやつからexposedNameが取れて、これがResolverのキー側になるはず。あとはこれに対応するValueを取ってResolverにセットしてやればいける。別にそのまま手動代入しても良いが、複数箇所で同じResolverを使ってるかもしれないのでひとまずこっちの方で試す。特に高速化しなければ素直に代入だけしようか。
あと必要なのは、シーンにある「このexposedNameに設定されているFileID」と「そのFileIDに対応するもの」の2つ。
試しにシーンから直接取れるものを確認したが、ファイルパスくらいしか取れないか。
GameObjectのやつでPlayableDirectorを一通り拾ってきてそのBindingをセットしてしまうか。もしResolverを使いまわしてたらこの1回だけで処理が終われそう?
あー。どうも「演出を設定したシーンを一度開いてから本来の起動シーンに戻して再生するとTimelineが正常に動く」っぽいかな。演出シーンを開いた際にBindingが正常になったりするって事だろうか?
うーん。もしかしてAssetBundleだとExposedReferenceのキー側がないか?Editorの時点で見れない。
あー。色々と確定した。
まず、「演出シーンを開いてから起動シーンを開く」とちゃんと正常にTimelineが再生される。
で、その前後で「ExposedReferenceのキー(First)」が「空」と「正常な値」に変化してる。
つまり、エフェクトが再生されないのは「ExposedReferenceのキーが不明値になってしまっているから」だ。そしてそれを直すにはどうもシーンを再生しないといけないっぽい。
ここまでは良いが、そうなるとこのままじゃキーが不明値になってるので動作中のやつからじゃ情報の取得ができん。シーンのファイルパスからシーンの中身を見て手動で設定しないとダメか?
なんかここまででだいぶ時間を食ってしまったが、まぁようやく原因の特定まではできたし、今日中にコード自体は書けそうだから大丈夫かな。
あぁ。しかしFileIDの取得はEditorのやつを使わないとダメだから実行中は難しいか。ただ、それ以外だとFileIDの取得が難しいなぁ。一応、シーンのやつからあれこれ検索すればいけなくはないが、想像以上にキツいか。少なくとも今日中じゃちょっとムリげ。


・仕事。
とりあえず情報とかを整理して今日は終わり。ただ、現状ではexposedNameがExposedReferenceのキーと一致してないのが気になるな。何かしらしなければいけないかもしれない。下手したらこっちもファイルの中身を見ないといけないか。
ていうかアレか。exposedNameの前半が消し飛んでるのかこれ。久々に見たからわからんかったが、左にExposedReferenceの値があってコロンを挟んで右に数字だったな。今見たらコロン以降しかないわ。そうなるとやはりファイルを見ないとダメか。
ともあれ残りは明日としよう。ここまでくれば明日中には終わる。ただ、ドキュメントがかなりギリギリになってしまうかもしれない。


・ていうかだいぶ続けて作業してしまったな。原因がわかって張り切ったのと、なんだかんだで体調が戻ってきてるのでなー。あまり良くない兆候ではある。ちゃんとゆっくり作業しなければ。


・改めて戦術まわりを考えられそうな雰囲気の体調にはなってきたが、この感じだと水曜までわりと普通に働かないといけなさそうなので思考自体は木曜以降の方が良いか。下手に悪化させたくもないし。そう言ってるわりに今回のぶっ続けの作業みたいなことをしてしまうんだよなぁ。とはいえ少なくともそう思っていないとさらに悪化してしまうので仕方ない。


・もう17:30を過ぎたがいつもの夕方の眠気はないな。そこまで今朝の睡眠の質は良くなかったとは思うのだが。とりあえず油断はしない方向で。まぁつってもあとは休むだけだが、一応帰宅後にサーモンランやるかもしれないしな。もしかしたら明日になるかもしれないが。