Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

ネットワークVoxelエディターを作るまでの過程(jsの技術総動員)

$
0
0

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

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

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

動機

最初は、three.jsとphpでブラウザで操作出来るVoxelエディターを作っていました。
初期の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エディターでこのような作品を作っていただきました。他にも色々と作っていただいたのですが、割愛。
boss.png

新たなアイデア

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

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

ログイン機能

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

room機能

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

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

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

まとめ

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


Viewing all articles
Browse latest Browse all 8691

Trending Articles