AR.jsでねこに転生したおじさん(夫)をごっこをしてみる。

商業ディベロッパーに勤める非エンジニアです。
電子工作にハマっています。
今年の春から夫が単身赴任で青森にいき、一人暮らし中のため、離れていても夫と楽しく暮らすためのあれこれを作っています。

## 1.最近の癒し、それは「ねこに転生したおじさん」



Twitterで連載されているまんがやじま(@yajima_en)さんの「ねこに転生したおじさん」が最近の癒しです。

https://twitter.com/yajima_en/status/1675153215883726848?s=20

あらすじ
>普通にサラリーマン生活を送っていたおじさんがある日、トラックに
ひかれ猫に転生する。 体の軽さやかわいいと言われることに嬉しさがありながら、寝床がない、食べ物がねずみと、猫の生活に慣れない
中、サラリーマンだった頃にいつも怒られていた社長に気に入られ、一緒に暮らすというまさかの展開に…。

プンちゃんと名付けられたネコさんの背景に背後霊のごとくいるおじさん
表情豊かなおじさんも何故か最高にかわいい。
LINEスタンプも発売中です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/a46d83b4-851a-794f-3b48-f865b279bffb.png)

https://store.line.me/stickershop/product/22756794/ja

ちいさくてカワイイ生き物 × おじさん　
の組み合わせ最高なので私も作ってみようと思います。


### 1-1.実際に作成したものはこちら 

プルプルしているところがなんか本当に背後霊みたい。

https://twitter.com/am003004/status/1676216581565853696?s=20


### 1-2.コード
A-Frameというフレームワークをベースに作っています。
<details><summary> 作成したコード</summary>

```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ar.js/2.2.2/aframe-ar.min.js"></script>
<body style="margin : 0px; overflow: hidden;">
  <a-scene embedded arjs>
    <!-- hiroマーカーが認識されたら -->
    <a-marker preset="hiro">
      <!-- ボックスを表示します -->
      <a-entity
        position="0 -8 0"
        scale="5.5 5.5 5.5"
        rotation="270 0 0"
        opacity="0"
        gltf-model="./ojisan.glb"
     ></a-entity>
     <a-entity
        position="3 -3 0"
        scale="1.5 1.5 1.5"
        rotation="270 0 0"
        gltf-model="./fu.glb"
     ></a-entity>
            
    </a-marker>
    <a-entity camera></a-entity>
  </a-scene>
</body>

```
</details>

### 1-3.お試し用
うちの夫を背後霊にしたいときはお試しください。
QRを読み込んでHiroマーカーを読み込んでください。


<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/45bdc25e-ba3a-531c-99b6-e736b2aad345.png width="60%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/2072b719-4746-20f6-f50d-1ee6f4bd7d34.png" width="60%">


## 2. 実装
ねこに転生したおじさんの醍醐味は、
**実物のネコちゃんの後ろに常におじさんが浮いている**
ことなので、ぬいぐるみの後ろにうちの夫が浮いている状態を目指します。
### 2-1. 今回使ったもの
* **ペイント３D**　写真を３D画像に変換するのに使用します。
* **CodePen**　HTLMのコードを書くのに使用します。
* **Netlify**　デプロイするのに使用します。
* **マーカー** 今回はHiroマーカーを使用しました。


### 2-2. 画像の3D化
使用する画像を用意して、３Dペイントに読み込みます。
この時、背景を透過しておくと加工が楽です。

新規作成を選択して、メニューから挿入を選択して、画像を読み込み
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/5d7294a3-3346-a0af-49d3-02e18746211b.png)

右側の３Dの作成ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/810f1a85-b2a6-724c-2010-50a591d5f62b.png)

これで3D画像の完成です！簡単！今回はgld
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/87b51e3d-0a9d-e1e3-f1df-55a73f79a36d.png)

メニューから保存を選択して、3Dモデルで保存してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/19803411-32eb-2de3-25f2-c216fd32c489.png)

メインの画像以外に吹き出しも作りました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668122/1b5f9948-88b2-171f-db2b-cc6f1564b712.png" width="60%">


### 2-3. ARの作成

script>でA-Framega実行できるようにしていきます。

```html

<script src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ar.js/2.2.2/aframe-ar.min.js"></script>

```

Hiroマーカーが表示されたらARが表示されるという指示をします。

```html
<body style="margin : 0px; overflow: hidden;">
  <a-scene embedded arjs>
    <!-- hiroマーカーが認識されたら -->
    <a-marker preset="hiro">
      <!-- ボックスを表示します -->

```
<a-entity>でオブジェクト(先ほど作った３D画像)の設定をしていきます。
AR空間にどのように配置するのかを指定していきます。
 position=位置
 scale=サイズ
 rotation=回転

```html
      <a-entity
        position="0 -8 0"
        scale="5.5 5.5 5.5"
        rotation="270 0 0"
        opacity="0"
        gltf-model="./ojisan.glb"
     ></a-entity>
     <a-entity
        position="3 -3 0"
        scale="1.5 1.5 1.5"
        rotation="270 0 0"
        gltf-model="./fu.glb"
     ></a-entity>
```
### 2-4. Netlifyでデプロイ
CodePenからエクスポートして、distフォルダーに作成た３D画像をいれたらNetlifyででプロして完成です。

## 3. 満足
opacity="0"で本当は夫の画像が透過される予定だったんですがうまくいかず、加工方法を色々試してみようと思います。

これで老後、本当の独り身になった時でもこれで楽しく暮らせるかもしれません。