altebute.hatenablog.com

犬も歩けば規格にあたる

スマホ用の落下防止ストラップを自作した話

使っていたWiiリモコン専用ストラップの松葉紐が切れそうになっていたので、交換するにあたって以下の条件を満たす製品を探した。

  • 松葉紐が簡単に交換出来ること。
  • 腕を通す穴の大きさを調節出来ること。
  • スマホ上部に取り付けた時丁度よい長さであること。

しかし、見つけられなかったので自作することにした。

材料は以下の3点。

材料の選定にあたっては、メーカーの有名さ、製品の売り上げ、レビュー、評価の順に重視した。

NuAns NEO [Reloaded]にはストラップホールがあったが、Pixel 3aにはない。しかし幸いPixel 3aにはイヤホンジャックがあるので、以下の製品でストラップホールを確保できる。

以前はPluggy Lockを使用していたが、国内供給が安定していないのか値段がばらついていたのでalumania STRAP TYPE HEADPHONE CAP for 3.5mm PLUGで代用した。出来ればオリジナルの製品を利用したいところだが、致し方なし。

ドラゴンクエストビルダーズの感想

Switch版のドラゴンクエストビルダーズをプレイした。ストーリーは一通りプレイしたが、フリービルドまでやる気は起きなかった。

単なるマインクラフトフォロワーではなく、しっかりとドラクエ、それもロトシリーズの系譜に連なる作品として良くできていた。

既に各所でも語られている事だが、ストーリーの章が進むとそれまでに築いた資産が失われる点や、ボス戦の面白くなさは大きな欠点で、個人的には閉所での操作のし辛さも気になった。

一方でNPCとの会話の軽妙かつ誰もが個性的で素晴らしかった。竜王の動機付けがやや強引だったり、全体的に話の内容がDQ7的で暗いのは気になったが、最終章の雰囲気はDQ3で初めてアレフガルドに降りたった時を思い出させる物で、心揺さぶるものがあった。ルビスがそれまでのシリーズと比べて過干渉気味で、かつ不信感を募らせる演出は興味深かった。

2にも期待している。

Acer Chromebook Tab 10が欲しい

これまで度々タブレットが欲しいと度々思いつつも結局買うまでには至らなかったが、Acer Chromebook Tab 10はかなり欲しい。

Windowsタブレットはフル機能のWindowsが使えることは魅力的だがタブレットとしては使いづらい。iPadは悪くないが不自由さが目につく。Androidタブレットは決定打に欠ける。

ChromebookならばPC版と同等のUIのGoogle Chromeが動くし、SoCが対応していれば開発者モードを有効化しchromebrewを導入する事でgit等の主要なパッケージはインストール出来る。

私的にはアスペクト比は3:2が良かったが、最近はラップトップなら3:2が良いがラップトップなら4:3でも良いかなと思い始めた。

問題は国内でのChromebook Tab 10が困難な事だが。

日記 2018-03

  • 外耳炎で病院のお世話になった。通院不要になるまで大分かかった。
  • 薄い財布を買った。良い。
  • 気合いを入れて風呂の排水溝を掃除した。吐き気を催す邪悪な臭いだった。
  • バンナイズのデジアナ格納庫-9のレッグバッグが欲しい。
  • この日記を書くためにBlackBerry KEYoneが欲しいと思ったが、コストに見合わない上に巨大で重いので止めた。
  • MSYS2上でgccから比較的新しめのC++を利用出来る環境を構築した。std::is_aggregate_vが動いて僕満足。
    • 上記に伴いGit for Windowsを削除して、MSYS2上で諸々の環境を構築した方が良い気がしてきた。
      • しばらく運用して、あくまでMSYS2はWindows上で動作するLinuxライクな環境として運用すべきだという結論に達した。パッケージマネージャーが使いたければChocolatey使おう。
  • Unityを再開した。

Git 環境構築メモ on Windows

CUIGUIは分けて考える. 導入するツールは以下の通り.

ライセンスに気をつける. 特にGUIアプリケーション. GUIアプリケーションは好きなもの1つでよいだろう.


各アプリケーションの更新はRSSを購読して確認する.

GUIアプリケーションは更新通知機能がついてたり, ついていなかったりするかも知れない. 最近Sourcetreeが不自然な挙動見せるけど実利用で問題ないので見て見ぬふりをする.


基本的に公式に書いてある手順に従って導入する.

GitのインストーラはオプションでGit LFSも同時にインストールする事が出来るが, 必ずしも最新版とは限らないため使わない方が良い. git-lfs/README.mdに従ってインストールしよう.

git-flowはWindowsだとちょっと難しい感じがしないでもない.


