mieki256's diary



2014/01/30(木) [n年前の日記]

#1 [anime][game][dxruby] とある飛行士の恋歌、1〜3話を視聴

爆発エフェクトが参考になるアニメだなと思いながら眺めたり。十字型の透過光、円と直線、爆発時の画面フラッシュ等々。コマ送りして、白フレーム前の黒フレームの入れ方について勉強を ―― 爆発箇所を事前に透過光で光らせておくのが基本技だったのか、みたいな。詳しい人達には、「今頃知ったのか…」と呆れられそうだけど。

なんだかトムスっぽいアニメだなと思ったら、やっぱりトムスエンターテイメントの名前があって。実際作ってるのは別スタジオだったりするのではと想像しつつ、しかし、自分は一体、どこらへんにトムスらしさを感じているのだろう、てな疑問が湧いてきたりもして。…そのへん、自分でもよく分からず。IGっぽいとか、サンライズっぽいとか、ボンズっぽいとか、ガイナっぽいとか、ディーンっぽいとか。どういう部分で、それらを感じるのだろう…。

60コマ/秒だとまたちょっと違う。 :

フラッシュの入れ方って、ゲームの60コマ/秒でやると、一瞬過ぎてなんか違う…。なもんで、 _先日作ったサンプル では、わざわざ24コマ/秒前後のフラッシュになるように調整していたのですけど。

アニメに比べると、ゲームはえてしてフレームレートが高いのだから、ゲームなりの凝ったフラッシュができそうな予感もあるのだけど。情けないけど、自分は未だに「これぞゲーム映像」なフラッシュは思いついてなくて。

まあ、ポケモンショック以降、一般の市販ゲームはフラッシュさせる際の規定が出来上がっていて、その枠の中でやるしかないはずだから、「そもそもフラッシュ入れるなよ」と言われる場面もありそうですけど。同人なら制限はないから工夫し放題、だったりするのかしら?

#2 [windows][prog][unity] VisualStudio Express 2013 for WIndows Desktopをインストールしてみた

VS2012 って行の移動はできないのかな、と思ってググってたら、「VS2013から行の移動ができるようになった」てな話を見かけたわけで。だったら試しに触ってみようかな、と。

VS2012をインストールした際は、何か色々とトラブルが起きてしまったような記憶もあるのだけど。VS2013は、それらしい不具合には遭遇せず。

起動してみたら、「Visual Studioにサインインせよ」と言ってきた。Microsoftアカウントでサインインすればいいのかな…?

毎回起動時にちょっと待たされるような感じはするのだけど、それ以外は問題無し…というわけでもなかった。,cs 等がVS2012に関連付けされたままで。仕方ないので、VS2013、VS2012をアンインストールしてから、VS2013だけ再インストール。

とりあえず、これから触ってみる予定。

#3 [unity] Unity2Dで多重スクロールを実験

Unityを使って2Dゲームを作るなら、多重スクロール ―― Parallax とやらは必須だろうと思えてきたり。なので、そのあたりを実験。

巨大なポリゴンをカメラ位置の変化に合わせて動かしていく方法。 :

以下のチュートリアル動画が参考になりました。ありがたや。

_Unity 2D Game Development 16 : Creating a Parallax Background - YouTube
_Unity 2D Game Development 17 : Flexible Parallax Scripting - YouTube

で、参考にして、一応多重スクロールはできたわけですけど。
チュートリアル動画の手法

_Parallax.cs
using UnityEngine;
using System.Collections;

public class Parallax : MonoBehaviour {
    public bool followcamera;
    public float offset;
    private Vector3 oldpos;
    private Vector3 oldcampos;

    // Use this for initialization
    void Start () {
        oldpos = transform.position;
        oldcampos = Camera.main.transform.position;
    }
    
    // Update is called once per frame
    void Update () {
        if (followcamera) {
            Vector3 v = new Vector3((Camera.main.transform.position.x - oldcampos.x) / offset, 0, 0);
            transform.localPosition = oldpos + v;
        }
        else {
            Vector3 v = new Vector3((oldcampos.x - Camera.main.transform.position.x) / offset, 0, 0);
            transform.localPosition = oldpos + v;
        }
    }
}
  • 背景に使う画像は1024x1024、かつシームレスにした。その画像を Material に割り当て。
  • 巨大な Plane を作って該当 Material を指定。タイル回数?を弄って見た目を調整。
  • 該当 Plane に Parallax.cs を割り当てて、offset の値を各Plane毎に変えておけば、スクロール速度が変わる。

しかし、巨大なポリゴンが ―― というか巨大な Plane が、ドデーンと置いてあるのはどうなんだろうと。なんだか環境によっては激しく遅くなったりしそうだなあ、と。まあ、Plane だから、巨大な1枚に見えても、実際は細かくポリゴンで分割されているわけで、最小限のポリゴン数だけ描画されたりするのではないかと楽観視していたりもするのですが。

テクスチャのuvオフセット値を変更して動かしていく方法。 :

