お邪魔します。
今現在、DXライブラリで3Dゲームを制作しているのですが、わからないことがあるので質問させて下さい。
今3Dによるエフェクト(光ってるやつ)を3Dモデルとして制作したのですが、(Xファイルです)いざ
ファイルを読み込むと光ってるはずのモデルが光ってなく表示されてしまいます。
これはどうしてでしょうか?
何か専用の関数でもあるのでしょうか?
環境は
VISTA
BCCdeveloperです。
説明が下手ですが3D関係に詳しい方いらっしゃいましたらよろしくお願いします。
3Dによるエフェクトについて
Re:3Dによるエフェクトについて
使ったモデリングソフトと、それを使ってどうやって光らせた(つもり)で、
最終的にどういう状態になれば光ったことになるのかを説明しないと
誰も答えられないかと。
最終的にどういう状態になれば光ったことになるのかを説明しないと
誰も答えられないかと。
Re:3Dによるエフェクトについて
失礼しました。
ツールはご存じないとおもいますがパーツアセンブラというツールです。
画像を貼り付けましたが、左が3Dモデルエフェクトで作ったやつで、
実際プログラムを組むと右のように単色?で表示されてしまい困ってます。
左のように光ってほしいのです。
MV1SetDifColorScale( hikariHandle, GetColorF( 1.0f, 1.0f, 1.0f, 1.0f ) ) ;
MV1SetMaterialDrawBlendMode(hikariHandle, 0, DX_BLENDMODE_ADD ) ;
MV1SetMaterialDrawBlendParam(hikariHandle, 0, 255 ) ;
MV1DrawModel(hikariHandle ) ;
}[/pre]
コードは上のようにかいてるんですが、これだと透視はしてくれます。
ツールはご存じないとおもいますがパーツアセンブラというツールです。
画像を貼り付けましたが、左が3Dモデルエフェクトで作ったやつで、
実際プログラムを組むと右のように単色?で表示されてしまい困ってます。
左のように光ってほしいのです。
voad hikari(){ [pre]hikariHandle = MV1LoadModel( "hikari.x" ) ;
MV1SetPosition(hikariHandle, VGet(hikarix, hikariy, hikariz ) ) ;
MV1SetDifColorScale( hikariHandle, GetColorF( 1.0f, 1.0f, 1.0f, 1.0f ) ) ;
MV1SetMaterialDrawBlendMode(hikariHandle, 0, DX_BLENDMODE_ADD ) ;
MV1SetMaterialDrawBlendParam(hikariHandle, 0, 255 ) ;
MV1DrawModel(hikariHandle ) ;
}[/pre]
コードは上のようにかいてるんですが、これだと透視はしてくれます。
Re:3Dによるエフェクトについて
DOGA系のやつですかね。使ったことはないですが。
画像を見ると(ポリゴンのエッジを越えて)発光しているように見えますね。
これが「発光しているように見えるテクスチャ」を貼ったものでなく、設定によって
オブジェクトの周囲にグロー効果を出すものだとしたら、これはこのソフト内部でのみ有効な
発光パラメータを使って表現しているため、Xファイルには出力されていないのでしょう。
解決方法としては、XファイルのみではどうしようもないのでDXライブラリ上で
それに似た効果を出すよう再現するしか方法はないと思います。
画像を見ると(ポリゴンのエッジを越えて)発光しているように見えますね。
これが「発光しているように見えるテクスチャ」を貼ったものでなく、設定によって
オブジェクトの周囲にグロー効果を出すものだとしたら、これはこのソフト内部でのみ有効な
発光パラメータを使って表現しているため、Xファイルには出力されていないのでしょう。
解決方法としては、XファイルのみではどうしようもないのでDXライブラリ上で
それに似た効果を出すよう再現するしか方法はないと思います。
Re:3Dによるエフェクトについて
>解決方法としては、XファイルのみではどうしようもないのでDXライブラリ上で
それに似た効果を出すよう再現するしか方法はないと思います。
すいません、3D関係はまだ始めたばかりなので、具体的には
どうすれば光ってるように再現できるんでしょうか?
やはりアルファブレンドとか関係するんですかね?
それに似た効果を出すよう再現するしか方法はないと思います。
すいません、3D関係はまだ始めたばかりなので、具体的には
どうすれば光ってるように再現できるんでしょうか?
やはりアルファブレンドとか関係するんですかね?
Re:3Dによるエフェクトについて
うーん、シェーダが使えない(?)DXライブラリではまともにやるのはちょっと面倒ですね。
形状的に許されるなら発光色でぼかしたテクスチャを事前に用意しておいて、
それを上から加算で表示すればそれっぽいのができあがるのですが、カメラ的に四方八方から
写される可能性があり且つ形状が激しく変化するようだと、その手は使えません、
事前に発光テクスチャを用意する方法では出来ないような形状でしょうか?
No.45522の左側のような発光ならモデルも不要で、事前にそういうテクスチャを用意しておいて
ビルボードにはっつけて加算で表示、でいいと思うのですが。
形状的に許されるなら発光色でぼかしたテクスチャを事前に用意しておいて、
それを上から加算で表示すればそれっぽいのができあがるのですが、カメラ的に四方八方から
写される可能性があり且つ形状が激しく変化するようだと、その手は使えません、
事前に発光テクスチャを用意する方法では出来ないような形状でしょうか?
No.45522の左側のような発光ならモデルも不要で、事前にそういうテクスチャを用意しておいて
ビルボードにはっつけて加算で表示、でいいと思うのですが。
Re:3Dによるエフェクトについて
一応今の段階ではカメラの視点も変更できるように考えてます。
言葉では説明しづらいので、試作段階ですがゲームをアップしました。
カーソルキー 自機移動
Zキー ショット
Xキー ボム
A・S・D・Fキー カメラ視点変更
アップローダ様
http://kissho1.xii.jp/7/src/7jyou28983.zip.html
DLkeyは必要ないです
で、プレイされた上での話ですが、
ボムを撃った時に最初に戦闘機が頭上を通過してそのあとに
回転しながらのエフェクトが出ると思いますが、
さらにそのあとに先ほどのNo.45522の右の絵が出るとおもいますが、
これを左の光ってるエフェクトにしたいのです。
今はまだ試作段階ですのでまだまだ絵の変更や追加などもしたいので、
例えば信号機などの青赤黄色などを表現する時に今回の光らせるということが
応用というか必要になってくる技術だと思ってます。
よくを言えば、FFシリーズなどの敵を切った時のエフェクトなどが理想(まぁ、今の
レベルでは到底無理ですが)です。
非常にお手数かけますがよろしくお願いします。
言葉では説明しづらいので、試作段階ですがゲームをアップしました。
カーソルキー 自機移動
Zキー ショット
Xキー ボム
A・S・D・Fキー カメラ視点変更
アップローダ様
http://kissho1.xii.jp/7/src/7jyou28983.zip.html
DLkeyは必要ないです
で、プレイされた上での話ですが、
ボムを撃った時に最初に戦闘機が頭上を通過してそのあとに
回転しながらのエフェクトが出ると思いますが、
さらにそのあとに先ほどのNo.45522の右の絵が出るとおもいますが、
これを左の光ってるエフェクトにしたいのです。
今はまだ試作段階ですのでまだまだ絵の変更や追加などもしたいので、
例えば信号機などの青赤黄色などを表現する時に今回の光らせるということが
応用というか必要になってくる技術だと思ってます。
よくを言えば、FFシリーズなどの敵を切った時のエフェクトなどが理想(まぁ、今の
レベルでは到底無理ですが)です。
非常にお手数かけますがよろしくお願いします。
Re:3Dによるエフェクトについて
> これを左の光ってるエフェクトにしたいのです
拝見しました。
あのエフェクトは爆発のエフェクトだったのですね(合ってますよね?)。
イメージとしては小刻みに短時間で出す小爆発なのでしょうか。
地面にめり込んでいるのでビルボードでは表現できなさそうです。
なら、こんなんではどうでしょう? → (添付)
作り方としては球にテクスチャを平面的に貼っただけのものです。
これを常にカメラの方に向けるようにすれば、(微妙なところはあるにせよ)求めるものに
近いように思います。
# ちなみにパーツアセンブラではどのパラメータで光らせようとしていました?
Re:3Dによるエフェクトについて
>あのエフェクトは爆発のエフェクトだったのですね(合ってますよね?)。
イメージとしては小刻みに短時間で出す小爆発なのでしょうか。
そうです。爆発エフェクトです。説明不足ですいません。
Justyさんに頂いたmv1ファイルを「DxLibModelViewer」で開いてみたところ
ちゃんと光ってました。
私が作ったのはこれで開くと光ってません。
で、試しにJustyさんのmv1ファイルをゲームに読み込んで表示してみたんですが、
ゲーム上だと光ってません。
わけがわかりません(泣
> ちなみにパーツアセンブラではどのパラメータで光らせようとしていました?
パラメータとかの設定画面とかはないとおもうんですけど、
輝きというのを500%にしました。
解決の糸口になるかもしれないので、レンダリング画面でのLOG出力?を貼っておきます。
1フレームから1フレームまで作画します
フォンシェーディングで作画します
-n オプションは無視します
インクルードパスにC:\Program Files\DOGACGA\common\BG\を追加
環境マッピングを有効にします
裏面を描画しません
半径を画面の10.00%、強さを 0.00%でグローエフェクトをかけます
影ポリゴンで影を落とします
半径を 0ピクセルで影をぼかします
影がぼけてもエッジが明るくならないようにします
ピンボケ効果を有効にします
最大ぼけ半径を画面の10.00%にします
レイトレーシングによる反射・屈折計算を行います(レベル4)
解像度を横 640 ×縦 480 にします
アンチエイリアシングを横2倍、縦2倍にします
Read Surface File...
Reading L3P_temp.suf
Read Attribute File...
Reading L3P_temp.atr
Read Frame File...
1フレーム
ポリゴン数: 30
影ポリゴン数: 0
result:
Total Time: 1435ms
V EdgeArray.Get: 0ms
V EdgeList.InsertAll: 0ms
V Horizontal: 46ms
V EdgeList.Inc: 0ms
V EdgeList.Sort: 0ms
V Draw: 467ms
E GlobalConv: 0ms
E PolygonConv: 0ms
E Clip: 0ms
E SetEdgeList: 0ms
H CreateEdge: 0ms
H EdgeList.InsertAll: 15ms
H 1st SearchSmalletst: 0ms
H 1st CalcColor: 15ms
H TransparentSearch: 0ms
H Inc: 0ms
H ShadowCounter Clear: 16ms
H Edge Pairing: 0ms
イメージとしては小刻みに短時間で出す小爆発なのでしょうか。
そうです。爆発エフェクトです。説明不足ですいません。
Justyさんに頂いたmv1ファイルを「DxLibModelViewer」で開いてみたところ
ちゃんと光ってました。
私が作ったのはこれで開くと光ってません。
で、試しにJustyさんのmv1ファイルをゲームに読み込んで表示してみたんですが、
ゲーム上だと光ってません。
わけがわかりません(泣
> ちなみにパーツアセンブラではどのパラメータで光らせようとしていました?
パラメータとかの設定画面とかはないとおもうんですけど、
輝きというのを500%にしました。
解決の糸口になるかもしれないので、レンダリング画面でのLOG出力?を貼っておきます。
1フレームから1フレームまで作画します
フォンシェーディングで作画します
-n オプションは無視します
インクルードパスにC:\Program Files\DOGACGA\common\BG\を追加
環境マッピングを有効にします
裏面を描画しません
半径を画面の10.00%、強さを 0.00%でグローエフェクトをかけます
影ポリゴンで影を落とします
半径を 0ピクセルで影をぼかします
影がぼけてもエッジが明るくならないようにします
ピンボケ効果を有効にします
最大ぼけ半径を画面の10.00%にします
レイトレーシングによる反射・屈折計算を行います(レベル4)
解像度を横 640 ×縦 480 にします
アンチエイリアシングを横2倍、縦2倍にします
Read Surface File...
Reading L3P_temp.suf
Read Attribute File...
Reading L3P_temp.atr
Read Frame File...
1フレーム
ポリゴン数: 30
影ポリゴン数: 0
result:
Total Time: 1435ms
V EdgeArray.Get: 0ms
V EdgeList.InsertAll: 0ms
V Horizontal: 46ms
V EdgeList.Inc: 0ms
V EdgeList.Sort: 0ms
V Draw: 467ms
E GlobalConv: 0ms
E PolygonConv: 0ms
E Clip: 0ms
E SetEdgeList: 0ms
H CreateEdge: 0ms
H EdgeList.InsertAll: 15ms
H 1st SearchSmalletst: 0ms
H 1st CalcColor: 15ms
H TransparentSearch: 0ms
H Inc: 0ms
H ShadowCounter Clear: 16ms
H Edge Pairing: 0ms
Re:3Dによるエフェクトについて
> ゲーム上だと光ってません
あ、加算にして下さい。
それでもダメなら、マテリアルを調整する必要があるかもしれません。
> 輝きというのを500%にしました
ありがとうございます。わかりました。