MMDSpriter の サンプルを用意してみた
http://d.hatena.ne.jp/alpha_neet/20120313/1331624282 の続きです。
前回のだと今いち分かりづらかったので歩くだけのサンプルを用意してみました。
http://www4.atpages.jp/alphaneet/mmd-spriter/ から実際に動かせます。
操作方法
← | 左に移動 |
→ | 右に移動 |
Enter | 背景画像の切り替え |
なんか結構いい感じじゃないでしょうか?ちょっとヌルっとしすぎててドット絵っぽくはないですが^q^
というかスーファミのドンキーコングっぽくないですか?って知り合いに言うと「つまりスーファミレベルということだな」と言われました^ω^;;ハハッワロス。おっしゃるとおりですね(ニコッ
あと、全部画像データもってるのでわりと容量食うんですが、DVD二枚とかでエロゲーが売られてるご時世なんで多少のドカ食いはキニシナーイということで(`・ω・´)
web 提供とかだと回線使うので最適化考えないとだめですが、同人ならまぁ今のままでいいかなーという感じです。
あとは、エフェクトを簡単に作る方法と、二頭身ぐらいの(ネンドロイドっぽい感じの)ローポリをメタセコイアで作るスキルと、MMDの使い方をマスターしたら、同人ゲーレベルのグラフィックは大丈夫そうですね!!(先長すぎワロタ)
誰かグラフィッカーのお友達募集です!!一緒にゲームつくりましょう!!(切実)
twitter, skype ID ともに alphaneet です!ぜひご一報を!(くわっ
素材使わせて頂きました。
http://www6.atwiki.jp/vpvpwiki/pages/236.html → http://bowlroll.net/up/dl829
モーションデータはここからお借りしました。ありがとうございますorz
http://www.sozairoom.com/FS_S1033.html
背景画像はここからお借りしました。ありがとうございますorz
MMD をゲームの素材として使えるか試してみた
環境
OS | Windows7 SP1 64bit |
AviUtl | 0.99k2 |
MMD | 7.39 |
ImageMagick | 6.7.5 |
デモ
知り合いから
「○と×とかの図形だけだとでユーザーはやってくれませよ」
「いや、俺はこの状況を打破するジツがあるから問題にい」
「んじゃ、それやってくださいよ」
「まだそのときではない。ゲームが完成してからだ」
「でも試してみないと上手くいくのか分かりませんよね」
「はい、そのとおりです」
というわけで試してみた。
アイデア自体は単純で MikuMikuDance の動画をそのままゲームの素材として使えばいいんじゃない?という感じです。
3Dリアルレンダリングは重そうだし、やりかたよく分からないので一度レンダリングした動画を吐き出してそれをペラペラアニメーションさせるという感じ。
2Dゲームならこの方法でも問題ないかなーとか思ったり。もっといい方法があれば教えてください( ;´。 `;)
以下にやりかたの簡単な説明をのせておきます。
MikuMikuDance
http://www.nicovideo.jp/watch/sm12995526 を参考に MikuMikuDance で適当にモーションを付けます。
GIMPでもペイントでもなんでもいいので適当な抜き色を決めて(本体で使ってない色。緑か青が普通だと思います)バケツツールで背景画像を作って MMD にドラッグ&ドロップ
エクスポート時に メニュー>表示から
アンチエイリアス、座標軸表示、地面影表示を OFF にします。
メニュー>ファイル>AVIに出力から無圧縮で出力します
AviUtl
http://spring-fragrance.mints.ne.jp/aviutl/
ここから「連番BMP出力 plugin」をダウンロードして、aviutlと同じフォルダに置きます。
aviutl を起動して、先ほどの avi ファイルをドラッグ&ドロップ
ここまでで、動画の連番のBMPがどこかのフォルダに吐き出されていたら成功
ImageMagick
http://www.imagemagick.org/script/index.php
から最新版の Windows の 64bit 版の dll.exe を落とす。
http://www.imagemagick.org/download/binaries/ImageMagick-6.7.5-10-Q16-windows-x64-dll.exe
今回はこれにしますた。インストール画面は全部 yes を押せばおk。
ただ、インストールしたパスはメモっといてください。
MMDSpriter
http://www4.atpages.jp/alphaneet/mmd-spriter/windows.zip
を落として、中の config.xml を開きます。
ほかの config.xml の説明は後述します。
先ほど吐き出した。連番 bmp を import フォルダの中にいれてください。
mmd-spriter.jar をダブルクリックで起動して、適当にドラッグで範囲選択をして、Enter を押すと変換されたものが export フォルダに出力されます。
config.xml の内容
imageMagickPath | imageMagick がインストールされてるパス |
importPath | 読み込む画像フォルダのパス |
exportPath | 出力する画像フォルダのパス |
importExt | 読み込む画像タイプの拡張子(bmp, png, jpg, gif など) |
exportExt | 出力する画像タイプの拡張子 |
exportSize | 出力する画像サイズ |
操作方法
マウスドラッグ | 選択範囲の決定、選択範囲内なら移動 |
Enter | 変換開始 |
← | 前の画像 |
→ | 次の画像 |
x | 入力と出力のビューワー切り替え |
w | 選択範囲を上に移動 |
s | 選択範囲を下に移動 |
a | 選択範囲を左に移動 |
d | 選択範囲を右に移動 |
i | 選択範囲を縦に縮小 |
k | 選択範囲を縦に拡大 |
j | 選択範囲を横に縮小 |
l | 選択範囲を横に拡大 |
ほどほどの画質でさくっと youtube にうpる方法(もっといい方法募集)
スクリーンショットの延長線上ぐらいのお手軽さで動画をうpしたいなーと思い色々試してみました。
環境
OS | Windows7 SP1 64bit |
アマレココ | 3.10b |
Windows Media Video(WMV) | 9.x |
インストール
アマレココのインストールは http://d.hatena.ne.jp/alpha_neet/20111002/1317568313 らへんを参考にしてください(ほどんど書いてませんが)
H.264 のエンコーダーの単体がどこにあるか分からなかったですorz
WMV9 も評価高いらしいのでそっちにしました。
むしろエンコーダーとコーデックの違いがいまいち分からないぐらい動画スキルでやばいです( ;´。 `;)
http://sourceforge.jp/projects/sfnet_senriska/downloads/Complete/Codec%20Package/wmv9VCMsetup.exe/
もし↑が消えてたら「WMV9 コーデック」とかでぐぐると出ます(ハズ)
http://i-comp.biz/wordpress/275 を参考にコーデックの部分を「Windows Media Video 9」にすればおk。
あとは動画ファイルを youtube にドラッグ&ドロップすれば完了。
では youtube にあげるまでの動画をテストペタペタ。
まぁまぁお手軽っす。これからはスクリーンショット貼るノリでどんどん動画上げていきたいっすっす!!
package object の定義は外部からでも(implicit も含めて)使えるらしい
環境
scala | 2.9.1 |
ものすごい勢いで REPL を立ちあげた
http://d.hatena.ne.jp/hideshi_o/20111207/1323275884
ここを見てびっくりギョウテンして慌てて確かめてみたんですが、、、
scala> import scala.sys.process._
scala> "ls" run
アイエエエ!ナンデ!?run ナンデ!?
この謎に満ちた現象を解決すべき物凄い勢いで調べてみると
https://github.com/scala/scala/blob/master/src/library/scala/sys/process/Process.scala#L230
ここで implicit def を定義した trait を用意して
↓
https://github.com/scala/scala/blob/master/src/library/scala/sys/process/package.scala#L205
package object の形にしてるっぽい。
な、なるほど、追ってみれば普通に分かりますが、package object の定義を import で取れるというのを知らなかったのでびっくりしました。
「package object だって object だよね。」と言われればまぁおっしゃるとおりなんですが、なんかその発想はなかったわ。。。という感ですた( ;´。 `;)
つまり、↑は
scala> import scala.sys.process.stringToProcess
scala> "ls" run
って感じっぽいですね。
これ今まで知らなくてすごい損してました。もちろん implicit def を定義しまくると(しかも package object !!)物凄く可読性下がるとは思うので最低限にしたいですが、いざという時は使いたいなーという気持ちが抑えれないデス!! import hoge._ には魔法が込められている!
適当に試したサンプルコードをペタペタ
class の引数をずらずらーと書きたくないでござる!
そもそもこういう事で悩むのすら間違ってる感はありますが、とりあえず困ってることをまとめる意味も込めてブログに書いてみる。
ちなみに僕の設計力はやう゛ぁいんで!!なんでこういう作りなの?っていうマサカリどんどん投げてくれると助かりマンモス!!
簡単な例
チワワは犬で、犬は動物みたいなクラス設計です。んで遺伝子を引数として渡す的なノリで。
これ僕がオブジェクト指向始めてからずっと悩みの種なんですが、根底クラスに引数がある場合、
今回は一つですけど、これが大量にある場合。継承する度に引数書くのだけでも一苦労みたいな感じでいつもぐぬぬしてました。
trait or abstract class にして最後に定義する。
trait にすると、継承の時に地獄のようなパラメーター渡しをしなくてよくてマンモスウレピー!
大事なことなので二回いいますが、今回は簡単な例なので引数は少ないですが、これがどんどん増えていくと地獄になるんです!
ここでまず疑問なんですが、これってお作法的にいいんですかね?
cloneable にする
いきなりなんで脈絡もなく cloneable の話になるの?と思われるでしょうが、僕が困ってることなので仕方ないのです!というわけで cloneable にしてみます。(強引)
こんな感じになりました。ここまでで疑問が二つほどありました。
- そもそも scala でこういう形が必要になる時点でどこか間違っているのだろうか?
- この性能を満たすもっとエレガントな方法はないんだろうか?
case class でなんややろうとしたんですが難しかったです!!
そもそもこういう継承しまくる時でも case class を使ってもいいのだろうか?(なんか色々やってるとたまに Warning が出る;ω;)
ちなみにブログの方はサンプルですが実際のコードで困ってるのはここらへんです。
https://github.com/alphaneet/suparobo-engine/commit/57531d8390b0068dff880c36763ebfe04f8b0a39#L1R63
mac で高画質 ustream 配信するメモ
http://d.hatena.ne.jp/alpha_neet/20120109/1326057718 の続きです。
参考URL
http://video-seisaku.jp/column/USTREAM_1.html
http://d.hatena.ne.jp/snakefinger/20100418/p1
基本的にはここ読めば分かるんですが、英語だったり前バージョンだったりで詰まったので軽くメモ残して置きまっ!
環境
CamTwist | 2.4 |
Flash Media Live Encode | 3.2 |
Ustream から "Flash Media Live Encode XML ファイル" をダウンロード
Ustream のページから右上の「自分のユーザー名」 > ダッシュボード をクリック
マイページっぽいところの左のメニューから 番組設定 > リモート をクリック
「この番組のFlash Media Encoder XMLファイルをダウンロード」をクリック
Flash Media Live Encode の設定
CamTwist を起動して適当にググって setting する。
↑のメニューの Tools > Previw で配信したい動画が流れていればイケル。
Flash Media Live Encode を起動して、File > Open Profile でさっきダウンロードした XML を指定。
Device の項目を CamTwist にして Start を押す。
Ustream のページに戻り、通常の配信ページに行く。
ローカルモニターのラジオボタンと、ビデオソース・オーディオソースの選択が出来なくなってたら成功。
「配信の開始」で配信出来たら成功。
画質の設定とかは詳しいこと分かんないで参考URLを見てください。
とりあえず、こんな感じで設定しとけば大体高画質になってるハズです。
sbt の prompt に表示される文字を変更する方法
とりあえずこうなる(結果)
sbt のコンソールに現在の git のブランチ名が表示されている状態です。
やり方に興味ある人は続きをどぞー
ちなみほとんど @xuwei_k 先生に twitter で教えてもらったというあるさまです・ω・
あるがとうございました!
講義(公開処刑(ん?))の内容はとっげっておいたので、sbt の内部について詳しく知りたい人は目を通しておくととても勉強になるますよー
つhttp://togetter.com/li/240617
環境
scala | 2.9.1.final |
sbt | 0.11 |
git のブランチ名にしてみる
git init
git add project/oppai.scala
git commit -m 'add oppai'
git branch peropero
git checkout peropero
vim project/oppai.scala
git はとりあえずなんでもいいんで一度はコミットしとかないとブランチ切れないっぽいす。
- project/oppai.scala の diff
object MyBuild extends Build { - val prompt = "oppai> " + val prompt = "git branch".lines_!.find{_.head == '*'}.map{_.drop(2)}.getOrElse("") + "> " lazy val root = Project(
sbt
peropero>
こんな感じになったら成功。
なんでブランチ名が表示できるか軽く補足を書こうと思ったんですが、めんどくさいので気になる人は「scala lines_!」でぐぐってください><
違ってたら恥ずかしいんで断言しませんがシェルを呼んでその文字列を見てるだけっぽいっす。