2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

react-splineを使って、自分で作った3Dモデルを動かしてみた。

Last updated at Posted at 2021-06-03

ふと検索したら「react-spline」というライブラリがある事を知ったので、触ってみます。
また、これが __qiita初投稿__です。書き方が微妙かもしれませんがご了承下さい。

まずは作ったものを紹介

localで動いているのが分かると思います。
もともと3Dモデルが用意されていたのですが、
ちょっとだけ手を加えて右翼の支柱を2本取っておきました。

実装手順

2ステップで説明していきます。
「2」はモデル作成の方法と、作成したモデルを取り込む手順です。
私は3Dモデル作成は詳しく無いので、動画のとおり 棒を2本無くしただけです。

  1. 自作モデルは作らなくていいから、とりあえず動かしたい人
  2. 自作モデルを作成して、reactに組み込みたい人

1.自作モデルは作らなくていいから、とりあえず動かしたい人

早速説明していきます。でライブラリをクローンしてきます。
クローンしたらexampleフォルダに入って、npm iです。

git clone https://github.com/utkarshdubey/react-spline.git
cd react-spline
cd example
npm install (または、 yarn install)

あとは、npm install で完了です。

npm start (または、 yarn start)

動かすだけならこれで完了

うまくいけば 「localhost:3000」で以下の画面が表示されて、ぬるぬる動かせます。

スクリーンショット 2021-06-03 16.25.49.png

ソース的にはこんな感じです。まんまreactですね。
「import { SPLINE_EXPORTED_SCENE } from './scene'」の部分でjson形式のモデルを読み込んでいるんですが、次の項目でその部分を作成していきます。

import React from 'react'
import { SPLINE_EXPORTED_SCENE } from './scene'
import { Spline } from 'react-spline'

const App = () => {
  return (
    <div>
      <div
        style={{
          backgroundSize: 'cover',
          display: 'flex',
          justifyContent: 'center',
          alignItems: 'center'
        }}
      >
        <h1 style={{ position: 'absolute', zIndex: 1, color: '#fff' }}>
          If you see this, react-spline works.
        </h1>
        <Spline scene={SPLINE_EXPORTED_SCENE} />
      </div>
    </div>
  )
}

export default App

2.自作モデルを作成して、reactに組み込みたい人

モデルの作成

ここからは「自作モデルを作成して、reactに組み込みたい人」編に突入です。

公式HPから「Spline」をダウンロードします。「download now」のクリックだけで難しくなかったです。

ダウンロードしたらこんな感じの画面になります。

スクリーンショット 2021-06-03 16.40.58.png

赤部分をクリックして、少しだけモデルに修正を加えていきます。
私は、3Dモデルをいじるスキルは低いので、とりあえず大事そうな支柱を2本抜いておきました。

スクリーンショット 2021-06-03 16.45.41.png

作成した3Dモデルをexport

これが簡単でびっくりしました。
以下はexportからブラウザで表示までの流れです。

スクリーンショット 2021-06-03 16.47.22.png

スクリーンショット 2021-06-03 16.47.34.png

作成された3Dモデル

※多分このモデルが見れるのは有効期限があると思います。 2021/6/3

作成したモデルをjson形式に変更する

「作成された3Dモデル」の最後に「scene.json」を付与します。

・json出力用URL
https://my.spline.design/airplane-d369decdf14902501f8c46fa4fa24536/scene.json

サンプルのモデルを自作モデルと差し替える

ダウンロードした「scene.json」を、元々ある「scense.js」と置き換えます。

この際に注意するのは、

  • 「scene.json」と「scense.js」は拡張しが違う
  • ダウンロードしてきた方は先頭に「export const SPLINE_EXPORTED_SCENE = 」が無いので付ける
  • ダウンロードしてきた方は最後にセミコロン(;)が無いので付ける。

この状態でうまくいけば、自作の3Dモデルがローカルで表示されているはずです!

分からなかったこと

実際に動いている画面をみると一部モノクロになっており、色が反映されていない箇所があります。
その部分については、原因がわかりませんでした。
違うモデルだったら、大丈夫だったのかな・・

最後に

最近ブログを作成しました。reactにも触れているので良かったら見てみてください。

・いはかよ
https://www.ihakayo.com/

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?