【Unity】画像をグルクル回転させるアニメーションを作りたい
最近行っているゲーム製作の中で、幾何学模様を組み合わせてサイバーっぽいパーツを作りました。で、友人の「これって回ったら格好よさそうじゃない?」という無責任な発言でこれを回すことになりました。
今回はこんな感じのアニメーションを作ります。
いろいろやりようはあると思いますが、色んなUIパーツに対して使えるよう今回はスクリプトで回すことにします。今回はこちらを参考に組みました(というか、ほぼそのままです)。
実際のコードはこちら。自作部分はえいやで組んだので適当です。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotAmimation : MonoBehaviour {
public float angle = 1;
public bool rot = true;
void LateUpdate(){
if (rot) {
transform.rotation *= Quaternion.AngleAxis (angle, Vector3.back);
} else {
transform.rotation *= Quaternion.AngleAxis (angle, Vector3.forward);
}
}
}
公式リファレンスにある通りにangleで回転角をで回転方向を決めています。つまり、angleで回転速度(角速度)を調整します。回転方向については、Vector3とあることから分かるように3次元に回転できて、それぞれ
- up:(0,1,0)
- down:(0,-1,0)
- back:(0,0,-1)
- forward:(0,0,1)
- left:(-1,0,0)
- right:(1,0,0)
のようになっています。今回は2次元平面上での回転なのでz方向の回転、すなわち
- back
- forward
を使います。とりあえず回転方向を2種類を切り替えられればいいので、時計回りならtrue、反時計回りならfalseのboolで切り替えています。あとは、これを回転させたい画像にアタッチして、インスペクターでパラメータを調整すれば完成です。
ちなみに、私の場合は描画順序がうまくいかなかったのでSortingLayerで調整しました。
JupyterLabで開発しながら.pyファイルを作りたい
最近、JupyterLabのβ版が公開されて、ますますJupyterでの開発が捗っている方も多いのではないでしょうか?
私もそんな一人なのですが、複数人でソースを共有したいときやflaskで作ったapiを叩くとき、Jenkinsからキックするときはやっぱり.py形式の方が使いやすい。ということで、.ipynbを保存すると同時に.pyファイルも保存してくれるやり方を探したら、ありましたのでメモっておきます。今回はこちらを参考にさせていただきました。
まず、ターミナルなどのコンソールを起動して、configを作成します。
jupyter notebook —generate-config
生成時に生成されたパスが表示されるので、そのファイルを開いて中身を書き換えます。
#c.FileContentsManager.post_save_hook = None
これを
import io
import os
from notebook.utils import to_api_path
_script_exporter = None
def script_post_save(model, os_path, contents_manager, **kwargs):
"""convert notebooks to Python script after save with nbconvert
replaces `ipython notebook --script`
"""
from nbconvert.exporters.script import ScriptExporter
if model['type'] != 'notebook':
return
global _script_exporter
if _script_exporter is None:
_script_exporter = ScriptExporter(parent=contents_manager)
log = contents_manager.log
base, ext = os.path.splitext(os_path)
py_fname = base + '.py'
script, resources = _script_exporter.from_filename(os_path)
script_fname = base + resources.get('output_extension', '.txt')
log.info("Saving script /%s", to_api_path(script_fname, contents_manager.root_dir))
with io.open(script_fname, 'w', encoding='utf-8') as f:
f.write(script)
c.FileContentsManager.post_save_hook = script_post_save
のように書き換えます。
これで後は実際にJupyterLabを起動して、ファイル保存をするだけで.ipynbファイルと.pyファイルが同時に生成されているはずです。
ついでに、「個別の環境にJupyterをインストールするのは面倒だよ」という場合は、オンプレOSSのようにサーバー用PCにみんなでアクセスして使うという方法があります。これもブラウザで稼働する点のメリットですね。これでユーザーはブラウザさえあれば即使えますし、バージョンやライブラリの管理も1台のPCで済みます。リモートで使うための方法はこちらが参考になります。
Texファイルが大きくなったので分けようと思う
論文や講義ノートなど、長編の書き物をしていると段々TeXファイルが大きくなってきます。私の場合は図を多用していたので特にそうでした。大きくなってくると当然、ビルドにも時間がかかります。しかも私は、タイプミスをしょっちゅうするので、結構な頻度でビルドしてはプレビューで確かめてを繰り返さないといけない始末。なんとかならないのかと唸っていたら友人から「章ごとに別々のTeXファイルに分ければいいじゃん」と言われたので、調べてみたらありました。qiita.com
上記のサイト様にも書いてありますが、基本的には章ごとにTeXファイルを1作って、まとめるときは、まとめる用のTeXファイルを作ってその中に各章のTeXファイルの内容を埋め込むイメージ。(そういえば最近、ホームページ作りでも似たようなことやったなあ)
一つ気を付けないといけないのは、まとめる際に「TeXファイルの内容をそのまま埋め込む」ことになるので各章のTeXファイルにはプリアンブル(usepackageとか書いてある¥begin{document}より上の部分です)が書けないということです。これで何が困るって各ファイル毎にビルドできないので、結局書いた内容を確かめようと思うと全ファイルまとめてビルドしないといけません。これではあまり解決になってません。
と思っていたらあるじゃないですか、各ファイル毎にビルドできる方法が。
どうやらこのパッケージを使うとプリアンブル部分を無視してまとめてくれるみたいです。なので、まとめファイルと同じプリアンブルを各ファイルに書いておけば章ごとにビルドできる。これで大分楽になりました。ありがとうございます。
ちなみにinputとincludeの違いはこちらの通りだそうです。
アクセス解析を復習してみる
とある事情でまた新たにサイトを作ることになったので、早速アクセス解析を導入しました。前にもやったことあるのでし余裕でしょ...と思ったのですが、前にやったのは1年以上前だったのですっかり忘れてしまっていました。ということで導入手順を復習したので備忘録的にそのメモ書きとして残しておきます。今回も先人の方々の知恵をお借りしました。
今回導入したのがGoogleアナリティクスとGoogle Search Consoleです。www.google.co.jp
はてブにはデフォルトでアクセス解析がついているのですが、無料アカウントだと1ヶ月しか見られません。当然はてブでもできますし、私も導入しましたが、今回は自作のホームページの方に導入したのでそちら視点で書いていきます。
自前のホームページを作るときはXdomainさんを利用させていただいております。簡単なアカウント登録だけで無料で3GBを借りられてHTMLなら広告なし、広告ありならPHP,WordPressも使えるというお得なレンタルサーバーです。そしてなんと、1個(2個だったかもしれない)独自ドメインを取得できるというのが魅力的すぎます。いいのかこんなことできて。
興味を持った方は以下のサイトに導入手順が丁寧に説明されています。ちなみにファイルのアップロードは[FTPアカウント設定]-[WebFTP]-[ログイン]からファイルマネージャーが開けるのでWeb上からファイルのアップロードができます。FTPクライアントに比べると少々UIが使いづらいですが、特別FTPクライアントを用意する必要はないので少数のファイルを扱うだけなら十分便利です。rensrv.com
色々脱線しましたが、以下のサイトを参考にGoogleアナリティクスの設定をしていきます。wacul-ai.com
私の場合は、hugoで作っているので導入はとても簡単でした。www.tdtsh.com
はてブにつけたい方はこちらが参考になります。memobiz.net
続いてGoogle Search Consoleです。基本は以下のサイトに従って行うだけ。www.yuki-t.site
Xdomainを利用されている方は、URL登録時に表示されたhtmlファイルをダウンロードし、rootフォルダにアップロードするだけ。特別ファイルに書き込む内容はありません。
仕上げにGoogleアナリティクスとGoogle Search Consoleを連携させてしまいましょう。wacul-ai.com
応用編ですが、ついでにGoogleアナリティクスを使えばファイルのダウンロード数のカウントなんかもできるそうです。big-mac.jp
現状、大してアクセス数があるわけではありませんが、一通りやりたいことはできたのでここまでとします。色々設置するとweb解析屋さんになった気分になれます。
よければこちらの過去記事もどうぞ。Hugoでのホームページ作成について書いたものです。
PowerPointもGit管理できないかな... Pythonで書けばいいじゃない
あけましておめでとうございます。2018年初投稿です。
タイトル通り、PowerPointをテキスト形式で管理する方法を模索していたら、こんなの見つけました。Pythonでパワポが作れるライブラリがあるらしい。最近の機械学習、データ解析屋さんにはありがたいです。いつも思うが先人の方々はありがたいまとめをしてくださっています。
インストール環境がオンラインでできるなら。こちらの通り。qiita.com
Proxyとかなんらかしらの理由でオフラインでやりたい場合は、こちら。pypi.python.org
gzファイルをダウンロードしてきて
pip install python-pptx-0.6.7.tar.gz
でインストールできます。
その他使い方は下記参照で。普段pythonで解析しながらそのままシームレスに発表資料が作れる感じでGood!qiita.com
公式ドキュメント
Getting Started — python-pptx 0.6.7 documentation
https://media.readthedocs.org/pdf/python-pptx/latest/python-pptx.pdf
WordとExcelもいけるみたい。www.brain.rcast.u-tokyo.ac.jp