Hatena::ブログ(Diary)

しんさんの出張所 はてな編 このページをアンテナに追加 RSSフィード

カレンダー
2007 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2015 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 |
2016 | 05 | 08 | 10 | 11 | 12 |
2017 | 01 | 02 | 06 | 08 | 11 |
2018 | 02 | 08 | 09 |

2018-09-12

[][]Unityメモ #4 画像を表示するコンポーネントの追加

今回はコードの説明は入りません。まずはUnityエディタ上でゲームオブジェクトに静的にコンポーネントを追加するところまでやります。

動作がわかりやすい画像を表示するコンポーネントを追加します。

画像を用意

まず画像を用意しておきます。

ここでは3種類用意しました。

Assetsフォルダ以下に配置してください。

f:id:shin:20180912221524p:image

これで準備は整いました。

コンポーネントの追加

まず前回同様何もないゲームオブジェクトを作成します。

f:id:shin:20180912221522p:image


ヒエラルキーウインドウで作成したゲームオブジェクト選択します。

f:id:shin:20180912221520p:image


インスペクタウインドウのAdd Componentボタンをクリックします。

f:id:shin:20180912221518p:image


その中からRenderingを選択し、

f:id:shin:20180912221515p:image


Sprite Rendererを選びます。

f:id:shin:20180912221514p:image

そうするとインスペクタウインドウにSpriteRendererコンポーネントが追加されました。


f:id:shin:20180912221512p:image

ただしまだ画像は設定していないため何も表示されません。

SpriteRendererコンポーネントのSpriteをみるとNoneとあるのがわかるかと思います。


画像の設定


SpriteのNoneとかかれた枠のさらに右側に丸いアイコンがあります。これをクリックすると以下のウインドウが表示されます。

f:id:shin:20180912221634p:image

ここで画像を選択してください。


シーンウインドウを見ると画像が描画されているのがわかります。

f:id:shin:20180912221632p:image


画像を移動

ついでに残り2つの画像も作りましょう。

ヒエラルキーウインドウに何も選択されていない状態なのを確認してから、それぞれ右クリックメニューでCreateEmptyをえらびましょう。

f:id:shin:20180912221630p:image

重なっていますね。


シーンウインドウドラッグして移動可能です。

重ならないようにそれぞれ動かしてみましょう。

f:id:shin:20180912221627p:image

移動しているとtransformコンポーネントのXとY座標(position)が変わっているのがわかるかと思います。

これがまず親子関係がない状態です。


保存

ここで作業が失われないようにいったんシーンの保存しましょう。

f:id:shin:20180912221625p:image


親子関係

ヒエラルキーウインドウドラッグすると既存のコンポーネントの親子関係が作れます。

f:id:shin:20180912221622p:image

移動後。

f:id:shin:20180912221620p:image


この状態で親のコンポーネント選択ドラッグで移動してみましょう。子のコンポーネントも一緒に移動しているのがわかりますね。

f:id:shin:20180912221617p:image

子のコンポーネントは親のコンポーネントからの相対的な座標を持つことになります。


ためしに、このコンポーネントのtransformでXY座標(position)ともに0を入れてみてください(数字を直接入力でも移動できます)。

f:id:shin:20180912221615p:image

親の中心座標と重なるように子が移動されます。

もちろん、親をドラッグすると子もついてきます。


ショートカット

画像を表示するのに毎回ゲームオブジェクトを作ってコンポーネントを追加するのだるいですね。

ショートカットがあります。

実はCreateEmpty以外はいわばすべてショートカットです。何らかのコンポーネントを追加したゲームオブジェクトを作るという動作になっています。

2D ObjectのSpriteというのがSpriteRendererコンポーネントを張り付けた状態のゲームオブジェクトを作成するというショートカットです。

f:id:shin:20180912221612p:image

先にショートカットの方を触ってしまうと、このコンポーネントとゲームオブジェクトの関係がかなり覚えにくいので、あえて遠回りさせました。

入門書をへたに見てしまうと独学だとこの辺の理解が遅れるかと思います。他の環境でプログラムはできるけど、Unity自体は初めてという人は今回の手順でゲームオブジェクトコンポーネントを理解したほうが良いかと思います。

