4
1

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.

jsでネットワークVoxelエディターを作る方法

Last updated at Posted at 2020-07-16

ネットワークVoxelエディター

7月14日に多人数同時接続が出来るVoxelエディターを公開しました。
ネットワークVoxelエディター

去年作った方
初期のVoxelエディター

これは Node.js、three.js、Socket.io、MongoDBで作っています。(jsの技術総動員)

作品

初期のVoxelエディターでこのような作品を作っていただきました。他にも色々と作っていただいたのですが、割愛。

ネットワークVoxelエディターの成長

ログイン機能

ネットワークVoxelエディターはログイン機能を付けていたのですが、誰もアカウント登録してくれず、多人数同時アクセスなど遠い目標の状態でした。ログイン機能が邪魔で気軽に使ってくれないのだと思い、公開初日でログイン機能を外しました。

room機能

ログイン機能を外すと、使ってくれる人が現れて、このような感じの物を作ってくれました。
スクリーンショット 2020-07-16 15.21.39.png
ここから、使ってくれる人が増えれば、他のキャラクターも作りたい人が出てくるのでルーム機能が必要だと気付きました。そして、1日かけてroom機能を追加しました。それに伴うバグ修正に対応するために、サーバーを落としまくりました(-_-;)

念願の多人数同時アクセスでの共同作業

マリオのキャラクターを多人数同時アクセスで作りました。
スクリーンショット 2020-07-16 23.14.15.png
ネットワークVoxelエディターにアクセスしてroom4を見ていただけるとマリオが作られています。

動機

最初は、three.jsとphpでブラウザで操作出来るVoxelエディターを作っていました。

何故作ったかというと、ゲームに登場させるキャラクターを簡単に作りたいという思いからでした。
ソースコードだけで作ったキャラクターがこちら
スクリーンショット 2020-07-17 0.00.34.png

このキャラクターを1体作るのにソースコードで丸1日ぐらいかけて作っていました。
このままでは効率が悪いと思い、エディターを作る事にしました。

three.jsのサンプルとの出会い

ある日、three.jsのサンプル集を全部見てみようと思い、100個ぐらいあるサンプルを見まくっていたら、今のVoxelエディターの原型になるVoxelエディターのサンプルがありました。このサンプルはOrbitControlsを実装していなかったので、視点を変える事が出来ず使いにくい物でした。最初はこのサンプルにOrbitControlsを付けただけの簡単なエディターの状態で公開しました。

初期のVoxelエディターの成長

徐々に機能を増やしていき、データの保存や色変更など出来るようにしました。そしてtwitterで公開して、たかしさん や もちまぐろさん に使っていただいて、色々と足りない機能や改善点をアドバイスしていただきました。
特に、操作方法は色々な方々から多種多様なご指摘をいただきました。どの操作にVoxelを置く機能を割り当てるか、視点変更はどの操作でやるのが良いか、という点が1番論点になった熱い話題でした。

Voxelエディターコンテスト

ここまでの状態で、もっと色々な人達に知ってもらいたいという思いで、お金の力を使って強引に広めようと思いました。そこでVoxelエディターコンテストを開催しました。
しかし、エントリーしてくれた人達は4人でした。
自分の発信力不足を痛感しました。

新たなアイデア

色々な人に使ってもらったり、これを紹介したりしていたら、「多人数で同時にアクセスして編集出来たら面白いよね」という意見をもらいました。
そこから今の形になっている「ネットワークVoxelエディター」を作り始めました。
バックエンドをphpで作っていたのを、Node.jsに変えて、Socket.IOを使って多人数同時アクセスが出来るようにしました。

まとめ

現在、ソースコードがカオスなのですが、一応GitHubに上げています。
本番用はこのソースを更にカオスにした状態なので、整備できたらQiitaのこの記事に追記報告します。
言いたかった事は、時間や人との出会いを経ると最初のアイデアから、雪だるま式に成長していくという事です。
それと、まだまだ機能追加しまくると思うので、皆さんがアクセスした時は丁度サーバーを落としている時かもしれないです(^^;)
なので、アクセス出来ない時は1日ぐらい待って次の日にアクセスすると使えるかもしれません。

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?