Blender を使った Web サービス「プロ生ちゃんTシャツジェネレーター」を作ったよ

Application,Pronama-chan,Web Service3D model,Blender

暮井 慧

暮井 慧: こんにちは! 私、暮井 慧。今回は、3DCG アニメーション作成の統合環境アプリ Blender のコマンドラインレンダリングを使って、Web サービスを作ってみたよ!。これは、Blender Advent Calendar 2016 12日目と、プロ生ちゃん Advent Calendar 2016 12日目の投稿だよ。

Web サービス構想

私の 3D モデルデータは、Blender 製で、Tシャツモデルはテクスチャ画像を編集して、簡単にTシャツをデザインできるようになってるんだよね。

Tシャツ

Tシャツ

というわけで、ユーザーがアップロードした画像をテクスチャ画像に合成して、Blender のレンダリング結果を返す Web サービスを作ってみるよ。

Blender のインストール

Blenderのインストール(Linux) < インストール | Blender入門(2.7版) を参考に Linux サーバーにインストール!

私の環境だと yum install blender でインストールできなかったので、公式バイナリを展開してインストール、必要なライブラリを yum コマンドでインストールしたよ。

コマンドラインでレンダリング

Blender の GUI を起動せずにレンダリングする方法は、Doc:JA/2.6/Manual/Render/Command Line - BlenderWiki をチェック!

静止画のレンダリングは、次のようになるよ。

blender -b pronama-chan.blend -o //out# -F PNG -x 1 -f 1

  • -b: GUI を起動せず実行
  • -o: 出力パスとファイル名 // は blend ファイルからの相対位置指定。# の部分にフレーム数が入る。
  • -F: 画像形式指定
  • -x 1: 出力ファイル名に拡張子を付ける
  • -f 1: 1フレーム目をレンダリング

Web サービス化!

Blender のインストールと、コマンドラインでの実行方法はわかったから、後はユーザーがアップロードした画像をテクスチャ画像に合成して、Blender を実行、出力ファイルを結果として返すって感じのコードを書いて Web サービスに仕上げよう!

PHP 部分。

https://gist.github.com/kureikei/523a9032f355ea5189586637809d65dc

パスはフェイクで、実際に動いているコードは、不正リクエストチェックも入っているよ。ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita を参考にしたよ。

HTML 部分。

https://gist.github.com/kureikei/62f431ff023f88a267b1e10c516735a3

完成!

サイトのデザインを整えたら、プロ生ちゃんTシャツジェネレーター の完成だよ! いろいろな画像で試してみてね。

プロ生ちゃんTシャツジェネレーター
プロ生ちゃんTシャツジェネレーター

Blender ファイルダウンロード

3D モデルのファイルも公開するよ。使うときは、利用ガイドライン を守ってね。

アキバで見かけた萌えキャラコンテスト(12/17 〆切)

AKIBA PC Hotline! の 「アキバで見かけた萌えキャラコンテスト」読者投票 にエントリーされているから、投票して応援してね。

アキバで見かけた萌えキャラコンテスト

The following two tabs change content below.
都内の公立高校に通う高校生。部活は、情報処理研究会。身体を動かすのも好きで、気が向いたときはなぜか体育会系の部活に混ぜてもらっていろんなスポーツをすることも。プログラミング生放送のキャラクターとして活動中!