月別: 2018年3月

テイルズオブファンタジアをやった(4)

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


予想通り、アルヴァニスタへ行けた。
アーチェがちょっと間抜けに見えたが(´・ω・`)

航海の途中でメイアーなる剣士と知り合う。
彼もモーリア坑道を目指してるようだ。

メイアーとクラース、飲み過ぎw
顔が真っ赤にw

なるほどアルヴァニスタのレアード王子はダオスの側近の操り人形と…φ(・ω・` )メモメモ…
アーチェ、後から参加だからか、称号取得スピードが速いなw

なんかメイアーが襲ってきたヽ(`Д´)ノ
クラースとアーチェは二日酔いでミントは寝てるからクレス一人で行かないといけないんか(´・ω・`)

船員は怯えていたけど、バーテンはいつもどおり(´・ω・`)

アップルグミを6つくらい消費したが、何とか勝てた。
槍系のクレスに比べて剣系のレイアーの攻撃は速いし、よく当たるな(´・ω・`)

メイアーさん、このまま退場かよ…(´・ω・`)

アルヴァニスタの港で船員に世界一周旅行に行きたいとか言ってる人が。
こういう人がピースボートの船とかに乗って洗脳されちゃうんだろうか。

ベルアダムへの船があんのか。片道ということだったので乗らんかった。
アルヴァニスタは食糧事情が良くないとかでライスを500ガルドで売ってくれと言われて売った。5つくらい持ってたから、1つ100ガルド?

なんか蟹が邪魔して宝箱が取れない(´・ω・`)
何度か話しかけたけど、駄目らしい。


アルヴァニスタの街を探索する。

空の人?
宇宙人を呼ぶのか。

ミッドガルズの北西、ヴァルハラ平原の西にある森にユニコーンが…φ(・ω・` )メモメモ…

ギルドで魔神千裂破を6000ガルドで(σ・∀・)σゲッツ!!
ちょっと高いね(´・ω・`)

サクラバから秘密の言葉を1000ガルドで。『ヨチイダ』

最終的にモーリア坑道の許可証って王子様問題を解決すると貰えるのかな?
食料屋で料理人からナポリタンを習う(`・ω・´)アバズレノタベモノ
武具防具を新調し、1レベルずつアップしてから宿屋へ。

いきなりアーチェのほうきでアルヴァニスタ城へ潜入(`・ω・´)

衛兵避けめどい(´・ω・`)
地下に行ったら、魔法陣?
何も起きないな。

ああ、階段の反対側にあるのが扉か(ノ∀`)

矢印ww

ジャミルというのか。

ジャミル自体はクラースのシルフだけで倒せたw
アークナイトは中々硬い。アップルグミを補充しといて良かった…

( ´・ω・)エ? レアード王子…

||Φ(|´|・|ω|・|`|)Φ||


宮廷魔術師のルーングロムさんが迎えに来た。

ガーネットとグーングニルと魔術書セラノフラグメンもろた(・∀・)
モーリア坑道の入坑許可証も貰えるらしい。

さっきの地下はルーングロムの研究所だったのか。
なんかアーチェに呪文書を売ってくれるという人がいたが、高い(´・ω・`)オカネタメナキャ

フレイランドの砂漠にある熱砂の洞窟には、イフリートが居ると…φ(・ω・` )メモメモ…

あーやっぱスペクタルズを使わないとモンスター図鑑に細かい数値が表示されないのか。
まあ一回も見てないからいいんだけどもw

北海の孤島の浸食洞にウンディーネ、ベルアダムの東の精霊の洞窟にノームか。
小人ってノームのことだったのか。

石取りゲームの必勝法を忘れて石取り名人に敗け続ける_| ̄|○
ちょっと後にしよう…

召喚師用の書物って?BOOKなんだろうか。

月の精霊は何処かの国の王様に捕らえられてる…φ(・ω・` )メモメモ…
毒をまく…ハプスブルク家か( ・´ω・`)チョットチガウ

魔科学というのは法術とは別なのか…
エルフ族は水鏡ユミルの森に集結…φ(・ω・` )メモメモ…

