【ホイール比較】BORA ONE(ボーラワン 35mm)とZONDA(ゾンダ)を乗り比べてみた結果

2022年10月18日にマイナビ出版さんより発売された「Web Designing 2022年12月号」に菅沼のインタビューを掲載していただきました。 技術の深い話ではなく、フレームワークを使うと何が変わるのか、といった内容が主なので、現役のエンジニアよりはディレクターに向けた内容になっています
出版社サイトはこちら:
ホイール新品 4本セット FORCE デルタフォース オーバル ブラックマシニング 16インチ 5H114.3 7J+35 業販4本購入で送料無料 デリカD5 MC後期 タイヤSETもご相談下さい"> Macbook のディスプレイや Eve Spectrum とも比較をしながらレビューしていく 実際にドット抜けもなく非常にコスパに優れた良い製品でした。

ブリヂストン【POTENZA】RW007のホイールの拘りが凄い!

制作現場で重要となる項目について、AG274UXP/11のスペックは下記の通り
解像度:4K
ビット深度:True10bit
リフレッシュレート:160Hz
色域:P3 102% MacbookのP3カバー率は明記されていないが、ズーム AJ-I 車高調 プリウスα ZVW40W Zoom AJ-1 AJ1 車高調整キット サスペンションキット ローダウン コイルオーバー【店頭受取対応商品】">ので、おそらく公称値98%のディスプレイと同程度と考えると良さそう。
少なくとも AG274UXP/11 は、 Spectrum や MacbookPro より広い色域を表現できるということだ。
色域以外でもビット深度が8bit+FRCではなく True 10bit であることやリフレッシュレートが最大160Hzである点など、完全な上位互換となっている
あと、おまけでモニターフードもついてきます
マルチディスプレイとは相性が悪いが、つけてるとデキるデザイナーっぽい演出ができるのでオススメ

RAYS新作ホイール一気に紹介!!

Spectrum では、おそらくディスプレイのファームウェアの問題で type-c to type-c で繋ぐと60Hzまでしか出力できず、 type-c to DP で繋いで4K144Hzを出力していたが、AG274UXP/11では type-c to type-c で繋いでも4K120Hzを選ぶことができた。もちろんThunderboltなので、1本繋ぐだけでディスプレイをUSBハブとしても利用可能。 それだけならよくあるゲーミングディスプレイなのだが、AG274UXP/11に至ってはなんとロゴプロジェクターまでついている。
ウェッズ F ZERO FZ-1 4本セット ホイール ヴァンガード 30系 0038984 weds ウエッズ Fゼロ FZ1 アルミホイール 4枚 1台分【店頭受取対応商品】
AOCの、このフラッグシップモデルに対する熱い思いはひしひしと伝わってくるが、まったくもって不要である。設定からすべてオフにできるので不要な方もご心配なく。

【新型BRZ】色んなホイール装着!|履き比べ

制作現場で使うディスプレイとしては完璧と言っていいくらいのスペックで、それに対する価格では最強と言っても過言ではないと思う ちょっとクセは強めですが。

  • 解像度が4Kよりも縦に広い(デザインツールなどでは使いやすいと思う)
  • VESAマウントに非対応

AG274UXP/11はVESAにも対応してるけど、アームでロゴプロジェクターって相性悪くないのかなあ。

下記コマンドでTCP Segmentation Offload を無効にする。
sudo sysctl -w net.inet.tcp.tso=0

(以下すべてmacOS Catalinaで検証しています。)
Mac同士をThunderbolt3ケーブルなどを繋いでThunberboltブリッジ接続しネットワーク共有をした場合に、アップロードの速度が1MB/s以下と異常に遅いのですが、それを解決する方法を見つけました。
235/50R18 101H XL ミシュラン 正規品 エックスアイス スノーエンケイ レーシング RPF1 シルバー 18-8J国産車用 スタッドレスタイヤホイール4本セット 取付店直送可"> に答えが載っていました。
確かに下記2種類のコマンドのどちらかで解決しました。これらは実際のところ何の設定を変えるコマンドなのでしょうか?

