Hatena::Grouptechmemo

USBカメラを使って色々遊ぶ日記(仮)

2008-07-21

あの気持ち悪い3DCGを飛び出させてみたよ

| 00:56 | あの気持ち悪い3DCGを飛び出させてみたよ - USBカメラを使って色々遊ぶ日記(仮) を含むブックマーク はてなブックマーク - あの気持ち悪い3DCGを飛び出させてみたよ - USBカメラを使って色々遊ぶ日記(仮)

前回のものと単に表示のパラメータを変えただけだけど。

こっちの方が動きとしては好きだな。

これをもっと頑張れば戦車のやつ↓とかも作れちゃうわけですね。(どうかな?)

2008-07-19

あの気持ち悪い3DCGをARToolKitで表示してみたよ

| 04:55 | あの気持ち悪い3DCGをARToolKitで表示してみたよ - USBカメラを使って色々遊ぶ日記(仮) を含むブックマーク はてなブックマーク - あの気持ち悪い3DCGをARToolKitで表示してみたよ - USBカメラを使って色々遊ぶ日記(仮)

ARToolKitに含まれるsimpleLiteをベースに、Blenderで作成した3DCGをくるくる回転させてみました。

大したコードは全然書いてないのだけど、自分の作ったものが動くって気持ちいいもんですねー。(動いている物体は気持ち悪いけど←実は結構愛着わいてる)

ニコニコへのアップロード手順とかはアニメーションのキャプチャ@Ubuntuのときと同じ。

音とか付ければよかったなぁ。

2008-07-13

アニメーションのキャプチャ@Ubuntu

| 00:42 | アニメーションのキャプチャ@Ubuntu - USBカメラを使って色々遊ぶ日記(仮) を含むブックマーク はてなブックマーク - アニメーションのキャプチャ@Ubuntu - USBカメラを使って色々遊ぶ日記(仮)

smooth.c /アニメ作成で作成したアニメーションを動画キャプチャしてニコニコ動画にうpするまで。

gtk-recordMyDesktopでデスクトップをキャプチャ

インストールは簡単。(Ubuntu 8.04での場合)

$ sudo apt-get install gtk-recordmydesktop

[アプリケーション]->[サウンドとビデオ]->[gtk-recordMyDesktop]より起動する。

ウィンドウ選択でアニメーションのウィンドウを選択。音声は不要なのでチェックを外す。

録音ボタンを押すとキャプチャが始まる。

このとき、recordMyDeskTopのウィンドウが消えてしまうが慌てずに、キャプチャを停止するときはタスクバーの停止ボタン(わかりにくいが)を押す。するとエンコードしてoggファイルを作成してくれる。(デフォルトでは~/out.ogg

ffmpegoggflvに変換

ffmpegインストール方法は省略。たぶん普通にインストールしてできます。できなくてもなんとか頑張ってください。

で以下のコマンドを実行してflvファイルに変換。

$ ffmpeg -i out.ogg -f flv out.flv

あとはニコニコ動画アップロード

ここも省略でいいよね!お疲れ様でした。

参考

2008-06-29

smooth.c /アニメ作成

| 18:07 | smooth.c /アニメ作成 - USBカメラを使って色々遊ぶ日記(仮) を含むブックマーク はてなブックマーク - smooth.c /アニメ作成 - USBカメラを使って色々遊ぶ日記(仮)

せっかくだしこれも試してみる。

ひよこ一つ分を動かすというアニメーションを繰り返すという手法をとりました。ひよこ1つ分動かすに対して30フレーム使うとします。

OpenGLで遊ぼう6 -まとめ!- - 毛の生えたようなもの

コードはとりあえずそのまま持ってきて試してみると…

重い!カクカクする!オブジェクトの複雑さが異なるせいか、全然スムーズに動いてくれない。

で、動画にしようと思ったがLinuxでOpenGLのキャプチャ方法が分からないので今から調べる

smooth.c / デフォルトのmaterial_modeの変更

| 17:16 | smooth.c / デフォルトのmaterial_modeの変更 - USBカメラを使って色々遊ぶ日記(仮) を含むブックマーク はてなブックマーク - smooth.c / デフォルトのmaterial_modeの変更 - USBカメラを使って色々遊ぶ日記(仮)

Blenderで出力されるのはマテリアルモードの.objです。このモードをデフォルトにするにはサンプルコード「smooth.c」中のグローバル変数を設定している部分の一番最後のマテリアルモードを0から1に変更してください。

OpenGLで遊ぼう6 -まとめ!- - 毛の生えたようなもの

私の手元にあるsmooth.cでは、init()でマテリアルモードが上書きされているので、具体的には122行目の、

    material_mode = 2;

    material_mode = 1;

にしたら上手くいった。

2008-06-22

OBJファイルをOpenGLで表示してみた

| 23:36 | OBJファイルをOpenGLで表示してみた - USBカメラを使って色々遊ぶ日記(仮) を含むブックマーク はてなブックマーク - OBJファイルをOpenGLで表示してみた - USBカメラを使って色々遊ぶ日記(仮)

OpenGLで遊ぼう6 -まとめ!- - 毛の生えたようなものを参考に。(お世話になってます)

  1. Blenderで3DモデルをWavefront形式(.obj)にエクスポート
  2. GLUTのデモを使ってOpenGLでOBJファイルを読み込む

OBJファイルのエクスポート

Blenderで、作成したオブジェクトを全選択してから[File]->[Export]->[Wavefront(.obj)]を選択して.objファイルを作成。

エクスポート先を決めたらエクスポート時のメニューでObject GroupsとMaterial Groupsも選択しないとちゃんと出力されない(気がする)

このとき.mtlファイルも同時に作成されるので後でファイルを移動させるときには忘れずに連れていく。

OBJファイルをOpenGLで読み込んで表示する

GLUTのサイト中「GLUT 3.7 Source Code Download for Win32」からZipファイルをいただいてきて、「progs/demos/smooth」内のソースコードを拝借します。 インクルードファイル・Makefileのパスなどを自分の環境にあわせて適宜修正します。Makefile等がWindows用になっているので、Linuxではそのまま使えません。Windowsの場合はVC++などで動かすことが出来るようです。

OpenGLで遊ぼう6 -まとめ!- - 毛の生えたようなもの

とのことなので、以下のような簡単なMakefileを書きます。

CC = gcc
DEFINE=
INCLUDE=
CFLAGS=-g -Wall
LDFLAGS=-lglut

OBJS=smooth.o glm.o tb.o trackball.o
TARGET=smooth

all: $(TARGET)

smooth: $(OBJS)
	$(CC) -o $@ $^ $(LDFLAGS)

.c.o:
	$(CC) $(CFLAGS) -c $<

clean:
	rm -rf *.o *~ $(TARGET)

これでmakeと叩けばおk。

実行してみる

$ ./smooth hoge.obj

表示が真っ黒なのでmキーを2回叩いてみる。

f:id:emergent:20080622233221p:image

うわぁ!やっぱり鬱陶しい!!こっちみんな!