二つの月、シルヴァランドが約35日周期、テセアラが約42日周期…φ(・ω・` )メモメモ…
ただの設定なのか、あとで必要になるヒントなのかよくわからないw

ギルドでモーリア坑道の入坑許可証(σ・∀・)σゲッツ!!

坑道が行き止まり(´・ω・`)?
他の場所って何処があるんだろうか。
もしかしてもう自由行動出来るのかな?

装備品を売ったりして研究所で魔法を買おうとするも、サンダービームは買えないと言われ、サンダーソードはリリなんとかという、エプロンドレスを着たおさげの子に買われて売り切れとのこと。取り敢えずサンダーブレードを買ってみた。


モーリア坑道は東南とかいう話だったが、ちょっと西南の方に行ってみるか(´・ω・`)

西南の方にお城があったけど、今は入れない模様(´・ω・`)

更に西南の方へ進むと変なキャンプ地。
剣士から鳳凰千裂破の奥義書を貰う。
放浪者…なんかエルフと人間のカップルに見えなくもないが違うか。

西の方はこれ以外にはなんもないのか。
致し方なく東へと向かう。

フレイランドに行く港に着く。
精霊の話の続きを聞く。
詰まるところ、核戦争後、シェルターで生き残った人達の末裔が今の王国みたいな感じなのか。

モーリア坑道は5階まで…φ(・ω・` )メモメモ…
まあロープとつるはしは相変わらず7つずつ持ってるから先へ行けそうだな。

オリーブヴィレッジに精霊が居るかも(´・ω・`)?

先にフレイランド行ってみるか。
480ガルドだし。

オリーブヴィレッジに着く。
東の洞窟に精霊が居るかもしれないけど、溶岩地獄だって。
まだ行くのは早いのかも。

雑貨屋に色々アクセサリが売っていたが高くて買えない(´・ω・`)
食材屋で料理人にポワレを習う(`・ω・´)
でも砂漠地帯なんだから、もっと違う料理があるんじゃないか?

そういやリキュールボトルで状態異常が防げるんだっけか。
テイルズオブディスティニーのリメイクのラスボス戦でようやく気づいた知識であることは内緒w

東の洞窟に突っ込んだけど、アザーとか体力が1700とかあってきつい( ;・´ω・`)ゴクリッ
さっき買ったばかりのサンダーブレードが強力だったからどうにかなったけどもw

砂漠に出てくるデザートキングも結構体力があるなぁ(´・ω・`)
まあアザーみたいに呪文攻撃してこないからいいけども。

なんやかんやでクレスとミントが21レベル、クラースが20レベルになったので、
取り敢えずモーリア坑道攻略に行く。

なんか先へ進めんと思ったら、壁にレバーがあった。
これで開くのか。

あっち行ったりこっち行ったりコナミコマンドかましたりして、何とか一階へのルートを開く。
一旦地上に戻ってオレンジグミ買って来るべきか(´・ω・`)

うにのトゲは刺さると痛い(´・ω・`)-4

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


画像の動的読み込み

このスクリプトをAddComponentしているGameObjectのSpriteRendererの画像を動的に「Assets\Resources\images\card_ura.png」に変更するには

this.gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("images/card_ura");

と書くらしい。指定すべきフォルダパスは「Assets\Resources\」からの相対パスで良いらしい。

Resources.Load


エディタでは動くのに実機では動かないヽ(`Д´)ノ

トランプの神経衰弱ゲームを作るだけなら必要はないのであるが、後々のことを考えてsqliteを使うようにしてみた。

参考:
UnityでSQLiteを扱う方法
UnityにSQLiteを導入する

取り敢えずは動いていたので、それ以外の調査等々をし、GameObject上に直接テキストを描画するのは難しそうだと分かりがっかりする(´・ω・`)

でまぁ、しばらく、というほどでもないが半日くらい実機で確認してなかったので、久しぶりに実機で実行させてみた…

 

 

 

なんかおかしい…( ;・´ω・`)ゴクリッ

エラーとかは出てないのだけれども、カードのプレハブがインスタンス化されていない…

色々と調べた結果、 SqliteDatabaseクラスのExecuteQuery()を投げる前までは動いていて、この行以降の処理がされていない(´・ω・`)

なんやかんやぐぐったり数時間かけて判明した…_| ̄|○
なんかプラットフォームでの切り替え設定をしないといけないみたい。少なからずうちの環境ではそうだった…

