Unity:Resources.LoadAllのタイミングで嵌った。
Unityで画像をロードしながら表示させるときに、タイミングの妙によってうまく表示できていませんでした。
1: Instantiate によって生成されるオブジェクトのスクリプト
// class Sub void Start() { this.sprites = Resources.LoadAll<Sprite>("Numbers/"); } void Method() { // ... SpriteRenderer renderer = (SpriteRenderer)obj.AddComponent<SpriteRenderer> (); renderer.sprite = this.sprites[0]; }
GameObject instance = Instantiate(obj_x, transform.position, transform.rotation); instanceGetComponent<Sub>().Method;
2:の方でインスタンスを作ってすぐにメソッドを実行しました。
こうすると1:の方で Start() が終わる前に Method()が実行され、画像がロードできていない不具合が発生します。
Startではなく Awake を使うか、画像を入れる処理を Update() にすべきでした。
自室のPC環境について
リモートワークが始まり、自室にいる時間が極端に長くなりました。
今の状況が始まる前に、色々と環境を整備していたため、かなり快適な空間になっています。どのようなものを揃えたか、列挙しようと思います。
机
幅 180 cm * 奥行き 75 cm * 高さ 72 cm
背景
幅 120 cm と 幅 60 cm の机を並べており、高さがそれぞれ約 75 cm, 65 cm とバラバラで、小さい方はデッドスペースに近い扱いになっていました。
先日 (2020/02)、その二つを取り払い、大きい机一つにしました。
最初はニトリなどで安いものを探していたのですが、幅 180 cm のものがなかなか見つからず、色々探した末に大塚家具で買うことにしました。最初は2~3万円を見ていたのですが、結果的に買ったのは7万円のものです。かなり高額だったため悩みましたが、机はずっと使うのに加え、過ごす時間も長いことも考えて決断しました。
幅 180 cm は 24 ~ 27 inch のモニターを3台並べることができます。
また、奥行き 75 cm も優秀で、 iMac、 MIDIキーボード、キーボードとマウスを配置でき、余裕もあります。
高さ 72 cm は多くの机と同じらしいですが、丁度良くて快適です。
真ん中に iMac を置いて、真ん中に座って作業しています。
椅子
4年前 (2016/03) に購入したアーロンチェアをずっと使っています。定価17万円のものを、中古整備済み品で11万円で買いました。
背や脚などの密着する部分は網目状になっているため、通気性がよく、蒸れたりすることもありません。
iMac 27 inch (Late 2014)
プライベートではメインで使っている PC です。プログラミングだけでなく、音楽やイラストの制作も行っています。
不満なく使えていますが、そろそろ Fusion Drive 内の HDD が心配になってきました。
iMac 用アクセサリ
Magic Keyboard, Magic Mouse 2, Magic TrackPad の、いずれも黒を使用しています。高価なものではありますが、究極のコンパクトさで無駄なスペースを取らず、無線も一切途切れない、素晴らしい純正アクセサリです。
BTO ワークステーション PC
つい最近 (2020/04)、Tsukumo で BTO の PC を注文し、手に入れました。
- OS: Windows 10 Pro
- CPU: Core i9 10940X (14 Core 28 Thread 3.3 GHz)
- Memory: 128GB
- GPU: GeForce RTX 2070 Super
- Storage: SSD 2TB + HDD 2TB
性能を求めるだけ上げ、高額にはなりましたが、長く使うことを見込んで決定しました。筐体は 47 cm * 49 cm * 22 cm と大きめです。
デスクトップ PC のための Logicool のアクセサリ
ゲーミングのキーボード、マウス、ヘッドセットを購入しました。選定の決め手は、よく認知されているブランドで信頼が置ける、機能が豊富、見た目です。 Raser も良さそうと思いましたが、最後は印象です。
基本的に、有線接続のものを選択しています。無線は途切れたりする心配があり、そこでストレスを感じやすいためです。PCとの位置関係に多少の制約が入る可能性があることも要因です。
キーボード Logicool G-PKB-002
軸がクリッキー(音がカチカチなる)タイプのものに、タクタイル(少し弾力がある)タイプの付け替えセットを追加で購入しました。
もともと青軸と茶軸は使っていたので、使い勝手はすでにわかっています。
ワークステーションPCは、負荷のかかるようなプログラミング開発と、ついでにゲームができたら良いと思って買ったのですが、開発はタイプ間違いを誘発しにくいクリッキー、ゲームは入力が滑らかなタクタイルが向いてそうということで、これを選びました。
PCの電源が入ると虹色の波を打つので、暗い部屋でとても綺麗です。設定で色も変えられるようです。
マウス Logicool G502RGBh
ボタンが多く、見た目も気に入った有線のマウスです。とはいっても、本格的にゲームを始めたわけではないので、まだ使いこなせてはいませんが。
また、マウスパッドも購入しました。
マウスパッドでも、ゲームのジャンルなどで異なり、価格もまちまちのようです。基本的に戦略ゲームとかが好きなので、RPG向けのものを買いました。
さて、この二つを用いてマウス操作をすると、手にもすごく馴染むし、マウスパッド上で滑らかに動き回るので、触っててとても気持ち良いです。
ヘッドセット Logicool G633S
マイク付きで、ある程度のノイズキャンセリング機能もある有線のヘッドホンです。仕事のミーティング用に Mac につないでも良いと思って買いました。
装着すると、密閉されたような感覚があって、ある程度はノイズをカットしてくれます。一部分は光ります。
24インチのモニター2枚とデュアルモニターアーム
iMac の右隣に、昔から使っていた2枚の 24 inch モニターを、デュアルモニターアームで縦に並べました。8年前 (2012) に買ったものなので、端子は HDMI 1つに DVI-D, VGA など、DP は無しと、切り替えづらい状態ですが、工夫してなんとか使っています。HDMI端子が複数あるものに買い換えようかとも思いましたが、まだ問題なく使えるのと、廃棄の面倒さを考えて見送ることに。
モニターアームに使ったのはエルゴトロンのモニターアームです。最近使い始めましたが、台の部分が取り払えるので、作業スペースが広がります。また、モニターが自由に動かせるため、裏側のケーブル接続箇所へのアクセスも容易になります。
在庫が多くないのか、値段が上下しています。私は34,000円程度で購入しました。
モニターに繋ぐのは上記の BTO PC ですが、 MacBook系からもつなぎたいときがあります。HDMIは1基しかありませんが、HDMIメス✕メスを使って、差し替えによって切り替えをしています。BTO PC は HDMI 1基と Display Port 複数のため、DP to HDMI も使ってデュアルモニターを実現しています。
ビデオ、ゲーム用の 4K 対応モニター
2ヶ月前 (2020/02) に買いました。 Amazon Prime Video や Nintendo Switch を楽しんでいます。どのモニターにするかは、色々悩んだのですが、 IO-DATA の 27 inch 4K モニターを買いました。本当は光沢の方が好きなのですが、それよりも HDMI 3基に色々繋ぎっぱなしにできるのがとても魅力的でした。これも、エルゴトロンのモニターアームを使って浮かせています。これによってあまりスペースを使わず配置できています。
Amazon Fire TV Cube
Prime Video に浸り始めたのは上記の 27 inch 4K モニターを買ってからです。 Fire TV Cube と大きいモニターで楽しめるのは良いです。
Nintendo Switch
楽しい。ファイアーエムブレムが好きですが、どうぶつの森も良いですね。64からずっと任天堂のゲームを楽しんでいます。昔と違って欲しいソフトは躊躇なく買えます。
モニターが大きいと良いですね。
その他端末
MacBook Pro 16" (2019)
iMac で力不足に感じる機会がいくつかあります。
- iMac に音楽設備を整えており、容易に OS のアップグレードができない。しかし、 Catalina で SideCar を使いたい。
- GPU で機械学習をしたいものの、 iMac に過剰な負荷をかけたくない。
- ストレージの応答が遅い。
これを解消できそうなのが MacBook Pro 16" 新規購入という選択でした。 Docker for Mac を入れて開発をしたり、 SideCar で絵を書いたり。不満点が殆どない PCです。
基本的にカスタマイズするにはオンラインの Apple Store でやらなければなりませんが、好みのカスタムがちょうど Ultimate モデルということで、吊るしで販売されていたため、店舗で買うことができました。
MacBook 12" (2019/02)
MacBook Pro が発売される前に買った、軽量の Mac です。今は売られていないので買っててよかった。ベッドで姿勢を崩しながら使ったりしています。SSH でサーバーを操作したり、ブログを書いたりは問題なくできます。
iPad Pro 12.9" 第四世代
液タブとして買い (2020/03) ました。他にも iPad はありますが、わりと娯楽用途で使っていたため、作業用途で購入。SideCar便利です。 Apple Pencil 2 は初めて。
iPad Pro 12.9" 第一世代 (2016/05)
昔は様々な用途に使っていましたが、今は常にYouTubeを再生しています。 Prime Video をモニターで再生しながらこちらで YouTube を流すと聖徳太子になれます。
iPad Pro 10.5" (2017/11)
Cellular モデルで Sim が入っています。お出かけ用です。
Surface Pro 4 (2017/02)
BTO PC を買う前は久々の Windows PC でした。出番は少ないですが、 Office ソフトや何やかんやで使います。
Google Pixel 3 XL (2018/11)
Google Home で色々操作したり、 Android アプリを使ったりします。 Google フォトの同期が Apple 端末より高速かつ確実に感じるため、取り込み用の写真は殆どこれで撮っています。Simは刺さっていない。
iPhone 11 (2019/10)
普段使いの携帯電話。グリーンはお洒落。
Apple Watch 5 (2019/11)
出かけるときは身につけていますが、最近出かけていない。
Google Home Mini (2018, 2020)
水色と橙色でステレオサウンドにしています。 YouTube Premium に加入しているので、音楽を流せるし、後述する Philips Hue の照明の調整を音声でできます。
照明
Philips Hue
2ヶ月前 (2020/02) から使っていますが、気分をガラッと変えられる素晴らしいアイテムです。好きな色の照明となり、部屋をお洒落に印象づけてくれます。最初はブリッジという、デバイス管理機能のあるものが付いたライト2個セットを購入しました。ブリッジは、1つあればデバイス50個を管理できるようです。有線LANに繋ぐ必要があるので注意。
設定をすれば、 Google Home Mini で音声により色を変更できます。気分転換が一瞬でできるし、部屋を暗くすると特別な空間を演出できます。最初は2個だけでしたが、途中でもう2個(ブリッジ無し)追加しました。さらに、Hue Go という別の形状のライトも追加しました。
Hue Go は、Zoomでのミーティング中に顔の部分が明るくなれば良いと思って買ったのですが、想定の役割はあまり果たしてくれませんでした。しかし、他の Hue ライトと違う色を照らして、更に楽しい空間を演出できるため、後悔はしていません。
その他アクセサリ
タワー式電源タップ
充電しなければいけない端末が沢山あるため、沢山差し込める電源タップを買いました。タワー式だと、横長、縦長に場所を取る必要がないため、テーブルの上に置きやすいです。到着した実物は結構な大きさだったため、12口のタイプだとモニターにぶつかりそうだったので、8口のものにして良かったと思いました。
欠点は、電源管理が完全個別ではなく、どれに対応しているのかよくわからない電源スイッチが2つあります。使い方がわからないので、ノートPCの充電器など、いつ電源供給が切れても問題ないもののみを差し込み、本体の電源は別のスイッチ付き電源タップに繋ぎ、そこのオンオフで管理しています。
あとは、よく知らないブランド (BEVA) なのでちょっと不安なのはあります。今の所、問題なく快適に使えています。
ノートPCスタンド
ノートPCや iPad が複数あるため、このスタンドに立てています。
3つ立てられるのですが、真ん中はサイズ調整ができず、 MacBook (12 inch) すら入らないため、 iPad を乗せています。両端はサイズ調整できるので、そこそこ何でも立てられます。 Surface Pro 4 と MacBook (12") を立てています。棚に置いておくより取り出しやすくて便利。
Satechi USB Type-C ハブ
純正の Mac 用 USB Type C to USB Type A + HDMI + USB Type C のものも持っているのですが、こちらは USB Type A が一つしかないため、キーボードとヘッドセットその他諸々を使おうと思うと足りません。そこで Satechi のハブを購入しました。
Satechi は多くのガジェット系 YouTuber が紹介されているし、実際使ってみて良いので、わりと信頼しています。信頼できるかっていうのはわりと重要ですよ、気分的に。
AirPods Pro (2020/03)
すごい。
tfull.hatenablog.jp
PCスタンド (2020/01)
好きな角度に調節できるスタンドです。角度調整はちょっと硬いですが、とても使いやすいです。
私の用途は、ベッドに仰向けになりながら、枕とクッションで頭を上げ、足にスタンドを置いて MacBook (12") を乗せて楽な姿勢で作業したり、机にスタンドを乗せ、 MacBook Pro を置き、キーボードを繋げ、視線を少し高めて作業したりします。
もともと純正のスタンドを昔売られていたときに買っていて、最近まで使っていたのですが、こちらの方が便利です。好きな角度にできるので、 iPad を置くのも良さそうです。
Google Nest Wifi (2020/02)
素晴らしい ルーターです。
tfull.hatenablog.jp
所感
ノートPCや iPad の収納に苦労しているので、どうにかしたい。
私がMacのパソコンで日本語配列のキーボードを使っている理由
学生時代にMacを購入し、以来8年以上Macを使い続けています。
学生の頃、優秀な同期は英字配列のキーボードを使っていることが多かったのですが、私は日本語配列のキーボードをずっと使っています。
日本語配列の利点や特徴について、以下を参考にしてください。日本語配列以外でよく日本で使われるUS(英字)配列と比較します。
日本語配列特有の利点
Controlキーが使いやすい場所にある
Control キーが "A" の隣りにあります。US 配列で同じ箇所にあるものは CapsLock キーですが、日本人にとってはこれはあまり使う機会がありません。 "A" の隣という使いやすい部分、小指が置きやすい箇所に Control があるため、指を伸ばさずとも快適に使えます。
この Control で何を行うかというと、テキストエリアでのカーソル移動です。 Mac では、ほとんどのテキストエリア(文字を入力するところ)で Emacs のキーバインドによるカーソル移動が使えます。
よく使うものを挙げると、次のようになります。
- Ctrl + f で次の文字へ移動
- Ctrl + b で前の文字へ移動
- Ctrl + n で次の行へ移動
- Ctrl + p で前の行へ移動
- Ctrl + a で行頭へ移動
- Ctrl + e で行末へ移動
- Ctrl + h で前の一文字を消す
- Ctrl + d で次の一文字を消す
- Ctrl + k で行末まで削除
これにより、矢印キーや BackSpace, Delete キーに手を伸ばす必要がなく、入力作業が非常に快適なものとなります。 Emacs を使ったり、それに準じたキーバインドのテキストエディタを使ってきた私にとっては、これがものすごく大きいです。
ショートカットとしてよく使われる Command キーとは別に Control キーがあるのは Mac の特徴ですが、それを最大限活かすことができます。
なお、キーの配置は設定で入れ替えることができますが、最初から使いやすい状態で設定されている、本来の意図の通りに使えるというのは、私は重要だと考えています。
「かな」キーと「英数」キーがある
英数字を全く入力しないということは殆ど無いでしょう。日本語で入力する際にも、英字を混ぜて書くことになると思います。そのときに、入力モードを切り替える必要があります。 Mac の日本語配列以外のキーボードを用いる場合、一回押すとかな、もう一回押すと英数字のように、今の状態によって切り替わるキーを押下することになります。
この場合、現在の入力モードを覚えておかないと、例えば、「かなを入力したいときに、入力切替キーによってかなから英数字に変わって、数文字入力して間違えていることに気づき、消して入力切替をもう一度押して、かなを入力する。」という手間のかかることが起こります。
しかし、 Mac の日本語配列キーはかなキーと英数キーが独立しているため、入力したい方を一度押下してから入力に入ると、間違いが殆ど無くなります。これがストレスを激減させると考えています。
Enterキーが大きい
Enter キーは頻繁に使うキーでしょう。改行に加えて、日本語の漢字変換を決定するときにも押されます。これが大きいと、エンター押下ミスが起こりにくくなり、入力作業が快適になります。シンプルですが、効果は大きいと思われます。
日本語配列特有の欠点
"1" キーが変に大きい
数字のキーのなかで、 "1" だけが横幅を長く持っています。ちょっと見た目的にも格好良くはありません。
キーに印字されている文字が多い
キーに印字されている文字は、英字、数字、記号に加え、かなも書かれてあります。見た目が煩わしいと感じられる方もいるでしょう。
その他の日本語配列と英字配列の違い
記号のキーの場所が違う
これは慣れの問題だと思います。
まとめ
以上の理由から、見た目さえ許容できれば、日本語配列にするメリットはかなり多いと思っております。
Pythonでプログラムの実行中に対話モードになる方法
プログラムの実行中に、途中のこの変数を見たり、少し弄ったりしたいと考えることがありましたが、ふと思いついたので実現できました。
コードの中にこれを挟み込むだけです。
while True: try: print(eval(input(">>> "))) except EOFError: print() break except Exception as e: print(e)
inputで読み込んで、それをevalで評価し、結果をprintするのを繰り返します。
Ctrl-D で EOFError が発生し、ループを抜けることができます。
エラーが出た場合は、メッセージを出力してやり直しになります。標準エラー出力にするとimportが必要になるため、printで標準出力するようにしました。
コードの中で複数挟み込むことで、複数の箇所で対話モードに入れます。
Rubyなどでも同じようなことができそうですね。
Dockerコンテナ内のlocalhost起動に気をつける
問題
Ruby の sinatra で、APIサーバー (server.rb) を作っていました。
ReactJS と共存させるために Docker へ移行していたのですが、少し詰まってしまいました。
docker-compose.yml で
api: command: ruby server.rb ports: - "12345:4567"
と mapping を設定することで、外部から ttp://(ホスト名):12345" で読み込めるはずだったのですが、接続できません。
ホストで curl localhost:12345 を実行しても、
curl: (56) Recv failure: 接続が相手からリセットされました
を乱発することに。
ただし、 docker コンテナの中に入って
curl localhost:4567
とすると問題なく反応しています。
解決
ローカルで実行していたときは、実行時のコマンドで
ruby server.rb -o 0.0.0.0 -p 12345
としていたのですが、ポートは docker-compose.yml でマッピングできるからと、引数 (-p 12345) を消していました。
このとき、ホスト (-o 0.0.0.0) の部分まで消してしまっており、そこが問題の発生に繋がりました。
通常ならすぐに原因は見つかるはずだったと思うのですが、今回は Docker 移行の際にこの問題に直面し、 Docker に関する問題と疑ってかかってしまったため、調査が長引く結果となりました。
Docker コンテナ内でも、 localhost で起動するのではなく、 ホストを 0.0.0.0 とすることが必要です。
api: command: ruby server.rb -o 0.0.0.0 ports: - "12345:4567"
で無事繋がりました。
初めてのノイズキャンセリング体験: AirPods Pro
ネットで注文した AirPods Pro が届きました。
発売後、店頭 Apple Store に行っても売り切れの状態がずっと続いていたため、ネットで注文するほうが確実で早いだろうと思い、ネットで注文しました。
到着までに1ヶ月弱かかりましたが、それでも現在も店頭で売り切れているため、良い判断だったと思います。
ネット注文限定の、刻印も入れてもらいました。
以下、良かった点と気になる点です。
良かった点
素晴らしいノイズキャンセリング機能
ノイキャン自体、体験するのは初めてでしたが、感動するものでした。
細かいノイズなどは全部排除されます。外の大きい声や、目の前で手を叩く音などは、音の小さい状態になって届きます。
フィット感
カナル型で、耳にとてもフィットします。あまり落ちる心配をしなくても良さそうです。
切り替えが簡単
ノイズキャンセリング、外部音取り込み、オフの中からモードが選べ、接続した Apple 端末で簡単に切り替えられます。
気になった点
LとRを間違えやすい
ノイズキャンセリングや外部音取り込みが勝手にオフに切り替わるので疑問に思っていたら、LとRを逆にセットしていました。個人的には、
高い
イヤホン3万円は気軽に買える値段ではないですし、小さいため紛失しないか心配になります。
Google Nest Wifi が素晴らしく快適だった
Wifi 環境を改善するために、 Google Nest Wifi を購入したら、予想以上に良かったので、まとめたいと思います。
ネットワーク環境の変化
今までは、モデムのある書斎かつ寝室である部屋に通常のルーターを配置し、離れたリビングに中継ポイントを配置していました。
Google Nest Wifi を購入して、ルーターと中継ポイントをおいていた箇所に、入れ替えるようにルーターと拡張ポイントを配置しました。
良かった点
コンパクト
大きさがコンパクトなので、机の下に置いていてもあまり邪魔に感じません。
また、丸っこく背が低くて安定しているため、倒れる心配がない、足がぶつかって痛いなどもありません。
通信が頑健で途切れない
以前のルーター+中継ポイントは、書斎で使う文には問題ありませんでしたが、書斎からリビングまでの間にあるドアを挟んでしまうと、通信がかなり不安定になるという問題がありました。したがって、その間のドアを開放して使うという、「運用でカバー」状態になっていました。これを Nest Wifi にすることで、ドアを挟んでも通信が安定しており、リビングの大きいテレビで Nintendo Switch の通信対戦などを行うのが快適になりました。
また、以前は電子レンジを使っているときに電波が途切れてしまうという問題があり、電子レンジを使うのが億劫になる場面があったのですが、こちらも解決し、懸念点を一つ払拭することができました。
SSID が統一されている
まず、ルーターに2.4 GHz と 5 GHz の SSID. そして、中継ポイントに別 SSID で 2.4GHz, 5GHz があるため、4つのSSIDを登録して使い分けるような運用になっていましたが、自身で Google Home を用いて設定した SSID とパスワードによって、一つのSSIDを登録すれば使えます。SSID とパスワードを自分で設定できるため、覚えやすい名前をつけられるのもメリットの一つです。
Google Home が使える
拡張ポイントの方は Google Home が使えます。「OK グーグル」で、今日の天気を聞いたり、(YouTube Premium に入っているので)YouTube Musicを流したり、思いの外これが役に立っています。思いの外便利だったため、書斎に Google Home Mini を追加で買いました。携帯に入れた Google Home からブロードキャスト機能で伝言を発したりもできます。