Windowsゲーム制作ツール「3D Gamestudio」
Conitec社作成の3Dゲーム作成ツールです
日本ではユーザーが少ないですが
海外ではいろいろな作品が作られています
現在「A7」版です
公式サイト
ttp://www.3dgamestudio.com/
日本語サイト
ttp://3dgsjapan.com/ >テンプレートを使ったものはあれってどう拡張していくのか。
テンプレートのコードの一番下へアクションコマンドを追加する。
アクションはファンクションと同じで、内側へコードを書き込む。
WEDからアクションをアタッチして使う、
値やフラグの受け渡しも出来る、同様ですね。
CスクリプトでもLiteCでも同じ。
具体的な例を以下に含める。
http://www1.axfc.net/uploader/so/3084438 WEDでレベルデザインするの面倒になってきたw
大体の機能把握できたのはいいが、ツールとしてのショボさも見えてきてしまった。
またインポートしたモデルデータの調整はWED側では無理なんでMEDも立ち上げて
調整することになる。こっちもまた使いよいツールではなかったりする。
まあ、でも見えてきた。
俺思うんだけどWEDってのはプログラムの補助ツールであって、SEDの代わりなる
ゲームツールには見えないな。
テンプレートだってしょせんは誰かが作ったゲームコードでしょ?
それ以上コード書かずにゲームとしての機能を増やしたりは不可能なわけだし。
おそらくコード書くことからは逃れられないと思うよ。 Windows7 Pro 64bit でA8やA7のMEDでExport FBX 出来る人います?
MEDのログ見ると
---
load dll: med_plugins\FbxFiles2010.dll
full name: <C:\Program Files (x86)\GStudio8\med_plugins\FbxFiles2010.dll>
add action: "Import" [h=17(17) fl=1 typ=3 vid=0,exec=034a1ed0]
---
Exportを読み込んでないっぽい。
本家に問い合わせ中だけど、サポート代払えって言われて門前払いされるかもしれない。
forum見ると同じ症状の人いるっぽいけど、MFC2005ランタイム入れたら直ったとか、
A7のMEDプラグインなら動いたとかあって「解決」扱いになってるんだが、
2005再配布のランタイムは入ってるんだよな。A7でもExportにFBXないし。
困った。 MEDエクスポート、完全ではないけれど動作してます。A780 d。
そっか、参ったな。
やっぱり問題あるとメニューに出ない作りみたいだ。
解決できるといいが。 >>155
あ、嘘。これだとA8最新版のMEDでもFBXエクスポート出来ました。
てかファイル名からして公式で手に入るA7とはプラグインのファイル名称も構成も異なってますね。
該当フォーラムでもこの話題はあったのですが
ttp://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=347918&page=all
ここで触れてる「A7のプラグインなら動く」というのは、おそらくこのファイルのことなんでしょうね。
本当に助かりました。ありがとうございます。 ちなみにいただいたFBXプラグインのFBXバージョンは11.2006と12.2005のものでA8には2010版になってるんですが、
実際のところうちでは2010版のインポーターは他のツールで吐いた2010版のFBXではモーションが取り込めないです。
2006年版なら取り込めます。なんか該当プラグインの挙動が怪しい感じがします。
思うんですが、FBXってバージョン異なると上手く読み込めないケースが多く上位互換になってないように思うんですよね。
他ツールの多くが複数の各年版を用意してるように、3DGSでも古いバージョンのFBXプラグインもディスコンにして欲しくないですねえ。 FBXも完全では無いと思われ、データの移行は難しいのでしょう
このA780が安定していてA6互換もあります、
この後のA7版はA8互換になって不安定なようです。
以下が、A780setupです、これはライセンスが必要です。
http://www1.axfc.net/uploader/so/3091935 それと>152の件ですが。
本家から返事が来ました。
要約すると
・この質問にはtiketを購入する必要はありません。
・MEDの最新バージョンのFBXプラグインは最新の2010バージョンのFBXライブラリを使用していますが、
これはFBXのライブラリ側でExportがサポートされていません。
・提案としては3DS形式で出力して3DSが読み込めるツールを利用してください。3DSをサポートしてる
モデリング、アニメーションツールは少なくないと思います。
ということでした。2番めは意外な回答で驚いたのですが、多分ほんとなんでしょうね。 日本語の表示どうしてます?
text_loadwって台詞ごとにutf-16化したテキストファイルを用意しなきゃならないよね。
現実問題こんなのないよ。
てうゆうか俺がなれてないもあってLite-Cがめちゃくちゃ使いにくいんだけど。
Standerd-Cっていうかなり古い規格だよね。3DGSのLite-Cコンパイラ作られてたのって2007年らしいけど。
text_draw()使おうとしたら、wchar_t型とかなくてutf-16化した文字列をunsigined short型の
配列にして、その上でtext_createw()に食わせろとかなってるみたいだ。
でも日本語使ったコードの場合、中身はSift-JISだから半カナやダメ文字回避のコードが必要になるよね。
そりゃ、4バイト数値化した生のデータ貼り付けたら回避できるけど、そんなの書いた人間すら読めないよ。
こういのは外部DLL使えってことなんだろうか。 俺が聞きたいこと
どのようなものを作りたいのか?ADV,RPG
どのような場面で日本語が必要なのか?
俺が考えるもの
通常ならば、英語と数字があれば良い。
画像の中に日本語を入れ、数字だけ変更する
日本語のテキストファイルを持ち、それを利用する。
思案して、日本語文字列が無いと困る事が少なくて、
どのような場合に日本語文字列が必要なのかを知りたいと思う。
ローカライズに対して、
英語で原本を作り、それを各種言語に切り替える。
テキストを抽出して、外部ファイルにするのは普通と思う。
理解する、
日本語環境であれば、SJISで自由に扱える。
ただ、時代が変わって、32bitからはSJISを捨てunicodeでも扱えるようになってる。
ドイツ人が作ってるから、英語/ドイツ語が出来れば良いって感覚だろうと思う。 STRING*を通せば、日本語が普通に表示できると考えていませんでした。 そもそも公式が3年近くも放置だし、無理もないような・・・
WikiにANSI準拠って書いてあるけど、これたぶん間違いだよね。 保守したって、2ch.netもWindowsもオワコンなんだが… まだ人います?
medの3Dビューが魚眼レンズみたいに表示されるので、フラットに調整する方法はありますでしょうか? 無いですね。元よりカメラいじるオプションがありませんもの。 >>174
そうですか。ありです。
なんで、あんな見にくいビューにしてるんだろ MEDの3Dビュー初期設定について
マウス右クリックで、GXL properties→FOV
値が画角90°にセットされている。マウスで値を変更する。
小さい値にすると望遠レンズになり歪みが少なくなる。
大きい値にすると広角レンズになる、周辺が歪む
画角が写真カメラと同じ理屈です。 >>176
ありがとうございます!!
ちゃんと調整機能あったんですね。
>>177
ダウンロードしましたが、J_WED.chmを開くと
自分の環境(win7 32)ではなぜか右の詳細がすべて空白になってしまいます。 J_WED.chmアイコンをマウス右クリック、
プロパティを選ぶ。
全般、一番下の、
セキュリティ、[ブロックの解除]をクリック、[OK]
これで表示される。 >>179
無地表示されました!
ありがとうございました!! 誰かいますか?
ツールはwin10に対応していないようですが、開発したゲームもwin10では動作保障ないんでしょうか? なんと一年ぶりのレスだな。
でもごめんなさい、Win10まだ導入してないんで分からないです。 あえてunityえなく、こちらをそろそろ買おうかと思ってます。
クーポンゲットしてproを安く買う方法ないでしょうか? 新バージョン出たばかりだからね。
ないんじゃないか。 すげー値下げしてるんだけど、終わりが近いって事?? お、サンキュ。帰ったら買うわ。
たぶん、もう開発は事実上中止だろうな。 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
Z40I019AU7 pro買ったんだけど、シリアルはいつ送られてくるんだこれ?
まさか、郵送? 普通、営業日二日以内に添付メールが来る。
俺のメールじゃ何故か届かなかったんで、何度かのやり取りの後にホットメール宛に送ってもらったが。
ただ、手作業らしいので今は正月休みかもしれない。
share-it!の購入伝票の番号を公式のカスタマーに伝えて問い合わせてみることをオススメする。
問い合わせ先は公式の「about us」の最下段な。 あ、初購入か?
言っとくけどgamestudioはシリアルキーじゃなくてキーファイルな。
貰ったキーファイルをインスコしたフォルダにコピーすれば体験版じゃなくなる。
知っとるかもしれんが。 キタ-----(゚∀゚)-----!
マニュアル通り、フルじゃなくてトライアルでインスコしたけど、
キーファイルを同じディレクトリに置いておけば自動でコピーしてくれるんだな。
あと、ヘルプにあるuser/passって、どこで使うのかな?
フォーラムで使うなとしか書いてないけど これまでUser/PassのIDは使用した試しがありませんね。
なんなんでしょw
昔は、コンテンツサーバーのログインにでも使ってたんでしょうか。
今は自由に公式からダウンロードできますが。 キーファイルをコピーしたら複数台にいれられるのか?
フォーラムでそんなこと言ってる人いたけど、ライセンス管理、ちゃんとできてるのかな?
まあ、個人使用なんで1台にしかインスコする必要ないけど・・・。
とりあえず別のPCに移す時は、古いPCのをアンインスコしとけばいいよね? 誰かいますかー?
初歩的な疑問なんですが、lite-cのサンプルの最初で地球と地形読み込んで表示するのありますよね?
あれって、0キーを押すと矢印キーで移動できるようになりますが、そのコントロールはどこで設定しているんでしょうか? // このゲームエンジンを動かすのに必須
#include <acknex.h>
// 最低限の機能をキーに割り当てた定義
#include <default.c>
ソースコードに何も書かれていないと、上記のヘッダーファイルとソースファイルを自動で読み込みます。
[0]キーを押すとカメラを移動させるdef_move()関数が呼ばれるのも default.cに書かれた内容どおりに機能しています。
([ESC]キーでアプリケーションを終了させることができるのも同様です)
マニュアルでは勝手に読み込むので、そっちで再定義よろって描いてあるけれど、
ウインドウサイズやカメラの定義を自分でやると default.c は勝手に読み込まれなくなります(多分)。
マニュアルの#include または default.c 辺りを参考にしてください。 おおお!
ありがとうございます!
謎が解けました! lite-cのサンプルを実行後、alt+enterでフルスクリーンにすると、
画面が縦長の4:3になってしまう(上が切れてる?)のですが、
もしかしてウルトラワイドモニターに対応していないのでしょうか?
解像度を3440*1440から1920*1080にしてみましたが、若干緩和された
ものの4:3の画面で縦長になってしまいます。 ゲーム変数 video_aspect にアスペクト比を明示的に指定します。
video_aspect = 4 / 3.0;
このゲームエンジンは膨大なゲーム変数を持っていますので、
ユーザーが思い通りの設定で初期化を行いたい場合、
まずこれらの変数の把握が必要かと思います。
マニュアルだと Engine Variables 以下になります。
video_○○といういくつかの変数とコンビネーションで設定が必要なものもありますね。 返信ありがとうございます。
上手く設定できました! proエディションにてPublishを行いましたが、マニュアルでは、
Compile EXEがオンの場合にexeを生成するとありますが、
オフにしても同様にCDフォルダに生成されます。
そして2回目のPublishで上書きを行うと、今度はオフの場合にソースコードも
コピーされるようになりました。マニュアルではオンザフライでコンパイルされると
ありますが、2回目以降が、それに該当するのでしょうか?
また、ソースコードがある場所に同様のexeファイルが生成される理由もよくわかりません。
(実行しても、dllが同じ場所にないためエラーになりますし・・・)
Engineでのパス指定?も、exeファイルがないと指定できないですし・・・
おそらく、気にせずcdフォルダの内容を公開すればいいだけかと思いますが・・・。 まともなゲーム作れた試しがないのであまり実行ファル化は詳しくないんですが。
前提として、SEDのFileメニューのPublish Main Script を選択してそのままOKボタンを押すと、
CDディレクトリにスクリプトの実行ファイルが作成されます。
その他のリソースは含まれないので自分でコピーしてやる必要があります(マニュアルpublishにそう書いてある)。
自分が知っているのは、スクリプト以外のリソースをパッケージ化する方法で、これはResourceにチェックを入れるとwrsという拡張子の
単一のデータコンテナとなります。
配布する場合は
app.exe
app.wrs
acknex.dll
d3dx9_42.dll
の4つになるんじゃないかと。
また、でかい動画ファイルとかは除外したいならそういう方法もできそうなことがマニュアルの同じ箇所になんか書いてありますね。
ただ、公式フォーラムではたびたびpublishすると実行不可になるという現象が議論にはなっているようです。 >>ソースコードがある場所に同様のexeファイルが生成される理由もよくわかりません。
これは実行するのに必要だからじゃないでしょうか。
DLLの解決はエンジン側でやってるんだと思いますよ。 いえ、違いますね。
ごめんなさい、よく分かりません。
サイズと言い同じ実行ファイルみたいにはみえますね。 ありがとうございます。
とりあえずは公開時はCDフォルダの内容でOKみたいです。
それと、今default.cや他のサンプルを見ているのですが、
ソースコードをincludeする際は、語尾に「startup」のついた関数が最初に呼ばれるという認識であってますでしょうか?
テストでサンプルコードを無理やり分割してみてもクラッシュしてしまうので、ここら辺の簡単なサンプルがあれば解析しやすいのですが・・・ >ソースコードをincludeする際は、語尾に「startup」のついた関数が最初に呼ばれるという認識であってますでしょうか?
でしょうね。 default.c 内の def_startup() がエンジンによって実行されるみたいですね。
SEDのメニュー"Option->References" の Engine タブのCommand Line Options の diag にチェックを入れて、
メニュー"Debug->Debug Run"(または Ctrl + F5)させると、acklog.txt という起動時の初期化ログが取れるので、
例えば、Lite-C workshop の 例の地球が表示されるプログラムで実行してみると、
出力されたログに"def_startup started" の行がありますよ。 >>212
レスありがとうございます。
いろいろ試してみます! 現在、他のツール(Maya)で作成したモデルをMEDにインポートしているのですが、
もしかして、FBX形式ではマテリアルは読み込まれないのでしょうか?
アニメーションやテクスチャーは読めるのですが、マテリアルだけが無視されてしまいます・・・。 分からないなー。
モデルデータのエンジンへのI/O難しさと日本語の問題であまり使わなくなったので。
autodesk製品なら他のツールより互換性は高いでしょうが、何分3DGSがすごく古い設計なので。
MATERIALグループのような形で持ち込むのは無理だったと思う。
DiffuseやAmbientといった基本的なパラメーターは持ち込めるけど、
数値の扱いが異なるらしく意図したような調整にならない。
これらは基本的に0でインポートしてた。
色はそもそも扱いが違ってて、コード上でEntityのメンバー変数を使用する。
で基本的にはMATERAL構造体がA8には用意されているのでそれに定義して、
Entityのメンバー変数materialに代入する形で使うのがセオリーのようです。
いくつかの基本的なMATERIALが用意されているのでそれを使って書き換えるか、
もっと高度なら自分でMATERIAL構造体を定義してそれをEntityにアタッチする感じです。
基本的に3DGSはDirectX9のラッパーみたいなものなので、このライブラリに詳しければ
他の方法もあるかもしれないのですが、このライブラリに不案内で私はあまり詳しくありません。 >>215
レスありがとうございます。
なるほど、コード上で設定もできるのですね。今は、読み込み後、MED上でマテリアル追加してました。
とりあえず、全部テクスチャーを張れば、なんとか・・・汗
あと、御存じなら教えて欲しいのですが、例えばモデルのテクスチャーをスクリプト上で変更できるコマンドって
ありますか?
ようは、表情別のテクスチャーを用意して、アクションごとに切り替えて使えないかなと思いまして・・・
MEDのアニメーションではポーズしか設定できませんよね? >あと、御存じなら教えて欲しいのですが、例えばモデルのテクスチャーをスクリプト上で変更できるコマンドって
ありますか?
ent_setskin()
ですかねえ。
ただ使い所の説明が難しいんですよ。
サンプルデータを上げておきます。
パスは3dgsです。
http://whitecats.dip.jp/up/download/1588386655/attach/1588386655.zip simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 >>217
おおおお!
ありがとうございます!
サンプルだけでなく、貴重な情報も感謝です。
ダメ文字問題が、今後の課題になりそうです。
でも韓国版は正式対応してるのに、ダメ文字問題発生してないのかな・・・? だめ文字はどうにもならないと思います。
Lite-Cは標準Cコンパイラと違って、charに文字列を食わせる時に
エスケープシーケンスをバイナリレベルで解決してしまいます。
メモリデータそのものに日本語の文字コードの欠損が生じてしまいます。
ほかのCコンパイラでもライブラリなどで同様の問題は起きますが、これは
バイナリは欠損起こしてないので文字コードの数値を調べて英数字でない
と分かるものには\文字(0x5C)を追加することで回避可能です。
Lite-Cではこれができない。
文字化けする箇所には自分で文字\を追加するしか有りません。
随分と思い切ったと言うか、後先考えない実装をしてくれたもんです・・・。 >>220
試しにstring関数を使ってダメ文字を10個くらい表示させてみました。
実行前にエディタの機能で、\を\\に一括変換でうまくいくみたいです。
コード上で\を使うのはディレクトリ設定ぐらいと思うので、これでなんとか
ゲーム内の表示対応しようかと思います。 simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 またしても詰まってしまいました。
MEDのマテリアル設定でポリゴンの裏側を表示させるオプションとかはないのでしょうか?(unityでのtwosideとか)
それともスクリプト上で設定できるのでしょうか?マニュアルを探しましたがそれらしきものが見つかりませんでした・・・ 両面ポリゴン使った方が無難だと思うけど、
MEDにはそんなオプションはたぶんないかな。
片面ポリゴンを両面表示化させたいなら、シェーダー使わないと無理じゃないかな。
ただし、シェーダーはモデル単位で適用されるのでモデルを分割させないといけませんね。
そうすると複数のモデルをパーツごとに読み込んでそのモデル同士の親子付けとか必要になってくると思います。
自分的にはわりと未知の領域です。
#include <acknex.h>
#include <default.c>
#include <mtlFX.c>
ENTITY* a_mdl;
action a_mdl_prop();
.
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), a_mdl_prop);
}
action a_mdl_prop()
{
me.material = twosided; // これが両面表示させるシェーダーの名前
} まあ、フィギュアなんかはそもそも裏側が透明だと違和感あるので
ごっそりまるまる両面表示化シェーダーを適用させてもあまり問題起こらない気がするけど。
カメラに映ってない箇所はシェーダーで処理しないんだし。 ありがとうございます!
シェーダーと両面ポリゴン、いろいろ試してみます。 ようやくアニメーションまで漕ぎつけました。
通常は、a_mdl_anime()を別途作成し、
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), a_mdl_anime);
}
でアニメ設定できて、表示もOKだったのですが、前述のシェーダーを同時に適用する場合、
どのような方法がありますでしょうか?
クリエイト時にできないかと、
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), (a_mdl_prop && a_mdl_anime));
}
これではエラーとなりますし、
エンティティのイベントにわたせるかと、
function main()
{
a_mdl = ent_create("a.mdl", vector(0, 0, 0), a_mdl_prop);
a_mdl.event = a_mdl_anime;
}
と、しましたら、エラーにはなりませんが、シェーダーの適用のみでアニメの適用はされず・・・ a_mdl_prop() と a_mdl_anime()の一つにしちゃえばいいのではないでしょうか。
a_mdl_anime()が何かは分かりませんがおそらくこれまでの話の流れ的にどっちもmaterial構造体への
アクセスでしょうから
action xxxxx()
{
my.material = twosided;
my.material.ambient_blue = 255;
以下略
my.skin = 1;
以下略
} my.material = twosided; ではなく my.material = mtl_twosided; でした。 自分でmaterialを定義して名前をつけてアタッチすることもできるし、
action関数内で直接Entityのmaterialを弄ってもよいわけです。
ambientやskinといったメンバー変数はごく基本的なものですから、
モデル自身で持ってます。
直接代入して書き換えるか、materialという型で変数を作って
名前を使って書き換えるかの違いがあるだけです。 >>227
のコードを改造するとしたら
#include <mtlFX.c> // mtl_twodied 用のインクルードファイル
.
a_mdl = ent_create("a.mdl", vector(0, 0, 0), (a_mdl_anime));
action a_mdl_amime()
{
my,material = mtl_twosided; // tow_sided機能を適用
}
を追加するだけで良いかもしれません。
materialの定義は関係のないメンバー変数を上書きはしなかったと思います。
2重定義しても差し支えないでしょう。 おおお!
なぜか、処理を分けようと思い込んでいました。
1つにして問題なくいけました!
とりあえず、mdlファイルへのコンバートは制限はあるものの、
アニメ付きで表示できるまでになったので、ゲーム制作の入り口にはたどり着けたようです^^