プログラムそのものが初めての場合は、手っ取り早い入門書のほうが、ちゃんとした理解は置いといて、さくっと絵が出るのでおすすめでしょう。つまりこのblogの対象者ではないということです。

次回コンポーネントをコードから追加してみる予定です。

2018-08-29

[][]Unityメモ #3 ゲームオブジェクトのつくり方

はじめに

さて一番基本的なオブジェクトであるゲームオブジェクトを今回作ります。

何度も書いているようにゲームオブジェクト自体は何も機能がないので画面に何も表示されません。

ヒエラルキーウインドウに表示されたのを確認するだけです。

見た目に変化があるものは次回以降で。地味ですいません。

ゲームオブジェクトを作る方法

1.Unityエディタ上で静的に配置(ぽとぺた)でつくる

2.コードで作る

3.プレハブから作る

「3」は今回説明しません。プレハブ自体の概念に関係しますのでこれはあとで。

1.Unityエディタ上でゲームオブジェクトを作る

まずヒエラルキーウインドウで「何も選択せず」右クリックでメニューを出して「CreateEmpty」を選択します。

f:id:shin:20180830005228p:image

そうすると素のゲームオブジェクトヒエラルキー上に出来上がりました。

f:id:shin:20180830005354p:image

インスペクタウインドウを見るとTransformだけ存在しているというのがわかります。

f:id:shin:20180830005532p:image

座標系やスケールなどの情報しかないということ、これは必須であるというのがわかりますね。

ゲームオブジェクト(正確には必須コンポーネントのTransform)は親子関係を保持すると前回書きました。

この作成したゲームオブジェクトの下にゲームオブジェクトを作ってみましょう。

ぶらさげたいゲームオブジェクト選択して先ほどと同じように「Create Empty」を選択します。

f:id:shin:20180830010038p:image

親子関係ができましたね。

f:id:shin:20180830010036p:image

静的なものはこのように作っていきます。

2.コードからゲームオブジェクトを作る

これは簡単で、

new GameObject();

これだけです。簡単なことは簡単なのですが・・・

コンストラクタが通った瞬間にヒエラルキー上に現れます。他のフレームワークではツリー上の親を指定するなどが必要なものがほとんどだと思いますが、Unityインスタンス作っただけで登録されます。最初はまさかこんな挙動になるとはだれも思いませんので気を付けましょう。

この場合シーンのルートに置かれることになります。

親子関係を指定したい場合はtransformにあるSetParent()メソッドを使います。

GameObject parent = new GameObject("親");

GameObject child = new GameObject("子");
child.transform.SetParent(parent.transform);//親を指定

実行結果

f:id:shin:20180830010832p:image

はい、親子関係が出来上がりました。引数にstringをいれるとその名前が設定されたゲームオブジェクトが生成されます。


このコードを書く場所ですが、これはコンポーネントの作成とアタッチに関係してくるので、次回コンポーネントのつくり方で説明します。

2018-08-16

[][]Unityメモ #2 ゲームオブジェクトの概念

前回ちらっとだけゲームオブジェクトという単語が出てきていたが、今回はその説明。

今回もまだ実際のコードなどはなし。

概念のみだけどここはわかってしまえば簡単だけれども公式ドキュメントとにらめっこしてもなかなかはいってこない、独学だとスゲー時間がかかったりする部分。超大事。

一応このメモのターゲットを明記しておくけど、Unityをはじめてプログラムなどで組むための人向けではなくて、すでにほかの環境でプログラムを触ったことがある人向け。俺と同じ状況だった人へ。


概要

ゲームオブジェクトとはシーングラフ上の各ノードを表す。

これはある意味cocos2dのNodeやlibGDXのScene2DのActorやGroupに近いもの。

シーングラフとは親があり、子が複数あり、ツリー上で構成されるもの。

普通のGUIアプリなら必ずこの構成だと思ってよい。

子は親の座標からの相対的な座標などを保持する。


公式のドキュメントの説明は以下なのだがこれ読むと余計わからないので気にしなくてよいと思う。

というか、わからせようとしてないと思う。すごく大事なところなのに。

https://docs.unity3d.com/ja/2018.2/Manual/class-GameObject.html

過去のドキュメントだとこの辺少しまともだったと思うけど、現時点ではなにいってるかわからないので無視するべし。