うちはx86_64用のsqlite3.dllとAndroid用のlibsqlite3.soだけ入れて、前者をEditorとStandaloneにして後者をAndroidだけにした。
参考:
Windows64bit&Unity5(64bit)でSQLite。

他のページ等ではこの説明がないんだよなぁ…もしかして皆エディタ上で動いて「わーいヽ( ・∀・)ノ」ってなってAndroidの実機で試してないとか( ・´ω・`)? あるいはうちの環境が特殊なのか、俺氏が何か手順をし忘れているとか…?

まあなんにせよ解決して良かった(ヽ’ω`)


もう一週間以上も時間かけてるのに、ここまでしか進んでいない(´・ω・`)
単純な神経衰弱を作るならもっと簡単に適当に出来るんだろうけれども、寄り道が多すぎる(ノ∀`)

しかしテキストやら任意の画像の描画が簡単に出来ないのはきついなぁ(´・ω・`)ドウシヨウカナ

テイルズオブファンタジアをやった(3)

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


やべぇ、魔術を使えるようになったクラース、むっちゃつぇぇヽ(`Д´)ノ

ベルアダムに戻り、精霊の森へ突入。

下の道を行ったら、むっちゃ簡単にユグドラシルに到達…(´・ω・`)イイノカ?
ユグドラシルの精霊の名前はマーテルと…φ(・ω・` )メモメモ…

クラースの言う通り、信じられないw
余りにも簡単に到達出来たのでw

ダオスがマナを吸収してんのか(´・ω・`)?

現在最強の名をほしいままにしている精霊のルナと契約するためにモーリア坑道にもぐらんといかんのか。

北のベネツィア経由で、モーリア坑道のあるアルヴァニスタへ向かうのか(´・ω・`)メドイ

谷のところで北ルートを取ってみたが、特に何もなかった…
ユークリッドの村の八百屋さんに行ったら、ナンシーのお母さんのマギーが少し寂しがっていたけど、娘の恋路には理解を示していたw

ハーメルに再び訪れると、街が壊滅してた…(´・ω・`)


その後何事もなくベネツィアに。
宿屋に行ったらナンシーが。
面倒くさいが毒を食らわば皿までもということで、エルウィンの会社に行くか(´・ω・`)

なんか変なハーフエルフがいたけど、まだ関係ないのか。
魔術の師匠とか言ってたけど。
輸入会社レイオットでエルウィンと約束を取り付ける。

社長室に行ってお父さんのドグに怒られる。まあ確かにそうだな(´・ω・`)

港に行って船を巡ったが、特に何もなく。
まあ頼めば出航してくれるみたい。

料理人から、すしを習う。

ベネツィアだけに移動は舟か。30ガルド…
ベルアダムの村の武器屋の本に必殺技…?

ベネツィア市長はベルアダム村長の双子の兄なのか…

防具屋で女剣士から3000ガルドで奥義書を買う。
どうせオートでしかやらないので、奥義名は気にせず(ノ∀`)

クラースの家の呪文書は今なら意味があるかもと思い、あとベルアダムの村の武器屋の古本が気になり、一旦ベルアダムに戻ることにした(`・ω・´)

ベルアダムの武器屋、隠し通路はわかったが、現段階では取れない模様(´・ω・`)
やっぱり未来というか現在に戻るのだろうか?

村長にお兄さんのことを話したら、スクリプトは変わったが、ゲーム的には何も変わらない模様。また戻るか(´・ω・`)

噴水の前に誰も居なかったので、再び輸入会社レイオットの二階へ行くと、社長とエルウィンが喧嘩している模様。
最初にナンシーが飛び出し、続いてエルウィンも。
後を追って外へ出てみたが、橋の上にナンシーはいるものの、エルウィンが行方不明(´・ω・`)

と思ったら噴水の奥の柱のところに居ったわw
二人で駆け落ちするのか?

この後、話が進行しなくてウロウロ(・ω・`≡´・ω・)センチョードコー

ハーメルに戻ったら、上の方に行けることが判明。行ってみたら少女が。
デミテルに襲われて壊滅したとかどうとか。
少女の仇討ちを助けるクレスと同意するミント。最初は反対していたクラースもなし崩し的に賛成w

少女はリアって言うのか。この子は完全なNPCか。
何はともあれ、このフラグを立ててなかったというかストーリーをこなしてなかったから、先に進めなかったのかw

取り敢えずセーブして終了。


ベネツィア市の港に戻ったら、船長が居った(・∀・)
でも用がないなら立ち去れとか言われた(´・ω・`)
まだ何か他のフラグが必要なのかな?

