498 日目(曇り一時雨)一生に一度あるかどうかのミス
YouTube を観まくってから消灯する。WebGL の学習もコードを少し書けば次に進めるからそうする。
- 仙台を代表する麻雀の鉄強達に稽古をつけてもらいました - YouTube: 今回の編集はべらぼうに手間がかかっている。ゲーム以外のすべてを堀内プロ一人でまかなう。
- VRC6 Arrange Castlevania Series Medley Remake Vol.1 - YouTube: あっという間に 30 分が経つ。
- WebGL2 2D Scale: 倍率に負の値を許す。幾何が反転する。
- VRC6 Arrange Castlevania Series Medley Remake Vol.2 - YouTube: 何度も何度も聴いているのに。
2:30 就寝。
11:10 起床。洗濯機を回す。納豆、おにぎり、ハム&マヨを食す。携帯電話でニュースを見る。洗濯物を干す。 PC を開く。
- この夏やり残したことを消化していくぞ! - YouTube: レベル 12 フルコン残りノルマ消化とか、目標がまともじゃない。
12:30 VS Code の更新終了。主に WSL Remote 拡張のダウンロードに時間を費やす。
- WebGL2 2D Matrices
- 前半の行列演算については承知しているので流す。
- 頂点シェーダーに
mat3を導入。 - HTML 部分は変更なし。
- 行列演算を今のところはローカルで実装してある。
- 中盤は階層的に座標変換を施す。意外なことに拡縮が面白い。
- 後半。スクリーン座標への変換も行列演算に置き換える。
- この際、キャンバスのクライアント領域のサイズを採用する。 アスペクト比が絡む箇所はクライアント領域の値を参照すると覚えておく。 また、Y 方向の反転は行列に込める。
u_resolution関係をすべて削除。
- 仕上げ。行列演算の左辺値版も実装し、コードで使う配列の数を減らす。
JavaScript は関数オーバーロードができないので、
translationをtranslateにするなどとして関数名を増やす。
13:50 雨が降ってくる。
行列のあと、また道が二つに分かれているようで、実は 3D が正解。
- WebGL2 - Orthographic 3D
- 3D のほうが処理コードは短くなる。長くなるのはデータ定義。
- 奥行きに関する処理追加。
- HTML 側も UI のための場所取りコードを追加。次元が増えるから仕方がない。
- JavaScript 側も本当は次元が変わることによる直接の変更しかない。
- 前半は平たい F の字を描画させるところで終わる。
集中力が切れて開発ディレクトリーの整理などをする。 砂箱ディレクトリーにバックアップしたい素材がいくつかある。JavaScript/WebGL 周りで。
15:00 おやつ休憩。コッペパンジャム&マーガリンのみ。
15:35 コードを書くのをやめて外出。スカイツリータウン。トイレ。書店。 買わないとはいえ、週プレがないのはつらい。
押上駅バス停に移動して錦糸公園前までバスで移動。 いったん西友錦糸町店に足を運ぶ。秋物の上着で安いのがないかチェックする。 あるにはあるが、素材がつぶしの効かないものなのでやめる。
17:05 ブックオフロッテシティー錦糸町店で時間つぶし。 『亭主元気で犬がいい』『憂国のラスプーチン』などをチェック。
退店してオリナス錦糸町へ移動。
18:00 タイトー F ステーションオリナス錦糸町店。MJ プロ卓東風戦 6 クレ。 5 クレ目最後のゲーム終了後 2 着で終了して GP が十分あるのに、 何を勘違いしたのかコインを投入してしまう。今日のゲーム内容よりもこのミスのほうがダメ。
【SCORE】
合計SCORE:-67.7
【最終段位】
四人打ち段位:覇王 幻球:2
【9/6の最新8試合の履歴】
1st|--------
2nd|*--*--**
3rd|-**-*---
4th|-----*--
old new
【順位】
1位回数:0(0.00%)
2位回数:4(50.00%)
3位回数:3(37.50%)
4位回数:1(12.50%)
平均順位:2.63
プレイ局数:39局
【打ち筋】
アガリ率:25.64%(10/39)
平均アガリ翻:2.40翻
平均アガリ巡目:13.20巡
振込み率:7.69%(3/39)
【9/6の最高役】
最高役のデータがありません。最高役は、跳満以上のアガリが対象となります。
その勘違い直前のゲームでは、ラス目でオーラスを親で迎えたのを丸々は無駄にせず、 粘って二局アガって二着まで着順を戻したのは良かった。上級者ばかりの卓でよく踏ん張った。自画自賛しておく。
19:55 カスミオリナス錦糸町店。459 円。クーポン使用。
- 野菜ジュース (900)
- オクラ茄子丼
- とり天にんにく胡椒
- ブラックチョコ
20:15 ビッグエー墨田業平店。218 円。
- 絹豆腐
- 小粒納豆 (3)
- チキンカツバーガー
- コッペパン和栗&ホイップ
20:25 曳舟の部屋に戻る。仕事用の携帯電話に充電を仕込んでからシャワーを浴びる。 涼しくなってきたせいなのか、インキンがまたかゆい。
風呂から出てシャツを着ようとしたらまだ乾いていない。もう夏は終わった。 PC を起動して晩飯など。麻雀の練習。
22:00 メールチェック終了。二社から返事あり。 一社は面接へ進んで時間の調整。もう一社は質問が来たので回答する。こちらは脈なしだな。
- (21/09/06)BEMANIコンポーザーの[TAG]がKONAMI退社を発表。 今後はフリーの作曲家として活動していくとのこと : エムジフ~音ゲー情報局(MGIF)~: これは Twitter のトレンドにも私のタイムラインにも流れてきて驚いた。
- WebGL2 - Orthographic 3D 続き
- まず F 型に厚みを付けて立体的にする。全面同色なのでやはり意味がない。
- 次に F 型の各面を別の色にする修正。シェーダーの修正を間違いやすい。変数名の付け方を入念にしてあるというのに。
m4.scale(matrix, scale[0], scale[1], scale[2])みたいな呼び出しについてはスプレッド構文を採用するといい。- 現象を説明されてから culling をオンにする。すると一部の三角形の向きを誤って定義していたことが見える。
- 頂点の順序を正しく調整してもまだ不足であることを理解する。最後に depth test をオンにして正常化する。
22:55 Orthographic 3D 終了。その名が示すように、F 型がビューボリューム内にある限りは Z 方向の移動量を変化させても見てくれが変わらない。ズームしたりしない。
いったん休憩をはさむ。
- WebGL2 3D Perspective
- Ortho のコードをベースに変更。
fudgeFactorだけでまずは透視図法を実現する。理論的にはこれで十分。スライダーバーの追加を忘れるな。vec4(position.xy / zToDivideBy, position.zw)とvec4(position.xyz, zToDivideBy)は等価。この原理は重要。- 関数
makeZToWMatrix(fudgeFactor)はさっき頂点シェーダーで書き下していた行列を返すと考えていい。 - さっきの課題から Z 方向の拡縮係数を負にすると三角形の向きが乱れる。
- 最後に fudge をやめて
perspectiveに置き換える。UI も置き換える。初期値も変更する。