ゲームオブジェクトは親子関係の情報を持っていて、ふるまいはこいつ自身は持たないもの、という理解でよい。

ふるまいは前回書いたコンポーネントのこと。

それ自体は機能をほとんど持たないゲームオブジェクトだが、こいつはコンポーネントを複数保持することができる。

ゲームオブジェクトコンポーネントは組み合わせてやっと意味が出るということ。

コンポーネントは複数持つことができるというのがポイントでプログラムコンポーネントとして貼り付けることができる。それによって独自のふるまいを注入することができる。

このコンポーネントがゲームオブジェクトに付与されることを公式には「アタッチする」と呼んでいるのでこれも覚えておきたい。


Transformは最重要項目

親子関係や座標などはより正確にいうとゲームオブジェクトそれ自身ではなくTransformというコンポーネントが持っている。

ただしこれはゲームオブジェクトを作ると必ず含まれている上にpublic変数でアクセスができるので、あまりコンポーネントとしては意識する必要はないかもしれないのでゲームオブジェクトが持っているものと考えてよいと思う。

つまりゲームオブジェクトというものがでてきたら自然とTransformも含むのだなと。

ほかにもいろいろとあることはあるが、現時点でこれだけ覚えておけばよい。

いろいろと知りたいなら以下参照。

https://docs.unity3d.com/ja/2018.2/ScriptReference/GameObject.html


次回からプログラム的なことがやっと始まる…気がする。

2018-08-09

[][]Unityメモ #1 「コンポーネント」という言葉に注意

これから自分のためになんかあったときあとで思い出せるようにUnityのメモを残していくことにする。

おもに7月の1か月間で勉強した内容中心にかきなぐっていく。

が、第1回はいきなり勉強関係ない、プログラム関係ない所から。でもすごく大事。

コンポーネント

この単語を意味するところはプログラムを組んできた人なら何らかのソフトウェア部品を意味すると思う。

また、さらに狭義の意味ではGUI部品なども表すことが多いだろう。コントロールなどとかね。

でもUnityにはコンポーネントという名前の意味がちゃんと定義されている。しかも頻繁に使う。

そのためUnityしか知らない人や、Unityのプロダクト上での話に外野が上記単語を持ち出すとかみ合わなくて話が通じないので注意すること。

俺はこれをやらかしたことがある。びっくりするくらい通じない。

Unityコンポーネントというのはゲームオブジェクトに付与できる振る舞いのこと。大半のプログラムもこのコンポーネントの1つに過ぎないという不思議な感じのものである。

このコンポーネント、libGDXやcocos2dには当てはまる概念はないと思う。

2018-08-04

[][]Switch イース8 は間違いなくお勧めだ

概要

アクションRPGの名作であるイース。そのシリーズの8作目。

主人公はいつものアドルである。

が、話は独立しているので8だけで楽しめる。

元はVitaでそれの完全版的なPS4版が発売され、SwitchはそのPS4版の移植となっている。

DLCなども最初から入っている模様。



システム

3人PT。この3人をボタンで瞬時に切り替えることが可能。武器によって属性が違うため、敵の弱点属性をうまく使って戦うというのが基本的な戦い方。

最終的に6人で歩くのだが、操作できるのは3人まで。もちろんPT編成ができるため、その3人のHPが減ってきたら、のこりの3人に変えてプレイなどもできるため基本的に人数が増えるほうが有利ではある。

が、ボス戦になるとPT編成などが全くできなくなるため結局主力の3キャラだけで進めたほうが良いという感じに。というのはキャラ切り替えを設定していない控えのキャラは経験値の入りが少ないようだ。主力にLVを置いて行かれることになる。

スキルはたくさんあるようだが、成長要素もあり、使いやすいものだけに絞るのがよさそう。似たような範囲だったりどれがどんな感じか正直ダメージ的にもわかりにくいものだらけでスキルの差別化はできてない、あまり良いとは言えなかった。結局強いスキル1つだけ使う感じになっちゃう。


ロードは早い。特にスキップトラベルの速さは特筆もの。そのかわり、エリアが細かく区切られるエリア制になっているのが残念。エリアが区切られてはいるが、その先の描画もちゃんとされているのでせまっ苦しい感じはそこまでではないけれども、ロードが短くとも頻繁に入るのはすこしつらい。