ということで、テクスチャのuvオフセットを ―― というか Material のオフセット値を弄ってスクロールする手法も試してみたり。

以下の記事が参考になりました。ありがたや。

_Unityで多重スクロール - kamemo -Unityはじめました-
_UNITYで2Dゲーム開発とかC#とか。: UNITY 2D ゲーム開発: 背景の多重スクロール
_テクスチャの擬似スクロールと小技

で、参考にして、こんな感じに。
uvオフセット値を変更する手法

_Parallax2.cs
using UnityEngine;
using System.Collections;

// カメラ追従しながらテクスチャ(マテリアル)のオフセットを変更して多重スクロール
public class Parallax2 : MonoBehaviour
{
    public float scroll_speed = 1.0f;
    public float div_v = 20.0f;
    private Vector3 oldcampos;
    private Vector3 oldpos;

    // Use this for initialization
    void Start()
    {
        // 初期位置を覚えておく
        oldpos = transform.position;
        oldcampos = Camera.main.transform.position;
    }

    // Update is called once per frame
    void Update()
    {
        // カメラ座標と同じにして追従させる
        Camera camera = Camera.main;
        transform.localPosition = new Vector3(camera.transform.position.x, oldpos.y, oldpos.z);

        // テクスチャオフセットをずらす量を算出
        float u = (camera.transform.position.x - oldcampos.x) / div_v;
        renderer.material.mainTextureOffset = new Vector2(u * scroll_speed, 0);
    }
}
Plane自体は、常にカメラのx,y座標と同じ値にして、uvオフセット値のずらし具合を、各 Plane 毎に変える、みたいな。

コレ、Plane を使ってしまっているけど。Quad でも良さそうな。

コレを Sprite でやれないかな…。

1024x1024の巨大なシームレス画像を用意してる点も、なんだかちょっと引っ掛かる。もっと小さい画像で実現できないかしら。まあ、今後の課題ってことで。

動作デモ。 :

一応 Dropbox に置いてみたり。

_動作デモ (2016/09/04,2017/03/19 置き場所を変更) ( _Unity - Web Player が必要)

←、→、↑キーで移動しかできませんが、BGが多重スクロールしてることぐらいは確認できるかなと…。

背景を3Dにしたほうが早いんじゃないかと言う気もする。 :

どうしてBGを多重スクロールさせるかと言うと、せめてそこだけでも立体的に見せたいから、なわけですけど。

しかし、だったら、カメラを平行投影 ―― Orthographic にするのではなくて、透視投影 ―― Perspective にすれば済むんじゃないの、という気もしていたり。3Dモデルを背景として置いといて透視投影したほうが、「立体的な見た目が欲しい」という目的を、間違いなく果たせるのではないかしらと。

ただ、それはそれで何か問題があったりするのかなと。あるいは、映像表現として、あえて平面らしさを出したいと要求される場面もあるのだろうか。実はそこらへん、自分の中では把握できてないのですけど。

2017/03/19追記。 :

Dropboxのpublicフォルダが死んだのでファイルの置き場所を変更。

2017/03/19現在、Firefox、GoogleChromeの最新版では Unity Web Player がそもそも動かないので、この日記で公開してるUnity関係のアレコレも動かないです。Windows10 + IE11 なら動作することを確認しましたが、いつまで動かせるのやら…。

#4 [game][cg_tools] VertexなるPDFを眺めて興奮してきた

_VERTEX 2 - 300ページの大ボリューム!有名ゲームアーティストが勢揃いのリアルタイムアート技術解説「無料PDFマガジン」第2弾が遂にリリース! | 3D人 -3dnchu- 毎日更新CG系情報サイト という記事を目にして興味が湧いて、 _Vertex なる無料PDFをDLして眺めてみたのだけど。(公式サイトには、「寄付してくれれば次号も出せるよ!」と書いてあるようにも見える。)

英語が読めないから何が書いてあるのか全然分かんないけど、画像見てるだけで興奮してきました。ムッハーッ。オラ、ワクワクしてきたぞ。ていうか、やっぱり絵描きさんはスゴイ。どうしてこんなにカッコイイメカが描ける・作れるのだろう…。

#5 [zatta] 英語、分かりません

先日、 _OpenGameArt.orgに画像をアップロード したら、英語で何かコメントをつけてもらえたようで。

しかし、自分、英語が読めない人間なので、何が書いてあるのか分からなくて。パレットについて言及してるらしい、ぐらいのことしか分からず…。もしかすると要望が書かれてるのかもしれないけど…。うう…ゴメンナサイ…。英語、分かりません…。Sorry. I can't understand English. と書いておけばいいのだろうか。

まあ、せっかくCC0で公開してるのだから自由に変更して使ってください、としか言いようがなく。

前述の、VertexなるPDFもそうだけど、英語が読めないと色々と損をしますな。と言っても、今から勉強したって、読めるようになるとは思えないし…。どうして自分は、こんなにも英語がダメなんだろう…。プログラムを書く時は、アルファベットで書いてるのになあ…。

以上、1 日分です。

過去ログ表示

Prev - 2014/01 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project