Google Apps Scriptを試してみた

qiita.com

LINEbotを作る記事に触発されて、Google Apps Scriptがどんなものか興味が湧いてきた。
何ができるかわからないけど、無料で試せるようなのでとりあえず動かしてみるか~

まずはgoogle Driveにアクセス

www.google.com

こんなページが開くので…



右上の「ドライブに移動」をクリック(googleにログインしていない場合はログイン)




左上の「+新規」をクリック




「その他」→「Google Apps Script」を選択




「無題のプロジェクト」をクリックして…




適当な名前を入力

プログラム欄に適当なコードを入力。今回はWelcomeメッセージを表示してみる。



実行ボタンの左側のフロッピーディスクのボタンを押してプロジェクトを保存後実行




承認を求められるので、「権限を確認」を押す。

googleアカウントの選択ウインドウが出てくるので、使用するアカウントを選択


ちょっと怖いメッセージが出てきたけど先に進んでいいのか。躊躇…
google先生に質問して次のページを教えてもらう。

best-cloud.jp

このページによると先に進んでも問題なさそうなので…




「詳細」をクリックしてから
「~(安全ではないページ)に移動」をクリック




「許可」をクリック。

おっ、動くぞ、動くぞ、動くぞ…




あれっ?
ここではmsgBoxは使えないらしい。
少し納得いかないけど、エラーメッセージに従って修正して再実行




とりあえず動きました!!
でも、デバッグウインドウじゃなくてメッセージボックス出したかったなぁ
もう少し調べて再挑戦してみる予定…


ではまた。


ブログのアクセス解析(3)

 久しぶりにgoogle先生で「海風研究所」を検索してみました。
 9/4記事「ブログのアクセス解析」では、トップ100にも入ってないという残念な結果だったのですが、今回は…



 なんと、初登場第一位です!!


 しばらくチェックしてなかったので、本当に初登場かはさておき。
何がトリガーになったのでしょうね~。前回と条件を比べてみると

前回 今回
確認日 21.09.04 21.09.15
サイト開設からの日数 25日 37日
投稿済エントリー数 12 20
google先生の検索順位 100位以下   1位  


 経過日数とエントリー数のどちらがトリガーになったのかは不明ですが、サイト開設からおおむね一か月くらいするとgoogle先生にも相手にしてもらえるようになるということですかね~
(検索キーワードの差異による影響大ですが)

 新たにサイトを立ち上げる際は、ひとまず一か月続けてみると、だんだん変化が見え始めるということが分かったことが一つの収穫でした。

 google先生のページに載せてもらえたのがうれしくて思わずエントリーを書いてしまいましたが、最終的には検索サイトで上位に入ること以上に、多くの人にアクセスしてもらえることが大切です。
 これからも良い記事を書けるように精進します。

ではまた。


【読書メモ】Unityの教科書(6)

私が読んだ書籍のポイントを備忘録としてメモ書き。
今回は「Unityの教科書」から。

Chapter 6 Physicsとアニメーション

Physics

  • PhysicsはUnityに標準で付属している物理演算。
  • オブジェクトを物理挙動に従って『簡単』に動かせるようにするもの。
    使用は必須ではない(自分で挙動を指定してもよい)
  • Physicsを使って物理挙動をさせるには次の2つのcomponentを
    InspectorのAdd componentでattachする
    • Rigidbody : 力の計算(重力、摩擦など)
    • Collider : 衝突処理
  • 重力の影響を受けなくするには、
    Rigidbody componentのBody Type をKinematicにする

Find method

  • ゲームシーンからオブジェクトを探す
    • オブジェクト名で検索
      • Find(オブジェクト名) : 1個だけ
    • タグ名で検索
      • FindWithTag(タグ名) : 1個だけ
      • FindGameObjectsWithTag(タグ名) : 複数マッチ
    • タイプ名で検索
      • FindObjectOfType(タイプ名) : 1個だけ
      • FindObjectsOfType(タイプ名) : 複数マッチ

オブジェクトを動かす

  • Physics使用時は座標を直接書き換えずに力を加える
    • AddForceメソッドを使用
    • 座標を直接書き換えると当たり判定に失敗することがある
  • Spriteを反転するには拡大率を負の値にする

オブジェクトを動かす(アニメーション)

  • スプライトアニメーションを実現する2種類の方法
  • Mecanimを使用する際の登場人物
    • Sprite
      • 1枚の画像(アイコン)
    • Animation Clip
      • 複数枚の画像(Sprite)をまとめたファイル
      • Sprite情報とタイムライン(再生速度、再生時間など)情報を持つ
    • Animator Controller
      • 複数のAnimation Clipをまとめたもの。どのClipを使用するかを選択
    • Animator Compornent
      • Animator Controllerを指定(セット)する
    • Object
      • Animator Compornentをattachする

オブジェクトを動かす(スクロール)

  • シーンをスクロールさせるにはカメラを移動させればよい。

