タグ

ARKitに関するsmokeymonkeyのブックマーク (9)

  • [iOS 11][ARKit] Core Locationと組み合わせてコンパスを作ってみた | DevelopersIO

    1 はじめに 今回は、ARKitとCore Locationを組み合わせて、コンパスを作って見ました。コンパスアプリは普通に沢山ありますが、景色の一部として表示されてるコンパスも少し面白いのではないでしょうか。 最初に、作成したサンプルが動作しているようすをご覧下さい。 2 コンパス 3Dオブジェクトについて コンパスは、ScreneKit Scene FileからXcodeで作成しました。 使用したのは、基的なシェードであるCylinder、Pyramid及び、3D Textで、それぞれを変形しています。 具体的には、コンパスの針の部分は、Pyramidを2つ組み合わせ、その外円は、Cylinderです。 色々な方向から確認しながら作業を進めます。 作成したシーンファイルから、コンパスオブジェクトを抜き出して、シーンに追加するコードは、次のようになります。 if let compass

    [iOS 11][ARKit] Core Locationと組み合わせてコンパスを作ってみた | DevelopersIO
  • [iOS 11][ARKit] 新登場! Googleの3Dオブジェクトライブラリ Poly が便利すぎる | DevelopersIO

    1 はじめに 先週末(現地時間 2017年11月1日)、無料で使える3Dオブジェクトを集めたライブラリサイトPolyが、Googleによって公開されました。 Polyでは、既に多数の作品が公開されており、カテゴリからの選択や、キーワードによる検索ができるようになっています。 キーワードを入力して検索できる 左上のハンバーガーメニューからカテゴリを選択できる ライセンスは、基的にクリエイティブ・コモンズ・ライセンスとなっており、個々の作品をダウンロードする段階で、詳しく表示されます。 参考:クリエイティブ・コモンズ・ライセンスとは ダウンロードできるファイルは、Googleの「ARCore」だけでなく、ARKitでも利用可能です。 今回は、早速、ダウンロードして使ってみました。 2 Blenderによる変換 今回使用させて頂いた3Dモデルは、Naomi Chen氏の作成されたCube Ro

    [iOS 11][ARKit] 新登場! Googleの3Dオブジェクトライブラリ Poly が便利すぎる | DevelopersIO
  • [iOS 11][ARKit] UIViewをテクスチャーにしてTwitterクライアントを作ってみる | DevelopersIO

    1 はじめに ARKitの登場によって、多くのデバイスで手軽にARを楽しめるようになったと思います。Web上でも、日々、色々なアプリが紹介されており、「どれも皆、作って見たい!」という衝動に駆られて忙しいかぎりです。 そして、いよいよ3Dオブジェクトの表現が重要であることを痛感しています。 基的なシェードで作成するオブジェクトは、変形とテクスチャーを駆使することになりますが、今回は、このテクスチャーにUIViewを貼ってみました。 最初に、参考に作って見たアプリを見てやってください。 普通のTwitterクライアントで表示されるようなタイムラインを仮想オブジェクトにしてみました。 2 UIViewのオブジェクト 仕組みは、簡単で、UIViewを画像化してテクスチャーに使っているだけです。 描画するためのUIViewを、あらかじめ、非表示でアプリ内に作成しておき、そこに通常通り描画します。

    [iOS 11][ARKit] UIViewをテクスチャーにしてTwitterクライアントを作ってみる | DevelopersIO
  • [iOS11][ARKit] SCNBoxとSCNTextでラベルみたいなノードを作成してみました | DevelopersIO

    1 はじめに UIKitなどのフレームワークでは、通常、UILabelのように、軽易にテキストを表示できるコントロールが用意されています。 ARKitでは、プリミティブなオブジェクトとして、立方体や球、平面などが利用可能ですが、残念ながらラベルのようなものはありません。 そこで、今回は、平面(SCNBox)と文字列(SCNSText)を組合させて、ラベルのようなNodeを作成してみました。 文字列の背景に当たる部分は、平面(SCNPlane)でも良さそうですが、オプションとして厚みのある背面にも対応したくて、SCNBoxにしました。 最初に、動作しているようすです。次の3つのパターンを試しています。 文字、背景共に厚み無し 文字のみ厚み有り 文字、背景共に厚み有り 1 文字列 SCNTextは、文字列と、その厚みを指定して生成します。 let str = SCNText(string: "

    [iOS11][ARKit] SCNBoxとSCNTextでラベルみたいなノードを作成してみました | DevelopersIO
  • [iOS11][ARKit] オブジェクトの位置と回転「常にこっちを向いている怪獣」 | DevelopersIO

    1 はじめに ARLKitでは、空間に自由にオブジェクトを配置することができます。そして、このオブジェクトを配置する位置は、3D空間上の座標(ワールド座標)で指定します。また、オブジェクト自体の向きや傾きも指定することが可能です。 今回は、この位置や向き・傾きの指定についてまとめて見ました。 2 固定位置への配置 以下のコードは、画面をタップしたタイミングで、色の違ったキューブを生成し、シーンの中に配置しているコードです。 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let node = SCNNode() // ノードを生成 node.geometry = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)

    [iOS11][ARKit] オブジェクトの位置と回転「常にこっちを向いている怪獣」 | DevelopersIO
  • [iOS 11][ARKit] 近所の駐車場で、大型ディスプレイでビデオを見る! | DevelopersIO

    1 はじめに うちの近所の駐車場には、縦3m、横5mの大型ディスプレイは、ありません・・・ そこで、ARKitで、その気になれるサンプルアプリを作成して見ました。 これは、ARKitでシーン上に1つのキューブを表示して、そのテクスチャーに動画を貼ったものです。 今回は、このようなアプリの作成方法について紹介させて頂きます。 2 SKVideoNode SKVideoNodeは、SpriteKitで使用するノードの一つであり、名前からも想像できるとおり、ビデオの再生ができます。 Documentation > SpriteKit > SKVideoNode 残念ながら、SKVideoNodeは、SpriteKit(2D)のシーン(SKScene)にしか追加できませんが、SceneKit(3D)のノードの表面を表現するSCNMaterialには、テクスチャーのようにSKSceneを適用すること

    [iOS 11][ARKit] 近所の駐車場で、大型ディスプレイでビデオを見る! | DevelopersIO
  • [iOS 11][ARKit] 空間に3Dテキストを表示してみる #WWDC2017 | DevelopersIO

    1 はじめに iOS 11で追加されたARKitを利用して、道路上に巨大な文字「ARKit is awesome」が出現して居る動画が、Youtubeに公開されています。 ARKitを使用すると、簡単にこのような表現が可能です。今回は、3D空間に、文字列を表示する要領について確認して見たいと思います。 記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 2 SCNText SCNTextは、NSString又は、NSAttributedString及び、深さ(押し出してテキストに厚みを加える)を指定するだけで、簡単に3Dの文字列オブジェクトが作成できます。 convenience init(string: Any?, extrusionDepth: CGFloat) le

    [iOS 11][ARKit] 空間に3Dテキストを表示してみる #WWDC2017 | DevelopersIO
  • [iOS 11][ARKit] 物理衝突を実装して、キューブを落として見る #WWDC2017 | DevelopersIO

    1 はじめに iOS 11で追加されたARKitを利用して、映像の中に検出した平面に、キューブを落下させている動画が、Youtubeに公開されています。 既に、ARKitで平面(水平)を検出できることは、先の記事で確かめて見ました。 今回は、物理衝突の動きを実装した四角いノードを追加して、動作を確認して見たいと思います。 記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 2 平面上の位置をタップで指定 下記のコードでは、画面上のタップを、UITapGestureRecognizerで検出し、その座標から、hitTest(_:types:)で物理座標を取得しています。 距離判定の時は、types:にfeaturePointを指定して、アンカーに依存せず座標を取得しましたが

    [iOS 11][ARKit] 物理衝突を実装して、キューブを落として見る #WWDC2017 | DevelopersIO
  • [iOS 11][ARKit] 平面の検出について #WWDC2017 | DevelopersIO

    1 はじめに iOS 11で追加されたARKitでは、水平の平面を検出することが可能です。(垂直は未対応[2017/08.26現在]) そして、この機能を試した動画が、Youtubeに公開されています。 今回は、このような平面の検出について確認してみました。 記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 2 ARAnchor(ARPlaneAnchor) ARAnchorとは、ARシーンにオブジェクトを配置するために使用する実世界の位置と方向を持ったオブジェクトです。 そして、これを継承したARPlaneAnchorは、特に平面を表現するものです。 Documentation > ARKit > ARAnchor Documentation > ARKit > AR

    [iOS 11][ARKit] 平面の検出について #WWDC2017 | DevelopersIO
  • 1