SceneKit

ARKit + Metalで空中に水を浮かべる方法

ARKit + Metalで空中に水を浮かべてみました。
結構きれいなものができましたので、作り方をご紹介します。

仕上がり

大まかな流れ

大まかな流れは次のとおりです。

・タップされた位置に球体を追加する
・カメラから取り込んだ映像を貼り付ける
・球体を歪ませて浮いている水のように見せる
・表面に揺れる水のようなテクスチャを追加する

それではさっそく1つ1つ説明します。

1. ユーザ

もっとみる

SCNVector

URL: https://developer.apple.com/documentation/scenekit/scnvector3

今晩もぽっ活していきます。
今回はSceneKitのリファレンスを訳して行きます。

● 構造

3方向のベクトルを表しています。

● 宣言

struct SCNVector3

● 概要

Scenekitのノードを描画、頂点データのポジション、表面法線デー

もっとみる

RealityKitを使用してオブジェクトをカメラの位置を見るように指定することができない。

URL: https://developer.apple.com/forums/thread/656611

今晩もぽっ活していきます。今回はRealityKitのDeveloper Forumsを訳していこうと思います。

● メソッド

look(at: arView.cameraTransform.translation, from: entity.position, upVector: [

もっとみる

Entityのポジション、方向をターゲットに向けて設定する(RealityKit)

URL: https://developer.apple.com/documentation/realitykit/entity/3244094-look

今晩もぽっ活していきます。
今回は, RealityKitの公式リファレンスを訳して行きます。

● 宣言

func look(at target: SIMD3<Float>, from position: SIMD3<Float>, up

もっとみる

RealityKit

今晩もぽっ活していきます。
今回は、Apple公式リファレンスのRealityKit Frameworkについて訳して行きます。

URL: https://developer.apple.com/documentation/realitykit

● RealityKitの説明

現実的(ARなど)のアプリに対してレンダリングやシュミレーションなどの機能を補います。

● 概要

Reality

もっとみる

ARFaceGeometryをOBJファイルに保存する

URL: https://developer.apple.com/forums/thread/127448

< タイトル >
Save ARFaceGeometry to OBJ file

今晩もぽっ活していきます。
今回はDeveloper Forumsの内容をつたない英語力で訳して行きます。

< Replies >

あなたがSceneKitを使ってレンダリングしているならSCNScen

もっとみる

SceneKitでnodeを選択する

今晩もぽっ活して行きます。
このスタックオーバーフローを訳して行きたいと思います。

URL: https://stackoverflow.com/questions/28006040/tap-select-node-in-scenekit-swift

< 質問の答え >

sceneViewのhitTestメソッドで可能であり(例えば、タップしたところの位置など)、hitTstのリストとして結

もっとみる

【Metal】退職メッセージをMetalで実装した話

こんにちは、iOSエンジニアのTokyoYoshidaです。

先日、会社を退職するにあたってのメッセージを会社のメンバーに伝える機会があったのですが、せっかくなのでSceneKit + Metalを使ってiOSアプリにしてみました。

今回は、その実装方法を書いてみたいと思います。

SceneKitにMetalのシェーダを利用する方法

こちらの記事に詳しく説明が載っていました。
このように、

もっとみる

SceneKitのアニメーション(SCNAction)でカスタムのEasing Functionを使う

SCNActionのtimingModeプロパティにはSCNActionTimingMode型でイージング関数を指定できるが、

case linearcase easeIncase easeOutcase easeInEaseOut

これだけしか定義されていない。

じゃあこういうカーブを適用したい場合は諦めるしかないのかというと、

timingFunctionプロパティがある。

SCNA

もっとみる

SceneKitのパーティクルを個々にフェードアウトさせる

SpriteKitのパーティクルにはアルファの加速度を設定できるプロパティがあり、そこにマイナス値を設定すればアルファでフェードアウトすることになる。(しかし、減速しつつアルファ値はフェードインして、速度が0になったところからフェードアウト、みたいな制御はできない)

で、SceneKitのパーティクルSCNParticleSystem を使う場合には、そういうプロパティが見当たらない。パーティク

もっとみる