PSPで東方風の背景

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
少年X

PSPで東方風の背景

#1

投稿記事 by 少年X » 15年前

PSPで東方をやろうとしているものです。現段階では、東方の基礎的な部分はできてきたので1面作りに入りました。(東方妖々夢です) ここで困ったのが背景です。3Dになっていて、DXPでは3D機能はないためにDrawModiGraphで再現しようと思いました。

1面の背景は両側に茂みがある背景です。その茂みがだんだん大きくなります。

これを背景の茂み用に構造体と変数を用意し、flagとspd1(上辺の速さ)とspd(下辺の速さ)などを作ってやるとか考えてみてるがうまくいかず・・・

いいアイデアを教えてください。

ft

Re:PSPで東方風の背景

#2

投稿記事 by ft » 15年前

奇遇にも、私も妖々夢PSP劣化移植をしています。
一例ですが、雰囲気を出すことは可能だと思っています。もし宜しければブログを御覧になってみて下さい。(宣伝)

それはさておき、
3D対応していないDXPで3Dっぽい物を作って誤魔化すことは可能かといえば、可能であると思ってます。
http://blog-imgs-36.fc2.com/t/h/0/th07/ ... 457449.png
これは私が作ってみたものですが、霧であるモヤをグラデーションで描き、その下に背景を描く、そんな感じにしてます。
具体的には、樹木の動作ですが初期サイズ(倍率)と拡大率を決め、それを基にDrawRotaGraphFで次第に移動させながら(拡大率*カウンタ)で木を移動させながら大きくさせています。もしかしたら処理速度を優先するならDrawModiGraphの方がいいかもしれません。

また、木の移動速度を上方と下方で変えてしまうと、地面と木の生え際がズレて不自然なものになると思います。
ここが2Dで3Dを表す上での欠点だと思っています。
DrawModiGraphで台形状に描画することも試したのですが、なんか微妙だった覚えがあります。
イメージとしては線路の枕木を想像すると分かると思うのですが、DrawModiGraphで台形状に描いても隣りあう枕木の距離がずっと一定のままとなって不自然な状態です…
ここは妥協するしかないと思って、モヤで隠すことで何とか誤魔化している(?)つもりですが、もしかしたら何か良い策があるのでしょうか? 画像

少年X

Re:PSPで東方風の背景

#3

投稿記事 by 少年X » 15年前

僕もブログを始めましたがテストで忙しくて進んでない・・・
あと、ftさんのブログに行ってみたいのですが、名前がわからないです。また、上記URLの写真が見れない。

さて、僕もDrawRotaGraphFで茂みの倍率を変えようかと悩んだのですが、うまく倍率が合わずにDrawModiGraphで再現しようとしてました。でも、うまくいかないという話を聞くとやめようかと悩んでいます。確かに背景と茂みのはえ目が気になりました。現段階ではDrawRotaGraphFでいこうと思ってます。
もうちょっとほかの意見があるか待って、この投稿を解決しようと思います。

*余談
一年前にニコニコ動画でPSPで東方を移植した動画があり、背景が3Dっぽくなっていてすごいと思いました。それを目標にやろうと思っています。

ft

Re:PSPで東方風の背景

#4

投稿記事 by ft » 15年前

そちらの環境では画像表示できませんでしたか。画像例をここにUPしてみます。こんな感じです。
ブログURLですがhttp://th07.blog12.fc2.com/となっています。過去の記事に何件か画像を載せています。
イメージの参考にでもなるでしょうか…

樹木ですが、先述の通りDrawRotaGraphFで下へ移動させるに従い拡大させています。
初期サイズと拡大量によって生え際がビキビキ動いたりして不自然になるので、双方の細かい調整が必要となります。
もちろんDXPの関数を使わずに、PSPSDKの関数を使うことで3D描画は可能らしいですが、私はやっていません。

閉鎖

“C言語何でも質問掲示板” へ戻る