元がVitaということで細かく区切る必要があったのとそれをベースにしてイベント類をそのまま配置でいるように無あ以外はきりかえをあまり変えてないのが原因だろうか。

アイテムやメニュー系が一瞬で出るため、快適さを意識したゲームといってよいとは思う。

クエストなどの位置がマップに表示差r、スキップトラベルも快適ということでクエストは意識していればクリアはしやすいかもしれない。


シナリオ

序盤はどうしても漂流者たちが生きるためにがんばるというだけで話がすすむのでそこはものたりないとおもう。話が動き始めるのはダーナを操作できるようになってから。

世界の滅亡などが絡んできていきなり話のスケールが広がる。


のだが、どうしても舞台は島1つだけなのでバリエーションは乏しい感じ。


最終的にサブタイトルの意味が分かるのがクリア後というのが地味に素晴らしい。お話的には初期のイース1〜3よりはるかによいとは思う。

ただし、名声が低いとまともなエンディングが見れないのはよくないかな。恐らく200以上必要。普通のエンディングの上で特別なのが用意されているとかならわかるのだが、これは一番上のエンディングでやっと普通のエンディングなので。


サウンド

イースといえばファルコム黄金時代のBGMのよさは有名。

で、その8はどうかといえば、これがすばらしい完成度だった。

BGMがよいRPGならイースという名前を付けてよいのでは、というくらいやはりイースシリーズでは大事だと思う。


グラフィック

メニューの際に表示される絵はTOP絵と個別のキャラ絵の2つがあるがどちらも素晴らしくきれい

一方で酷評される3D絵のほうだが、これ自体はそれほど悪いとは自分は思わなかった。むしろモーションなどはきになる。

それよりは気になるのは影のちらつきや、テクスチャのモアレ。特に最初の導入部分のイベントの船の上はすごいことになっている。影のちらつきもそうだが、これらは画面全体がスクロールしているときは気にはならないが、画面が止まった感じのイベントシーンではかなりつらい感じになる。

それ以外は南国の島的なグラはきれいだとは思う。


評価

いつもの5段階評価。おすすめかかどうかは総合評価を見てもらえれば。

 評価
システム★★★−−
シナリオ★★★★−
サウンド★★★★−
グラフィック★★★−−
総合評価★★★★★

はい、まちがいなくおすすめです。

2018-02-16

[]株式会社Abby社員募集中(Unity)

株式会社Abbyでは技術者を募集しています。

今回募集している技術はUnity技術者です。

UnityなのでC#知識は古いくらいがちょうどよいです(PC以外だと動かない、エラーも出ないとか普通にあるの困る)。

言語よりもIDEを使い慣れている、勘所などそちらを重視します。


今まではスマホ向けに開発をしていましたが、今後はスマホのほかにもプラットフォームを広げる予定です。


https://www.abby.co.jp/

興味がある方は弊社ホームページの採用を参照、または自分宛てにTwitterのDM(@shinsan68k)などでもかまわないです。

もちろん自分以外の弊社社員と顔見知りでしたらそちらからコンタクトをとって構いません。

ご応募お待ちしております。

2017-11-16

[]株式会社Abby社員募集中(Go/Unity)

株式会社Abbyでは技術者を募集しています。


今回募集している技術はGoとUnity技術者です。

Goの技術者サーバーサイドの技術者となります。Go言語だけではなくRDBの基本的な知識も必要です。HTMLJS知識もあるとなおよいです。

Unity技術者Unityを触ったことがある、指示されて末端で作業をしただけだけという人ではなく、自分なりのベストプラクティスがある、スマホなどマルチプラットフォームでのノウハウがある、など開発面においてチームを引っ張っていける人を募集しています。



https://www.abby.co.jp/

興味がある方は弊社ホームページの採用を参照、または自分宛てにTwitterのDM(@shinsan68k)などでもかまわないです。

もちろん自分以外の弊社社員と顔見知りでしたらそちらからコンタクトをとって構いません。

ご応募お待ちしております。

2017-08-05

[][][]NetBeans 8.2で日本語を使えるようにする

NetBeansは8.0まではエディタは特に問題はありませんでした。