当たり判定

  • 当たり判定 = 衝突検出 + 衝突応答
  • 当たり判定には2種類のモードがある(Is Triggerで選択)
    • Collision mode : 衝突検出 + 衝突応答
      • 双方のObjectにColliderとRigidbodyをattach
      • OnCollision~2Dなどが呼ばれる。~はEnter,Stay, Exit
    • Trigger mode : 衝突検出のみ
      • 双方のObjectにColliderをattach。Rigidbodyは一方のみattachで良い
      • OnTrigger~2Dなどが呼ばれる。~はEnter,Stay, Exit

シーンチェンジ

  • 事前準備
    • 必要なシーンを作成して保存
    • File→BuildSettingsでScene in Build欄に使用するシーンをDrag&Drop
  • スクリプトファイル側
    • using UnityEngine.SceneManagement;を追加しておく
    • SceneManager.LoadScene(シーン名)でシーンを遷移
    • 現在のシーンをLoadすればシーンを再起動できる

スマホ関連

  • 加速度センサーはInput.acceleration.x等で参照可。.xは軸指定

ノートPCのスリープ復帰時に外部モニタが点灯しない

 先月購入したAUSUのノートパソコンZephyrus M16、なかなか好調です。

 でも、ちょっとした悩みが…

 自宅ではノートパソコンをUSB-C経由で外部モニタ&キーボード・マウスに接続して、PC本体は閉じた状態でクラムシェルモードで使用しています。日々の作業が終わったら、シャットダウンではなく、Windows+Lで画面をロック。しばらくすると自動的にスリープに入ります。

 次に使うときは、外付けのキーボードを押してスリープから復活させるのですが、外部モニタが点灯しないのです。仕方がないので、ノートパソコンを少しだけ開けると外部モニタも復帰するのですが、あまりスマートな方法ではないですよね。

 google先生に解決策を聞いてみると…

 ふむふむ、USBのセレクティブサスペンドを無効にせよ、と。

pc-kaizen.com
 早速やってみると…



 私のパソコンには電源オプションの中に「USBのセレクティブサスペンドの設定」という項目自体がありませんでした。残念!!

 待てよ、なんか以前もおなじようなトラブルがあったよなぁ… と
 スタートメニューを右クリックしてデバイスマネージャーを開いて、ユニバーサルシリアルコントローラー(=USBコントローラ)の中をゴソゴソ探してみると



 USBルートハブが2つ、とりあえず最初の方を右クリックしてプロパティ画面を開き、タブを順番に覗いてみると



 「電源の管理」の中にそれらしき項目「電力の節約のために、コンピュータでこのデバイスの電源をオフにできるようにする」を発見。 チェックを外して「OK」を押下。
 二つ目のUSBルートハブも同様の手順でチェックを外して、と。

 これでスリープ復帰時に外部モニタが点灯するようになりました。
 めでたしめでたし。

 ではまた。

【読書メモ】Unityの教科書(5)

私が読んだ書籍のポイントを備忘録としてメモ書き。
今回は「Unityの教科書」から。

Chapter 5 Prefabと当たり判定

Generator script

  • 実行中にObjectを自動生成するにはGenerator scriptが必要

いろいろ

  • 画面内でObjectはレイヤーで重ね合わせ表示される。
    レイヤー番号が大きいほど手前に表示。0が最背面。
  • 当たり判定=衝突判定+衝突応答
  • Vector dirの長さ= dir.magnitude
  • キーボード入力は、Input.GetKeyDown(KeyCode.~)。押した瞬間だけtrue。
  • 自分自身(GameObject)の破棄はDestroy(GameObject)
  • Update()の呼び出し周期(前回からの経過時間)はTime.deltaTimeで取得可
  • Random.Range(a,b):a以上b未満のランダムな整数を返す

Prefab

  • Prefab:Objectを作成するためのテンプレート。クラスのような概念
    PrefabをGenerator scriptに渡してObjectを量産する
    1. 既存のObjectからPrefabを生成
      Hierarchy windowのObjectをAssets windowの背景にDrag&Drop
    2. Generator scriptを生成
      Assets window上で右クリック、新規C# scriptをcreate
    3. 空のObjectを生成して、Generator scriptをattach
    4. Generator script内でpublic属性でGameObjectを生成しておく
      これがInspector windowに表示されるので、そこにPrefabをDrag&Drop
  • Prefabを作成後、元のObjectは不要。Hierarchy window右クリックで削除

UI

  • アンカーポイント
    オブジェクト位置を指定する際の基準座標(原点)を指定。 画面サイズの変化に柔軟に対応可能。autoLayoutっぽい。
  • Image Type:Filled。オブジェクトの一部だけを表示。
    表示割合:Fill Amountで指定
    表示方法:Fill Methodで指定
     上下(Horizontal)、左右(Vertical)、扇形(Radial nn, nn:90,180,360)
  • Button:画面上にボタンを配置可能

【読書メモ】Unityの教科書(4)