net.inet.tcp.tso=0 はTCP Segmentation Offload を無効にしています。
一方 net.link.generic.system.hwcksum_tx=0 は TCP Checksum Offload を無効にしています。
ではなぜ、TCP Segmentation Offloadを無効にしたりTCP Checksum Offloadを無効にしないと異常にネットの上りが遅いのか?
TCP Checksum Offloadを無効にすると書き込み速度が落ちるのか?
答えはわかりませんでした。 お恥ずかしながら自分用の備忘録としてかきます。
ウェッズ F ZERO FZ-1 4本セット ホイール ヴァンガード 30系 0038984 weds ウエッズ Fゼロ FZ1 アルミホイール 4枚 1台分【店頭受取対応商品】
こういうよくあるボタンを描いた時、 一旦アウトライン化して位置図るか〜…🤔
という旧石器時代みたいな方法で毎度描いてたのですが
令和のイラレは進化していた!!!!

  1. [キーオブジェクトに整列]にしておく
  2. 整列パネルの右上メニューにある [字形の境界に整列] → [ポイント文字] にチェックを入れる
  3. ボタンの枠をキーオブジェクトにして[垂直方向に整列]


すると…

いい感じに中央揃えになってる!! Thank you Adobe…

キーオブジェクトをアイコンにすれば、
アイコン付きの文字列も天地中央揃えでキレイに揃います。

いやこれほんと全デザイナーが待ってたやつ…!一体いつ実装されたんだ!? 自分は最初に覚えた知識のままアップデートできてないなと実感した日でした。日々勉強!おしまい!!

タイトルの通りなのですが、なぜかとある条件のべき乗を計算するとNaNが返ってくるので不思議に思って調べてみました(調べてくれたのは神谷)。
その条件は、基数が負なおかつ指数が分数 であること。
たとえば (-8)**(2/3) という計算は、答えは 4 なのですが、JSで計算をするとNaNが返ります。
(-8)**(2/3) // NaN

一体全体何が起きているのか?
答えは ブリッツ/BLITZ スタビリンクアジャスター スバル WRX STI VAB EJ20"> に書いてありました。

// due to "even" and "odd" roots laying close to each other,
// and limits in the floating number precision,
// negative bases with fractional exponents always return NaN

最初の一行の意味はわからなかったのですが、要するに浮動小数点の精度の問題で 基数が負なおかつ指数が分数のときは静的にNaNを返すのがJSの仕様 ということみたいです
実際にMath.powで同じことをしても結果はNaNでした。
Math.pow(-8, 2/3) // NaN

