忍者ブログ
ゲームを作りながらFamous Writerを開発するブログ
[1]  [2
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

DAZから「Platinum Clubの人は、Published Artist Modelsの商品が30% OFFだよーん」メールが来ました。
このセールは29日までです。もしここで知ったという方がいらっしゃれば、チェックしてみてはいかがでしょうか。
私は、前から欲しかったBelBelを購入いたしました。
あと、今週はGuitar SetがFREEになっておりまして、ギターもベースも弾く私としては、ゲットしないわけにはまいりません。
というわけで、BelBelバンド。略してベルバン。ベルばらみたいです。

belban.jpg(64155 byte)

プログラムの方は、前回申し上げました、ボタンの「フラグ立てを使った描画」が完成しております。
…したつもりです(笑)。
それに付帯して、その他の画面の重ね合わせ関係を、少し整理しました。
重ね合わせは、まだ動作最適化の余地が存分に残っておりますが、ソースコードがだいたい想定した場所に収まったので、とりあえず現段階では一段落といたします。
何かやるのに、あちこちのクラスを開かなくていいようになりましたので、将来のバグフィクスへの対応がやりやすくなるかと思われます。

昨日からは、条件文の実現を目指しております。
その前に、論理演算と中括弧{}の解釈が必要なので、まずはそこから。
といっても、7割方はC++用のコンパイラから持ってくるだけで済みそうです。
PR
ここ一週間はほとんどPoserをいじっておりまして、プログラムをサボっております。

先にプログラムの進捗状況。
前回のエントリーで申し上げました、「NewButton()はButton.New()に変更」いたしました。
と申しますか、ドット付きの時に構文解析ができる仕組みを作りました。
これにより、そのうちLayer.Leftとかのドット付きのものを、設定だけでなく取得もできるようにいたします。
重ね合わせは、ボタンがまだ怪しいのと、ついでにv3でいうDraw.StayMesをやろうと思った段階で止まっております。

Poserは、テスト用のデータを作るにあたり、再び六角大王Super4との連携を試みております。
ちょこっとしたものでも、Poserのセーブファイルが50Mバイトを超えてしまうのはいかがなものかと。
キリのいい段階で「とりあえずコピーしてキープしておくか」的なことをすると、物凄い勢いでHDを消費してゆきます。
また、ファイルサイズに比例して、セーブロードも時間がかかるようになるので、効率悪いことこの上ありません。

これはモーフターゲットが保存されるため、大きなサイズになってしまうのが原因です。
一応、「Poser Maconstructor 1.0.1」というソフトで、使わないモーフを削ってはおります。
が、問題は使っているモーフで、これをobjで書き出したり、いろいろ試しておるところです。
単にobjでモーフ適用済のボディパーツを書きだして、再読込して置き換えれば、目的は達せられるんですけどね。
あわよくば六角でポリゴンをいじることができればいいなと思いまして。
あと、Cararraのデモ版を使ってみたのですが、私のMacでは重く、やっぱり六角を使えないものかなと。
そんなことをやっておりました。

本当は昨日のうちにエントリーを書こうと思っておりましたが、気づいたら1時を過ぎておりまして、本日になってしまいました。
週の前半は、Poserをいじって遊んでおりました。
攻略対照の3人娘を作ろうと思いつつ、Poserと六角大王の連携を研究したりいたしました。
六角モーフを作ることができたらいいなと思ったんです。
素材を作ることより、ファイルの仕様とかに興味が移ってしまうのが、私の悪い癖でしょうか(笑)。

まず座標の単位ですが、六角で144倍で読み込むと、気持ちよく作業ができそうです。
フィギュアの高さが、だいたい六角のグリッドの立方体に収まります。
これは、六角で100*100*100の立方体(グリッドの立方体の大きさ)を作って、Poserで「フィギュアの高さ」にして読み込んで、それぞれの数値を比較することで確認いたしました(厳密には、143.なんたら倍になる)。

そこまではいいとして、問題はobjファイルの頂点座標の精度です。
Poserは、浮動小数点になっているようで(精度は不明)、六角は「0.0000」のように小数点以下4桁の値を吐きます。
六角の方が精度が粗いのですが、Poserのように小数点5桁以下がある数値は「四捨五入」で読み込まれているようです。
切り捨てや切り上げではなく、四捨五入ですな。
従って、Poserに戻す時に1/144しても、小数点5桁以下が失われるので、微妙にずれることが考えられます。

そして、モーフは頂点の順番が変わらないことが条件になりますが、これが六角で読み込むと変わります。
従って、六角でPoserのモーフを作ることは、それぞれ単体では不可能という結論になります。

ただ、プログラムを書いて、objのfコマンドなどから座標順を導き出し、変換することは可能かと思われます。
1.Poserで吐き出したobjから、座標値を144倍にし、さらに小数点5桁で四捨五入したobjを作成
  →頂点順が変わらぬまま、六角の座標系に変換
2.144倍のobjを六角で「等倍」で読み込んで、すぐobjを書き出す
  →座標系が変わらないので、1で作ったobjと比較することにより、頂点順がどう変わったかわかる
3.六角で作業し、objで書き出す
4.2の情報を元に、3で作ったobjの頂点順を並び替え、座標値を1/144すると、Poserのモーフターゲットとして使えるファイルになる

あと、問題はobjのvnコマンドの値です。
1,2は、vを単純に任意倍し、vnはいじらないプログラムを書いて実験したのですが、問題なさそうでした。
ベクトルですから、数値が違っても、比率が同じなら大丈夫だろうと思いまして。
ここで面倒くさくなってやめたんですが(笑)、ベクトルがそのままだと、4の時点で問題が発生するかもしれません。
だめなら、手抜きをせず、きちんとベクトルを計算すべきでしょうな。

方針はなんとなく見えており、変換プログラムさえ作れば、六角でPoserのモーフターゲットを作ることは可能でしょう。
が、私としては、生活や時間的な都合もございますので、そこに労力を割くなら素直にCarraraかHexagonを買った方がいいかなと思い、現時点でこれ以上は突っ込まないつもりです。
というわけで、今日からFamous Writerを再開します。


4/15追記:
よく考えたら、Poserのモーフターゲットになるobjは、vだけあればいいんです。
従って、4は考えなくていいことになりますな。
あとは、テクスチャの位置は変わらないという特性を利用して、fから頂点順も整合できそうです。
ちょっとやってみたんですが、私の頭ではどれがどのデータだか把握できなくなったんで、あえなく玉砕ということで(笑)。
今後のゲームの方針ですが、背景は素材をお借りすることにいたします。
Poserと六角大王Superで作ろうと思ってたんですが、諦めます(立ち絵をPoserで作るのは変わらず)。
Poserは重い上に、軽い六角を使うにしても、作ってる時間がかなりかかるので。
現段階では、その時間でFamous Writerのクラスの1つでも書いた方がいいかなと判断いたしました。

今回のdataフォルダのものは、いつもお世話になっている白城るたさんの所からお借りしております。
るたさんには、この場を借りて御礼申し上げます。
ちなみに、るたさんの所が充実しているというのも、背景を素材で行くことにした判断材料の一つであります。
同人ゲーム背景用写真素材の部屋
なお、ご存じの方も多いかと思いますが、るたさんにはFamous Writer製ゲームも作っていただいております。
未プレイの方はぜひプレイしていただければと思います。
--白城るた&六本木曜のHP・RUTA--

また、今回のdataから、音楽も入れてみました。
MPEG-4 AACなので、QuickTime 6以上のインストールが必要です。
なお、dataフォルダからの音楽の二次利用は禁止ということにさせていただきます。
なぜなら、作りかけだからです(笑)。半日で二曲でっち上げただけという段階で、仕上げ等しておりませんので。
完成したら、音楽素材のページにて全曲公開のつもりでおります。
ゲーム作成中は、雰囲気ものとして、楽しんでいただければ幸いです。
なんとなく、流れが見えてまいりましたので、解説いたします。

■読み込み順
setting.txt

/sys/init.txt:ゲームの初期化をします。グローバル変数とかもこちらでやろうかなと。

/title/0.txt:タイトル画面です。

/sys/newgame.txt:「はじめから」の時、ゲーム中のパラメータ等の初期化をします。

/main/0.txt:ゲーム本編の処理部です。

■各フォルダ
/lib/:汎用サブルーチンを置きます。
/obj/:メッセージレイヤーや、パラメータ表示のレイヤーなど、処理のサブルーチン群。
/menu/:メニュー関係の処理。

今後、各ファイルの中身は変わるでしょうけれども、このフォルダ構成は踏襲する予定です。


ちょっと思ったんですが、本来のADV/ノベルでも、この構成にしておくといいかもしれません。
シナリオは、/main/0.txtから、シーン毎に&Callするようにして。
そうしておけば、イベント再生モードとか、簡単に作ることができるんじゃないかと思います。
最新コメント
[06/07 みずき]
[12/21 Rocco Noble]
[11/05 f]
[03/02 Ming.]
[03/02 Ming.]
忍者ブログ [PR]