市長の家に行ったら、デミテルは西の孤島に行ったとかどうとか。
ようやく船出航フラグが立ったか(`・ω・´)

デミテルの屋敷に行ったが、先に進めない。
鍵を取って進んだ先に木と陽の光…
入り口の広間でカーテンが開けられたので、プリズムを使って光を
オーブみたいなのに当てればいいのかと向きを変えてみたが、特に何もない。
一回船に戻って寝たら日の出で光が当たるんじゃろうかと考え、そうする。
何も関係無かった模様(ノ∀`)

カーテンを開ける数かと思ったけど、そうでもなさそう…
石みたいなのが落ちてるけど拾えないから、ただの背景か。

この木を伐り倒せたらなぁ…(´・ω・`)と思いつつ、
大樹を何度も調べてみたら、ウゴイタァァァァァァァァヽ(`Д´)ノ

グレアム・クレイΣ(゚∀゚;)?
違った、ただのオークロットだった。

広間に戻ったら、なんか階段があった(・∀・)
なんか石碑があったがよくわからない(´・ω・`)

お、デミテル居った…
ってまさかリアは…( ;・´ω・`)ゴクリッ

俺氏はリアを信じるお(`・ω・´)←ただの女好き

あら、普通にデミテルがダオスの手下だったw
回復介入はしたものの、そんなに苦労せず勝てた。
レベル16くらいだったからか。

って、ああ、リアが友達の体を借りてたのか…(´・ω・`)ナムナム

お、君がアーチェかねΣ(゚∀゚;)

いきなりバートさんちにワープ。
宝箱を取りにまた行かなきゃ…(´・ω・`)

アーチェが仲間になって、バートさんからアクアマリンとルビーもろた(・∀・)

バートさんに話しかけたら、チャネリングをくれた。
これ本当に何に使うのか解らない(´・ω・`)

ベネツィア市に戻り、再び800ガルドを払って西の孤島に。
デミテルの館の左上にある平原が気になる。
なんかすると新しいダンジョンが出て来るのであろうか?

デミテルの居た部屋の宝箱はハルバードと?BOOK。
そう言えば西の孤島の港の先っぽでも?BOOKがあったな。

さて、この後何処に行けばいいんだろう?
これでミッドガルズじゃない方の船が出るようになるんだろうか?

うにのトゲは刺さると痛い(´・ω・`)-3

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


Web上にあるUnityのサンプルコードを眺めているとC#固有というか特有な機能等があったりして、C#をよく解っていない俺氏はコードが理解出来ず(´・ω・`)

その都度ぐぐるわけだが、それも段々面倒くさくなり、C#の本でも買うかと考えた。
で、たまたまkindleでセールをやっていて、金城俊哉という人の「Visual C# 2017パーフェクトマスター」という書籍が¥1,244だったので買ってみた。amazonのレビューでも悪くなさそうだったのだが…

 

 

失敗だった…_| ̄|○

日本語表現がちょっとおかしかったり、同じ表現を繰り返してまだるっこしかったり、踏み込んだ内容が少なくて冗長、誤字等が多いという感じで読んでいて苦痛だったわ(ヽ’ω`)
レイアウトや時々入ってるHintやMemoとかもなんか酷かったな。あれは空白を埋める為に適当に入れるものなんだろうか。

4章までは頑張って読んだけどそこで本を閉じた…_| ̄|○
後のアプリケーション作成の方は必要になったら読めばいいし。マルチスレッドプログラミングも今のところ必要ないし。

この人は同じような本を何冊か書いてるみたいなんだけど、皆こんなレベルなんだろうか。
もしかしたら下請けライターみたいなのが居て、それを取りまとめているのかなぁ?
一部分だけ詳述されているがそれ以外の部分は知っていることをただ羅列しましたみたいな感じで内容にムラがあったので、そんな風に思ってしまった。

取り敢えず中級者が読むには内容が薄く、初級者が読むには誤字が多くて表現が冗長で解りにくいという印象。もっと言うと知識を文字(及び図)を使って他者へと伝達するという意志が見られない書籍であった(ノ∀`)