NetBeans 8.1にてエディタがおかしくなります。一応何とか我慢できるレベルのバグではありました。この挙動は6.x系だったか不安定なバージョンで一度やらかしたやつと同じです。一瞬どっかにスクロールしてしまう系ですね。

NetBeans 8.2ではなんと改善どころか悪化しました。もはや入力に支障が出るレベルです。


一か月半ほど利用してみましたが、以下の対応で問題は解決しました。問題は特に出ていません。jarを置き換えるだけのものです。

http://junichi11.com/?p=3620

非常に助かってます。ありがとうございます!


アップデート系などが動いていると恐らくNetBeansインストールしたフォルダではなくAppData/Roamingなどユーザーのフォルダに各種jarがおかれていてそちらを利用しているので置き換える必要があります。

また、ここは隠しフォルダとなっていて隠しフォルダを表示する設定になっていても普通に検索して該当ファイルが見つかりませんので、意識して探しに行ってください。

2017-06-08

[][]株式会社Abby社員募集中(Go/Java)

久々のblogです。久々の募集エントリです。

できるだけわかりやすいところを書いていきます。

Abbyではプログラマを若干名募集しています

募集はプログラマです。若干名です。

また、比較的急募です。


会社のお話

勤務場所は東京本社、最寄り駅は中目黒駅というところです。

今住んでいる場所からだと通勤時間がかかるなどの場合、引っ越し代の援助もあるかもしれません。(応相談)


会社概要などはこちらを見ていただければと思います。

株式会社Abby


上のリンクを見ていただけるとわかりますが、うちは業務系とゲーム系の開発の2つを行っています。

ゲーム系は最近ですとクレヨンしんちゃんという漫画/アニメのゲームの開発のお手伝いをさせていただきました。その前はくまのがっこう、ムーミンといったものも開発させていただいております。ターゲットはスマートフォンタブレットといったものです。


業務系はいろいろと多岐にわたると思いますが、こちらもメインはタブレット向けの開発をしていたりします。


面白いことにどちらも技術的には、サーバー側はGo言語/Javascript/HtmlクライアントJava言語となっており、わりと統一されています。



募集スキル

というわけで、今即戦力としてほしいのはGoまたはJavaが書ける人です。

もちろん、どちらが得意でもう片方もある程度かけるなら完璧です。

どちらか片方が得意な場合即採用かと思います。特にGoを書ける人の絶対数は少ないかと思いますのでそちらが得意だと採用される確率はかなり高いかもしれません(個人的な感想です)。


環境について

開発環境は自由です。

マシンはMacLinuxWindowsなど好きに決めることができます。一番パフォーマンスが出せる環境を選択してください。

統合開発環境にしても自由です。例えばJava書いてる人でもNetBeansEclipseIDEA、AndroidStudio、自作IDEの人など自由です。

コードが出来上がれば何でもよいです。使い慣れたものでOKです。

技術書もほしいものがあればすぐ買います。


そのほかの環境としては机はかなり広いかと思います。椅子はいわゆるアーロンチェアです。

服装は私服で結構です。打ち合わせで外に出るのはほとんどぼ社長が行っており、ほかの社員はスーツを着る必要はまずありません。

自分もこの数年スーツを着たことはほぼないです。コードを書くのだけに集中してもらえればと思います。

基本出社が必要ではありますが、子供の世話をしないといけないときや台風で出社が困難、少し体調悪いかもといった場合など自宅で作業してもらって結構です。


腹筋マシーンやけんすい器具などもなぜかあります。


そのほか

うちの社長とCTOも同様の募集エントリ書いてますのでこちらも見てもらえればと思います。

社員募集

株式会社Abby エビイ で働くチャンス到来の話



上記内容を見て気になった方は、Abbyのホームページ上から申し込んでもよいですし、twitterで自分宛てにDMしていただいてもかまいません。twitter経由で入った方も何人かいる気がしますのでまずは会社見学から気にせずどうぞ。

2017-02-26

[][]libGDXの基礎20 シザーテストを使う

http://qiita.com/shinsan68k/items/ef84cf8590134c8d7ccf

今回はシザーテストを書きました。

特別扱いは難しくないのですが、SpriteBatchなどバッチ描画している場合(ほとんどの場合デフォルトではそうです)、バッチのフラッシュなどを意識する必要があるのだけは注意が必要です。