シェルはGit Bashが基本だが, 余力があればfish shell等を導入しても良いかも知れない. ここらへんUnix, Linux環境向けの話ばかりで初心者はトラブルが起きた時自分で対応出来ない気がする.

シェルを思い通りにしようと思うと, コマンドプロンプト, Windows PowerShell, Git Bash, Cygwin, MSYS2等の各のシェルについてどのようにパスを通し, どのように環境変数が参照されるのかを把握する必要があるため, 学習コストが高い.

基本的に長いものにはまかれろの精神で, メジャーでカスタマイズする項目が少なくて済むツールを導入する. 多くの人が使用している環境の方が情報も豊富.


まずgit init --bare --sharedでベアリポジトリを作成. ディレクトリを作成する訳ではなく, カレントリディレクトリ自身をリポジトリに作成するので注意. ベアリポジトリの名前はxxx.gitとするのが通例.

次にgit clone <repository> [<directory>]でベアリポジトリをクローン, ノンベアリポジトリを作成する. クローン先のディレクトリが空でなかった場合, クローンに失敗する. 指定しなかった場合, リポジトリ名と同じ名前のディレクトリを作成し, そこにクローンする. 作成しようとしたディレクトリ名のディレクトリが既に存在した場合, クローンに失敗する.

Git LFSの設定はワークツリー内で行う. 例えばgit lfs track "*.png"等とすればpngファイルのコミット時にGit LFSが使用される. 設定は.gitattributesファイルに保存される. 恐らく, Gitの操作をする際にこのファイルを読み, それに従ってコミットを行う, という仕組みなのだろう. 当然Git LFSの設定は共有すべきなので.gitattributesファイルはコミットしておく.

最後にgit-flowの初期化処理を行う. git flow initで初期化したらそれで終わりである. 対話形式で初期設定を行うが, 基本的にデフォルトの設定で構わない. 尚, この行程はGUIアプリケーションでもたぶん問題ない.


その他, SSHの設定等が必要かもしれないが, サーバーをきちんと用意したりしないのであればたぶんデフォルトで問題ない.

尚, Git LFSは自身が管理するファイルについて, 複数のユーザによる同時アップロードが発生した際の競合を防ぐためのファイルロックの仕組みを備えるが, 殆どサーバは実装していないため, 以下のような警告が発生するかも知れない. その場合警告に従ってこの設定を無効化する必要があるかも知れない. 詳細はこちら

Remote "origin" does not support the LFS locking API. Consider disabling it with
:
  $ git config lfs.C:/Users/agate_pris/test.git/info/lfs.locksverify false

以上.

Unity プロジェクト作成

手順

  1. Dropbox 上にディレクトproject-name を作成.
  2. そのディレクトリに移動.
  3. 以下のコマンドを実行.
    git init --bare --shared=true project-name.git
  4. 同期の完了を待つ.
  5. 作業用ディレクトリにプル. ディレクトリ名は project-name/dev.git にした.
  6. dev.git に移動 Unity のプロジェクト project-name.unity を作成.
  7. Assets/ProjectName/Games/Game.cs を作成, Visual Studio で開ける事を確認, シーン Game に空のオブジェクト Game を作成し, コンポーネント Game を追加. 実行確認.
  8. .gitignore を作成. 内容は後述.
  9. コミット, プッシュ.

.gitignore

/project-name.unity/[Aa]ssets/AssetStoreTools*
/project-name.unity/[Bb]uild/
/project-name.unity/[Bb]uilds/
/project-name.unity/[Ll]ibrary/
/project-name.unity/[Oo]bj/
/project-name.unity/[Tt]emp/

# Autogenerated VS/MD solution and project files
ExportedObj/
*.booproj
*.csproj
*.pidb
*.sln
*.suo
*.svd
*.tmp
*.unityproj
*.user
*.userprefs

# Unity3D generated meta files
*.pidb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

ディレクトリ構成

リモート

  • project-name
    • project-name.git

ローカル

  • project-name
    • dev.git
      • .gitignore
      • project-name.unity

dev.git については, ブランチを切る時はまた別のディレクトリを作成してそこで作業をする.

参考文献

Unityを三日坊主して分かった事

最初から目標を大きくするな

それ一番言われてるから.

使用する機能を最初から隅から隅まで理解しようとするな

機能が必要になったら調べればいい. そもそも全体を把握しないと何のためにあるのか分からない事もある.

郷に入らば郷に従え

エンジンの設計に逆らうのはエンジンをある程度理解してからでも遅くない.

案ずるより生むが易し

簡単な小さい目標を立てて, 何でもいいからまず動かす.

とりあえず

週末なんかしたいな.