521 日目(曇りまたは晴れ)ハローワークに行けただけ
元麻雀プロが賞金総額200万円の大会で入賞を目指す配信【雀龍門M】 - YouTube を今晩で全部視聴し切りたい。例の「極限」の局だが、パオは確定させた人は、 門前でリーチしないで攻める戦略を採ったということだから、ギリギリのところを見極めていたのだろうか。
音楽を聴きながら麻雀の練習をして 2:00 消灯。
7:05 起床。納豆とハンバーガーを食う。空ペットボトルを持って出勤。
7:45 現場。資源ゴミの日なので持参したものをマージする。 昨日片付けられなかった紙パックを今から仕込む。豆乳系のパックは捌くのがどうして面倒なのだろう。
あとは館内を清掃。床にへばりついた硬い何かを削り落とす作業もする。 10:00 終了。撤収。
イトーヨーカドー曳舟店で体温チェックとトイレ。腹の調子が最近は芳しくない。 常時腸に何かが詰まっている感じだ。
曳舟の部屋に戻る。服を脱いでいきなり昼寝。ハローワーク調整。
13:25 起床。おやつの準備をしながら PC を開く。おやつを食う。家計簿をつける。 ニュースをチェック。さいとうたかお先生逝去。悼む言葉が出てこない。
- WebGL2 Skinning シャチ開始。
- ファイル読み込み関数を非同期とする。それはそうだろう。JavaScript での定石と言っていい。
- 関数
getAccessorAndWebGLBufferはまだよくわからない。 - 関数
accessorTypeToNumComponentsはコードを見ただけで何の写像かわかる。 - 読み込み関数を使ってメッシュをメモリーに生成する。
- クラスを二つ定義する。
クラス
Nodeはシーングラフのノードを表す。 クラスTRSは回転変換の代わりになる四元数を表す。 このへんのコードは別の js ファイルに置くほうがいいと思う。 - 描画の便宜を図るためクラス
MeshRendererを書く。 - メイン関数から非同期関数を呼び出したいので、これも非同期とする。 私の学習コードではとっくに勝手にそうさせてもらっているが。
- シェーダーコードをマイナーチェンジ。断片シェーダーでは指向性照明を実装する。
- これまでの仕込みを丁寧に済ませておけば、
mainコードが単純に見える。 - シャチの gltf ファイルをローカルディスクに保存しておく。
.gltfと.binに分割されている。 - ファイルを分割したいので、各機能の依存関係を調べておく。
MeshRenderとloadGLTFがシェーダープログラムを参照する。
作業の途中だが外出。今日ハローワークに行けなくなるのはさすがにまずい。 ストレートに押上駅バス停へ移動。バスに乗って錦糸町駅まで移動。
15:45 ハローワーク墨田。求人検索。求人票を三件印刷。ただし求人の筋が悪い。 したがって今日の応募はない。
コンビニに寄って就職活動報告書のテンプレのコピーをとりたいが、コピー機に先客がいる。 いったん別の場所に移動しよう。
16:35 西友錦糸町店。235 円。
- ボデーソープ詰め替え
- 洗剤詰め替え
コピーをすっかり忘れてブックオフロッテシティー錦糸町店に移動。マンガ本を主にチェック。 MASTER キートンの豪華版みたいなのがお買い得のようだ。
17:30 オリナス錦糸町に移動。二階ベンチで休憩。
18:00 タイトー F ステーションオリナス錦糸町店。MJ プロ卓東風戦 6 クレ。 今日は頭のバグがニ度発生した。なぜ安牌のつもりでわけのわからない牌を切る現象が起こるのか。 もちろんひどい放銃。
それでも他家に咬み付くことはできたからよしとする。プロ卓から追い出されるギリギリまで落ちた。
【SCORE】
合計SCORE:-148.3
【最終段位】
四人打ち段位:十段 経験値:-97.7
【9/29の最新8試合の履歴】
1st|--------
2nd|*------*
3rd|-*-**-*-
4th|--*--*--
old new
【順位】
1位回数:0(0.00%)
2位回数:2(25.00%)
3位回数:4(50.00%)
4位回数:2(25.00%)
平均順位:3.00
プレイ局数:38局
【打ち筋】
アガリ率:10.53%(4/38)
平均アガリ翻:4.00翻
平均アガリ巡目:13.75巡
振込み率:13.16%(5/38)
【9/29の最高役】
・跳満
・跳満
19:50 カスミオリナス錦糸町店。417 円。
- 麻婆豆腐丼
- 豚ロース玉ねぎ串
- ブラックチョコ
- ライス
20:15 ビッグエー墨田業平店。338 円。ボデーソープ、洗剤、ポン酢でリュックが重い。
- 絹豆腐 (2)
- ゆずポン酢
- 大きなコロッケバーガー
- コッペパンブルーベリー
20:25 曳舟の部屋に戻る。荷物を慎重に整理。シャワーを浴びる。
風呂から出て PC を開く。晩飯。麻雀の練習。
- WebGL2 Skinning シャチ再開。
- 関数
loadGLTFを別ファイルに分けると、シェーダープログラムを引数に追加することになる。 それは望ましいのだが、クラスTRS,Node,MeshRendererも同じファイルに置くのが自然になる? 結局loadGLTFとMeshRendererのコンストラクターにシェーダープログラムを引数に追加することになる。 - 引数追加には
glも必要だった。 addChildrenも漏れていた。以上、すべて別ファイル内で完結させる。main内のloadGLTF呼び出しの実引数を追加。
- 関数
22:20 シャチの回転まで実装。リファクタリングを少ししてから skinning に着手したい。 次の記法が便利なので習得しておく:
const { name, mesh, translation, rotation, scale } = node;
書き換えたいコードがそれほどないので、やはり先に進む。
- クラス
Skin: 行列オブジェクトのバッファー。テクスチャーはデータ格納メモリーとして利用する。 - クラス
SkinRenderer:MeshRendererの類似クラス。一様変数の集合が異なるだけ。 ということは、シェーダーコードも skinning 用のものを用意する。 - 頂点シェーダーを新たに書く。ハシゴの例のそれと酷似している。
Skin.updateでの行列の扱いに注意しろと言っている。loadGLTFをスキン対応。関数getAccessorTypedArrayAndStrideなどを実装。引数リストを短くできる。- メッシュのセットアップで meshProgramInfo ではなく skinProgramInfo の VAO を生成するように直す。 この辺のコードが雑。
- 関数
main修正。レイアウト位置指定でprogramOptionsを使うのでtwgl.setAttributePrefix("a_");を消す。 - 関数
animSkinを書く。render内最後のループの直前にaminSkin呼び出しを追加する。
23:25 シャチがうねるところまで実装。腰のあたりの動きが怪しい。次回は霧。 ちょっと休憩。少し麻雀の練習。
- 元麻雀プロが首位奪還を狙って記録に挑戦したら全国1位になりました - YouTube: ワンゲームだけで帰るわけにはいかない。
ビデオ視聴の途中で日付が変わる。