試しに、指数の分数を分解して (3√(-8))^2 で計算してみると√4 の答えは ±2 と学校で習った記憶がある。たとえば WordPress サイトなんかで、サーバーサイドは変更せずに簡易的な非同期遷移を実装しようと思ったらこういう実装になる。
const xhr = new XMLHttpRequest(); xhr.open('GET', 'http://192.168.x.x/hoge/fuga', true); xhr.responseType = 'document'; xhr.addEventListener('readystatechange', () => { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { const html = xhr.response.querySelector('.hogehoge-selector').innerHTML; container.innerHTML = html; }); xhr.send();

注目スべきはここ
xhr.responseType = 'document';

document を指定することで xhr.response がDocumentで返ってくるので、いきなり querySelector なんかを使うことができるのだ。TypeError: null is not an object (evaluating 'xhr.response.querySelector')
readystatechange リスナー内の xhr.responsenull だというのだ。
xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200 という条件式の中にあるにも関わらず。しかもこのエラー、毎回出るのではなく、5回に1回程度の割合で出るのでたちが悪い。
試しにDocumentではなく文字列で取得してみる
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { console.log(xhr.responseText);

InvalidStateError: The object is in an invalid state.
xhr.responseText にアクセスすらできない状態で、エラー内容もよくわからない。
ヨネックス レクシス スピード 1.25 1.30mm YONEX REXIS SPEED 200m ロール ガット ポリエステル ストリング">、どうやらガーベジコレクションが行われたオブジェクトに対してアクセスしたときに出るエラーのようだ。まだ使ってないのにGCが発火してしまったらしい。少しずつ行数を増やしていくと、徐々にエラーになる確率が増えていくような感じがあるので、やはりメモリ管理にバグがあるらしい。行った対処法としては、xhr.responseType = 'text'; xhr.addEventListener('readystatechange', () => { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { const parser = new DOMParser(); const doc = parser.parseFromString(xhr.response, 'text/html'); console.log(doc); });

もしくはレガシーコードは窓から投げ捨てて、素直に fetch で書き直してればこんなバグには遭遇しないのだ。 やってみたくても中々ハードルが高くて躊躇していたのですが… (※ちなみにPhotoshopでパス書く場合はIllustrator不要です)
主な流れとしては、
① Illustratorでパス書く
② Photoshopで3Dにする
③ Dimensionで3Dを編集する

おもちです。白くてまるい。足が4本、角が3本あります。


Illustratorを起動してペンツールでキャラクターのシルエットのパスを書きます。
(※ Photoshopでパス描ける方はIllustrator使わなくてOKです)
パスを描くときは3Dにした際のガタつきを減らすため、 また、丸いシルエットにするためコーナーを角丸にしておきます。
(色は後で変更するのでわかりやすいよう水色にしています)
保存形式はaiでOK。体と顔パーツは別のaiファイルにしておきます。

先ほど作成したaiファイルをPhotoshopで読み込みます。
解像度は300dpi、カラーモードはRGBカラーにしましょう。
(RGBカラー以外だと3D作成できません)

読み込み後はレイヤーを選択し、 図がなんとなく3Dぽくなって、3Dメニューが出ます。

3Dメニューのレイヤー1を選択し、プロパティのシェイププリセットからピロー効果を選択します。すると何だか表面がぷっくりします。

次はプロパティのキャップに移動し
変数を[フロントとバック]、膨張の角度を[90°]強さは[20%]に設定します。
強さを上げるとふくらみが強くなります。

好みのふくらみ加減になったら、座標→座標を初期化をクリックして座標位置をリセットしておきます。

ここまでできたら書き出しましょう。
メニューバーの[3D]→[3Dレイヤーを書き出し]を選択します。
3Dファイル形式を[Wavefront|OBJ]に変更して保存します。

同じ工程で顔パーツも作成します。 その後、顔パーツの.objファイルを上にドラッグしてパーツが2つ並ぶように配置します。

ここから軌道カメラツールなどを駆使しつつ顔パーツを体パーツに埋め込みます。

↑軌道カメラツール。ぐるぐる回る

↑パンツール。近寄ったり離れたりする

遠近ツール。手前に寄せたり遠ざけたりする メニューバーのカメラ→ホームビューに切り替え(または⌘B)で初期位置に戻しつつがんばります。

顔パーツを選択し、緑色の矢印を選択して十字キー↑を連打。顔の位置を少しずつ上げます。 納得のいく位置に調整できたら、最後に顔パーツと体パーツをグループ化しておきます。
3Dの組み立てが完成したら後は質感と色を変えます。

マットな質感にしたいので、本体パーツをクリックして
スターターアセットの中にある[Adobe標準マテリアル]から[艶消し]を選びます。
プロパティのベースカラーを白色(RGB 255,255,255)に変更します。
顔パーツも艶消しの黒色(RGB 20,20,20)にしました。

ここまでできたら、あとは背景を合成してみます。

右上のシーンメニュー内にある[環境]を選択すると、
背景を置いた後、アクションから
☑️ カンバスサイズを変更→画像の縦横比
☑️ ライトを作成→抽象
☑️ カメラのパースを合わせる にチェックを入れOKボタンを押します。

すると勝手に位置やライティングを調整して、背景に合うよういい感じに仕上げてくれます。すごい。
あとはお好みで位置や大きさなどを微調整しましょう。
完成したら、デザインメニュー横のレンダリングを選択し、
画質や書き出し形式を好きなものに設定して書き出します。


レンダリングしたものがこれになります。
路地裏で猫ちゃんに遭遇したみたいでかわいい~!!

Dimensionは今回初めて触ったのですが思ったより直感的に触れてなんとかなりました。 次回はそっちでも遊んでみたいと思います。
そしてこの記事を書いている間に気がついたのですが、
実は近日中にPhotoshopから3D機能が削除されるみたいです。えっ…??

Photoshop の 3D 機能 | 廃止された 3D 機能に関するよくある質問

Photoshop22.2を使用すれば引き続き3Dを使えるみたいなんですが、
まさかこんなタイミングで削除のお知らせを見るとは…
やっぱりBlenderから逃げるなということなんですかね?あぁ〜〜…


Figmaにはボタンなどのコンポーネントをまとめて管理できるVariantsと呼ばれる機能があるのですが ちなみに昨年追加された機能なのでちょっと今更感ありますが、ご参考になればと思います。

Webデザインでよく使うアイテムは大体コンポーネント化して使っていると思いますが、 をひとつのグループにして管理できるよ!というのがVariantsです。

まずはボタンのコンポーネントを作成します。
例として赤と青のボタンを作りました。
次はコンポーネントに名前をつけます。
名前をつける際は、ボタンのデザイン規則を意識してつけます。

今回つくったのは赤いボタンと青いボタンなので、
それぞれButton / Red、Button / Blue と付けました。規則は/で区切りましょう。
名前を付け終わったら、
Variantで管理したいコンポーネントをすべて選択し、Conbine as variantsを押します。

これでVariants化できました。
ちゃんとVariants化できたか確認してみましょう。
配置したボタンを選択すると右メニューに[Property1]が追加されてます。
(この名称はVariantsのところから後で変更できます)

このプルダウンを選択すると…

ボタンを切り替えることができました!👏
これを活用すれば、たくさんのデザインをVariantsで管理できます。
ちなみにドロップダウンではなくスイッチで切り替えもできます。
私はアイコンのあり/なしで使ってます。

[Variants]は使えるシーンがちょっと限られる機能ですが、症状としてはこんな感じ

ビルド自体は終わっている(標準出力)のに、プロンプトが返ってこないどうやらtypescriptの4.4.xにバグがあるみたいで、4.3.xや4.5.0のデイリービルドなら起きないようだ。ここでは区別を分かりやすくするため、dart製のsassを dart-sass、 node製のsassを node-sass と呼び分けています。

そもそもsass-loaderで何を設定しているのでしょうか。sass-loaderでdart-sassを利用する際はだいたい下記のように設定しているかと思います。では、なぜ dart-sass を利用する場合に fiber プロパティにfibersパッケージを指定しているのでしょうか。しかし、 dart-sassでは非同期にに実行する render() が非同期実行のオーバーヘッドのため renderSync() より2倍近く遅くなってしまいます。これを避けるために、利用されるのがfibresです。速度の早い renderSync() 関数を非同期でするために、このfibersを利用する設定が前述した webpack.config.js です。ただしfibersは作者により使用を避けるべきとされており、node 16への対応もされていません。

つまり記事の冒頭でまとめたように、 node 16 を利用するのであればfibersを利用することはできず、コンパイル速度の低下を受け入れざるを得ません。sass-loaderではdart-sassの場合に renderSync() を利用するクラウン アコード 245/35R19 93Y XL ピレリ パワジー POWERGY MLJ ハイペリオン CVZ19インチ 8.5J 5H114.3グロスブラック/ミルド新品 サマータイヤホイール 4本セット">が立っているのでもしかするとsass-loader側で対応がなされるかもしれません。