これを買うならWebでぐぐって自分に合った学習サイトで勉強した方がいいかもねぇ(´・ω・`)
この人の本と秀和システムの本にはもう手を出さないにしようw
内容は著者が担う問題だけど誤字が酷いのは編集プロダクションか出版社の問題だからなぁw


画面スクロール

結局スクロールに関しては「UnityでiOS/Android/Editorの共通タッチ処理を実装する」にdeltaを取れるように追加してみたをベースにし、2本指でスワイプした時にカメラを並行移動させる処理を実装するの内容を混ぜてみた。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScreenScroll : MonoBehaviour {

    public float moveSpeed = 0.1f;
    private Camera mainCamera;
    private float horizontalPosition;
    private float varticalPosition;
    private Vector2 beforePoint;
    private Vector2 nowPoint;

    // Use this for initialization
    void Start()
    {
        mainCamera = Camera.main;
    }

    // Update is called once per frame
    void Update()
    {
        TouchInfo info = AppUtil.GetTouch();
        switch (info)
        {
            case TouchInfo.Began:
                beforePoint = AppUtil.GetTouchPosition();
                break;

            case TouchInfo.Moved:
                nowPoint = AppUtil.GetTouchPosition();

                if (nowPoint.x - beforePoint.x != 0)
                {
                    horizontalPosition = (nowPoint.x - beforePoint.x) * (-1);
                    horizontalPosition *= moveSpeed * Time.deltaTime;

                    mainCamera.transform.position =
                        new Vector3(Mathf.Clamp(mainCamera.transform.position.x + horizontalPosition, 0f, 7f),
                    mainCamera.transform.position.y, 0f);

                }

                if (nowPoint.y - beforePoint.y != 0)
                {
                    varticalPosition = (nowPoint.y - beforePoint.y) * (-1);
                    varticalPosition *= moveSpeed * Time.deltaTime;

                    mainCamera.transform.position =
                        new Vector3(mainCamera.transform.position.x,
                    Mathf.Clamp(mainCamera.transform.position.y + varticalPosition, -10f, 0f), 0f);
                }

                beforePoint = nowPoint;
                break;
            case TouchInfo.Ended:
                break;
        }
    }
}

この内容が正しいかどうかは解らない(ノ∀`)
2D用スクロールなのでQuaternionの辺りは削除してみた。
一応動いてくれてるので、後は移動限界値を可変にするだけでいいかな。


imageと普通のオブジェクトの違い(ヽ’ω`)
面倒くさくなって来たので端折って書くが、Unityの寺子屋 定番スマホゲーム開発入門で学んだことから拡張しておこうとした俺氏は、

  1. UI上にimageを並べてしまったが為に画面スクロールがまともに動作しないという事態に陥る。(カメラ設定を変えると動くけど意図しない大きさになったんだったかな?)
  2. imageからGameObjectに変え、canvasではなく新たに作ったGameObjectの子としてインスタンスを生成したら、スクロールはするようになったが、意図した配置にならなくなった。
  3. インポートしたimageの「Pixels Per Unit」を正しい値にしたら、まぁまぁ意図した配置になった。(厳密には未解決(ノ∀`))
  4. GameObjectをタップしても反応しなかったので、Physics 2D RaycasterやらBox Collider 2Dを追加したり。

参考:
【Unity2D】Pixels per Uint について
Unity(3D・2D) EventSystemでクリックイベントの制御

画面出力
実機の画面上に簡単に出力する方法が見当たらなかったので、
UnityのGUIでテキスト(文字)を表示させる方法【初心者向け】
テキストのサイズを変更する
を参考に、

    void Start()
    {
        style = new GUIStyle();
        style.fontSize = 50;
    }

    void OnGUI()
    {
        GUI.TextField(new Rect(100, 100, 200, 200), Screen.width + ":" + Screen.height,style);
    }

みたいな感じにした。まあこれは解像度を出力してるだけ。
「Screen.width + “:” + Screen.height」の部分を変数にしといて、update()の方でその値を更新すれば画面ログ出力が出来る感じか(´・ω・`)