元麻雀プロが賞金総額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 に分割されている。
    • ファイルを分割したいので、各機能の依存関係を調べておく。 MeshRenderloadGLTF がシェーダープログラムを参照する。

作業の途中だが外出。今日ハローワークに行けなくなるのはさすがにまずい。 ストレートに押上駅バス停へ移動。バスに乗って錦糸町駅まで移動。

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 も同じファイルに置くのが自然になる? 結局 loadGLTFMeshRenderer のコンストラクターにシェーダープログラムを引数に追加することになる。
    • 引数追加には 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 シャチがうねるところまで実装。腰のあたりの動きが怪しい。次回は霧。 ちょっと休憩。少し麻雀の練習。

ビデオ視聴の途中で日付が変わる。