FRMSKI開発ブログ

AWS、iOS、AR/VRなど開発メモ

【360度動画カメラ】2019年最新おすすめ機種、GoPro、Insta360

Hololens2の発表によりAR/VRがまたまた追い風になりつつあります。

4月にはOculus Questも発売される予定なので業界はまだまだ盛り上がりを見せるでしょう。

そんな中、360度動画はVRだけの用途に限らずじわじわと浸透しています。自分も個人用に一つ購入を検討しているので、おすすめの360動画カメラを紹介します。

GoPro Fusion 360°

カメラと言えばGoPro。360動画もこの機種の方が性能面、価格面共に優秀です。
5.2kです。一度に全方面を撮影するため、周囲の全てを捉えた360動画を撮影します。
編集やシェアも全てスマホアプリでできるのも魅力。

RICOH THETA V

もう一つ、VR動画撮影といえばTHETA。4kなのでGoProFusionに比べて画質は劣りますが、THETAの中ではハイスペックモデルになります。

Insta360 ONE X 5.7K

アプリによる編集が直感的でおすすすめなのがInsta360です。5.7Kと高画質で手ぶれ補正もあります。コンパクトなデザインもGood。

Vuze VR Camera 3D 360° 4K

ウェアラブルカメラで防滴、防塵。アウトドアに利用する方はこちらをおすすめ。

【速報】Hololens2発表!視野角2倍以上、ハンドトラッキングも

f:id:frmski:20190225024214p:plain

日本時間25日2:00にHololens2が発表されました。
スペインで行われているMWC2019にAlex Kipmanが登壇し実機を紹介。

なんとFOV(視野角)はHololensの2倍以上!ハンドキャプチャやアイトラッキングなどの新機能も多数発表され、さらなる進化を遂げました。

ビジネスでの利用など期待大ですね。

Azureとの連携によりARKit、ARCoreとも共有可能なSpetialAnchorや、リモートレンダリングも可能になるとのことです。

価格は約38万ほどとのこと。まだまだかなり高いです。高機能なARグラスが一般に普及するのはもう少し先になりそう。 下記公式サイトも公開されました。

www.microsoft.com

【マンション大全】2019年にエンジニアが不動産購入を考える

最近プライベートで子供が生まれ、在宅ワークも増えてきたこともあり住む場所を落ち着かせたいと思うようにりました。
そんな中読んだ『マンション大全 伝説の目利きが教える「買っていい物件」の見極め方』がおすすめだったので紹介します。

おすすめポイント① - 東京オリンピック以降の地価は?

結論から言うと新築マンションの価格はオリンピック以降大きな下げはないとのことでした。ここを心配している方は非常に多いみたいです。本書では冒頭からハルミフラッグを例にとりこの話が展開されていて非常に興味深いです。

おすすめポイント② - 永住を前提に購入しない

35年ローンの場合でも10年20年住んだ後に貸すことを考慮して買うのがベスト。購入者目線でのマンション選びは非常に大切なようです。資産性のある物件を選ぶポイントも紹介されています。これの考えなら不動産購入のプレッシャーがやや軽くなるように感じます。

おすすめポイント③ - ヴィンテージマンションが1億越え?

超有名なヴィンテージマンション「広尾ガーデンヒルズ」を例にとって、中古マンションの紹介が非常に興味深かったです。このことから自分も中古マンション+リノベを検討するようになりました。

その他マンション探しで気づいたこと

本以外にも、実際に新築のモデルルームを見に行ったり、リノベサービスを利用してみて気づいたことをリストアップします。不動産購入は情報が全て。情報を精査して意思決定しやすい状態に持っていくことが大切だと思いました。

  • フリーランスのエンジニアはローンが組みづらい!
  • タワーマンションは今後の修繕計画が未知数なので手をつけない方がいい
  • 新築マンションは本来的価値よりも何百何千万も上乗せされているので要注意

SceneKitで謎のスケールバグ

SceneKitでscnファイルで設定していたSCNNodeのScale値が大きくなるバグについて。

意味不明のバグだったのですが、数時間の調査の結果原因が判明しました。

Nodeの方向をカメラに向くように設定していたSCNBillboardConstraintを使わないようにすることで解決しました。

SceneKit側のバグのようなので報告しておきました。原因わかり次第追記します。

MacでTuri Create実行環境セットアップ手順

Turi Createとは

Appleが公開しているMachine Learningのライブラリです。

github.com

実行環境セットアップ手順

①Anacondaのインストール

下記のサイトよりアナコンダインストーラーをダウンロードし、インストールします。

www.anaconda.com

②Anaconda Navigatorを起動

f:id:frmski:20190128010511p:plain:w400

③左メニューのEnviromentsで仮想環境を作成

CreateボタンでCreate new environmentできます。Pythonのバージョンは3.6でCreateします。

④仮想環境ボタンからターミナルをOpen

作成した仮想環境のボタンを選択肢Open Terminalボタンを選択

⑤JupyterNotebookのインストール

$ conda install jupyter

⑥Turi Createのインストール

$ pip install -U turicreate

以上がセットアップ手順です。
ジュピターノートブックを実行環境で起動するには、

$ jupyter notebook

で起動できます。

【Xcode 10.2 betaのSwift 5リリースノート】Swift言語のアップデート一覧

Swift Language

  • @dynamicCallable属性を使用すると、単純な構文を使用して関数を呼び出すのと同じ名前の型を呼び出すことができる。
@dynamicCallable struct ToyCallable {
    func dynamicallyCall(withArguments: [Int]) {}
    func dynamicallyCall(withKeywordArguments: KeyValuePairs<String, Int>) {}
}

let x = ToyCallable()

x(1, 2, 3)
// Desugars to `x.dynamicallyCall(withArguments: [1, 2, 3])`

x(label: 1, 2)
// Desugars to `x.dynamicallyCall(withKeywordArguments: ["label": 1, "": 2])`
  • キーパスが入力値全体を参照するWritableKeyPathをサポート。
let id = \Int.self
var x = 2
print(x[keyPath: id]) // Prints "2"
x[keyPath: id] = 3
print(x[keyPath: id]) // Prints "3"
  • Swift 5より前のバージョンでは、さまざまな引数を取る列挙型のケースを書くことができたが、代わりに、列挙型の場合を変更して配列を取得し、明示的に配列を渡す。
enum X {
    case foo(bar: [Int]) 
} 

func baz() -> X {
    return .foo(bar: [0, 1, 2, 3]) 
} 
  • Optional型の式を使用すると、ネストされたオプションを返すのではなく、結果のオプションがフラットになります。

  • UInt64(0xffff_ffff_ffff_ffff)のような式は、以前はデフォルトの整数リテラル型のIntをオーバーフローしていましたが、現在は有効です。

  • 文字列補間により、パフォーマンス、明瞭さ、および効率が向上しました。

  • Swift 4.2とSwift 5の間で#ifを使用してコードを条件付きにすることができます。次に例を示します。

#if compiler(<5)
extension MyType: _ExpressibleByStringInterpolation { /*...*/ }
#else
extension MyType: ExpressibleByStringInterpolation { /*...*/ }
#endif 

SceneKitで複製したテキストの内容を共有しないようにする

SceneKitでテキストやマテリアルを複製した後、個別に編集したい場合の解決策です。 Attributesインスペクタ下部のUnshareボタンを押下することで個別に編集できるようになります。

f:id:frmski:20190125023159p:plain