私が読んだ書籍のポイントを備忘録としてメモ書き。
今回は「Unityの教科書」から。

Chapter 4 UIと監督オブジェクト

UIの設計

  • UIの追加は、Hierarchyウインドウで「+」→「UI」→「Text」のように行う。
  • UIを追加すると、CanvasとEventSystemも追加される。
  • UIの設計画面は通常のゲームの設計画面のサイズよりはるかに大きい
     → 実際の大きさはゲーム画面と対応している
  • Hierarchyウインドウでオブジェクトをダブルクリック
     → 画面上で適切なサイズになるように自動調整される。
  • UIをスクリプトで使用するには「using UnityEngine.UI;」を追加する必要あり。

監督オブジェクト

ゲームオブジェクト

  • GameObject.Find(オブジェクト名)でオブジェクトを探すことができる
     GameObject car; # 空のオブジェクトを生成
     car = GameObject.Find("car");  # 実体をアサイ
  • GemaObjectには様々なComponentをattachすることができる。
    Componentの例:
    • Rigidbody component:オブジェクトに物理挙動をさせる
    • Audio Source component:音を鳴らす
    • Script component:スクリプトによって独自機能を追加
    • Transform component:オブジェクトの座標、回転などの機能を追加
  • コンポーネントにアクセスするには、GetComponentメソッドを使用する。
     例:GetComponent<AudioSource>()、GetComponent<Text>()など。
  • Transformは簡易的にGetComponent<Transform>()をtransformと省略可
     例:car.transform.posision.x

音の鳴らし方

  1. Assetsに音源ファイル(.mp3など)をDrag&Dropして入れておく
  2. 音を鳴らしたいオブジェクトを選択してInsprctorでAdd componentを行う
     → Audio Source componentをattach
  3. InspectorでAudio Source componentのAudio ClipにAssetsから音源をDrag&Drop
     Play on Awakeのチェックを外さないと起動時にも鳴ってしまうので注意。
  4. 音を鳴らしたいオブジェクトのコントローラスクリプトにPlayメソッドを追加

iPhoneで実行する方法(復習)

  • Build Setting画面のplayer settingでCompanyNameを設定(忘れずに!!)
  • Scene to BuildにBuild対象シーンをDrag&Frop。SampleSceneはチェックを外す。
  • Buildを押下。保存先フォルダ名を指定。
  • 保存先フォルダ名の中の.xcodeprojをダブルクリックしてXcodeを起動
  • signing画面を設定、iPhone接続、Playを押下

ProDesignToolsってどんな会社なんだろう

 最近、Windowsパソコンを新調したので、昔購入したAdobeLightroom 6(買い切り版)をインストールしようとしたところ、最新版であるrev 6.14へのアップデータがAdobeのサイトに置かれていないことがわかりました。困った~

 調べてみると2019年以降Adobeは自社製品の古いバージョンのサポートを止めており(下記リンク参照)、Lightroomのアップデータの配布も止めてしまったようです。

internet.watch.impress.co.jp

【注意】
 以下の話は、記載先のサイトの安全性を保障するものではありません。
 最終的にアクセスする場合は自己責任でお願いします。


話は戻って…
Adobeのサイトにアップデータが無いなら何か他に方法が無いか調べてみました。
するとProDesignToolsという会社のサイトが浮上してきました。

prodesigntools.com

このページにAdobeの旧製品一式がアーカイブされているようです。
当然、「このサイトは本当に安全なの?」という疑問が浮かんできます。
うまい話には注意が必要ですよね~

そこでProDesignToolsという会社についてもう少し調べてみました。
まずは日本語のブログ記事から。

nanasai.hatenablog.jp

 このブログによると、問題が発生した際にAdobeのテクニカルサポートにProDesignToolsからソフトをダウンロードするように勧められているようです。

 さらに、Adobe公式のコミュニティページ(英語)のやりとりも読んでみました。

community.adobe.com
このページのやりとりを要約すると。

質問者:
 ProDesignTools.comは正当な「アドビシステムズの関連会社」なのでしょうか?

Adobe EmployeeのJeffさんの回答:
 彼らは私たちのサーバーを利用しています。

ProDesignTools(Adobe Community Professional)からの回答:
 私たちは2006年から現在に至るまでAdobeの公式パートナーです。 Jeffが指摘するように、非常に安全です。


 つまり、ProDesignToolsはAdobeの公式パートナーであり、彼らのWebページ上のアーカイブの実体はAdobeのサーバ内にあるってことですかね。私が推測するに…

Adobeとしては訴訟等の関係で自社サイトに古いソフトを残しておけないけど、それでは昔からのユーザーが困ってしまうので、おおっぴらにはしないけどアクセスする方法は残しておこう』

というAdobeさんのありがたい配慮のような気がしてきました。

 以上、当該サイトの安全性について私が断言することは避けますが、サイトの素性を調査した結果、個人的にはかなり安心できました。

ではまた。