主なコンテンツ

〜主なコンテンツ〜

1. Unityで製作したゲームと製作Tips
  1. 三月精チャレンジ(東方Project二次創作)
    1. 作り方
  2. 英語学習2D(オリジナルスマホアプリ)
2. UE4
3. ゲームアプリ見学
4. Bitbucket & SourceTreeでの一連の流れ
  1. 前半
  2. 後半
5. Tips
  1. UnityのTips
  5. SQL文のTips
  6. Final IK
  7. GearVR+Unity

2017年9月24日日曜日

google spreadsheet の変更をslackに投稿する(with GAS + OAuth token)

概要

目的は表題の通り。スプレッドシートが更新された時だけ処理したいので、Google App Scriot (GAS) を使う。

ここに行き着くまでの経緯

  1. Hubotを使おう→GASからアクセスできぬぇ
  2. SlackのWeb Hookを使おう→チャンネル単位でintegration発行するのはちょっと...
  3. OAuth tokenを使おう→イマココ

OAuth tokenの取得

レガシートークンと、現在の推奨版のトークンがある。今回は後者を使用する。取得方法はこちらを参照のこと。

GASからトークンにpostして、slackに投稿する方法はこちら。チャンネルを指定する際は、チャンネル名の前に#を意味する%23をつける(参考)。

ダイレクトメッセージの送り方

  1. im.listのテスターにて、tokenを生成するを押すとレガシートークンを発行できる。この時、発行されるのはログインしている自身のユーザーアカウントのトークン(っぽい)。
  2. 改めて、取得したトークンをim.listのテスターにて指定してテストを実行するとidが取得できる。
  3. このidを、postMassageのchannelに指定する。@マークなどは不要。

参考


  • http://qiita.com/ykhirao/items/3b19ee6a1458cfb4ba21
  • http://qiita.com/KanaSakaguchi/items/f0b1bb1cf73f0ec5ec71
  • https://www.obkb.com/dcljr/charstxt.html





2017年5月22日月曜日

Perlの学習

  • 過去のver.を使いたい→Strawberry Perl参考
  • perl派生言語の歴史(参考
  • シェルスクリプト
    • シェルスクリプトとは(参考
    • windowsでシェルスクリプト→busybox(参考1参考2
      • cdコマンドの絶対パス指定が上手くいかなかった。結局、相対パスでひとつずつディレクトリを下げていった。pwdコマンドで絶対パスを表示してコピーしたものは機能する。自分の指定した絶対パスと見比べても違いが分からなかった。

2017年5月15日月曜日

UE4のためのC++Tips


  • ログの表示の仕方
    • 「フォーマット文字列」と言う書式に従う
    • 浮動小数
      • UE_LOG(LogClass, Log, TEXT("speed: %.2f"), speed);

2017年4月21日金曜日

キャラクターの差し替え(その1)

「Blender で作ったアニメーションを Unreal Engine 4 で利用する(参考)」を参考に、キャラクターを差し替えてみた。結論から先に言うと上手くいかない

  • インポートでFBXを開く
  • 36項でSK_Mannequinを開くとあるが、UE4_Mannequin_Skeletonの間違い
  • 同様に38項ではGrayChan_Skeletonを開く
  • 39項における具体的な操作が不明
    • アニメーションタブ選択時は待機モーションで立った状態だが、リターゲットマネージャーを操作するためにスケルトンタブに戻ると、Tボーンの状態で下向きに倒れる
  • 44項のAnimClassは選択して初めて末尾に"_C"がつく(検索時には_Cは無い)
  • 45項のMaxWalkingSpeedは前項同様、ブループリントの設定にある
  • MeshをGrayChanに差し替えるとクリーチャーになっている
  • 46項の操作は不明(Blenderで歩行モーションを作成していないといけない?)
  • 48項のマテリアルは完成プロジェクトのGrayChan(スケルタルメッシュ)を参考に割り当てる
    • ただし、移行を指示されたマテリアルと実際に使われているマテリアルが違う
    • 完成プロジェクトも最初はテクスチャが反映されず全て灰色
    • マテリアルを開いて色が読み込まれたら保存することで、マテリアルの更新が始まった印象を受けたが、これが必要動作なのかは不明
    • スキンのマテリアルが反映されず、肌の位置に服のマテリアルが適用されているように見える
  • スライドのハンズオンではver.0.5.0を使ったとあるが、FBX自体が違う印象を受ける

2017年4月19日水曜日

UE4プログラミング学習Battery Collector編(その2)

#第11~21回

  • BlueprintImplementableEventは、cppに関数の実態を定義しなくても良い模様
    • イベントグラフに配置できるようになる
  • GetMaterialとGetMaterialsは別物
  • ~GameModeのTickが呼ばれない
    • ProjectSettings、WorldSettings共にGameModeの設定は合っている模様
    • PrimaryActorTick.bCanEverTick = true; が要る模様参考
      • GameModeもActorを継承しているので、PrimaryActorTick.bCanEverTickが使える
      • 動画の~GameModeの親クラスはAGameModeだが、今はGameModeBaseになっている
  • ゲームタイトルのヘッダーの#includeをEnginMinimal.h→Engin.hに変える
  • BatteryCollectorGameMode.hでCurrentWidgetにUPROPERTY()を使うが、外部から操作しないのでキーワードの指定は不要とのこと
  • UI配置時のAlignmentがUnityのpivotに当たるもの

    • 純粋キャストに変換する
      • 成功するのが確かなキャストなら純粋キャストの方が見やすい(参考

    • HUDを作ったらGameModeに登録することで表示する
    • ~GameMode.hにenumを足すが、コンパイルが通らない
      • これもAnswerhubで質問が上がっており、enumのクラス名の横に:unit8を付ける(参考
    • UMGのテキストはSizeToContentにチェックを入れると自動調整となる(参考
      • 動画だとさらっとやるので見落としがち
    • ゲームオーバー時にプレイヤーの入力を遮断する方法として、SetCinematicModeを使っている。これについてあまり情報がないが、HUDなども非表示にできる。
      • GameModeと紐づいている?
    • ゲームオーバー時にキャラクターが崩れ落ちる(英語ではラグドールになると言う)のは、BatteryCollectorGameMode.cppに追加したmycharacter->getmesh()->setsimulatephysics(true)によるもの。
    // ragdoll the character
       ACharacter* MyCharacter = UGameplayStatics::GetPlayerCharacter(this, 0);
       if (MyCharacter)
       {
        MyCharacter->GetMesh()->SetSimulatePhysics(true);
        MyCharacter->GetMovementComponent()->MovementState.bCanJump = false;
       }
    • ラグドールになった際、床をすり抜けないようにするにはBPのMeshのCollisionを次のように変更する
    • skeletal mesh(骨格メッシュ)には物理アセットを割り当てることができ、物理シミュレーション時にはこの設定が使用される。今使用しているキャラクターは物理アセットを持っていないので、それを持たせる。
    • SK_Mannequinに物理アセットを新規作成する際、「作成」と「作成と割り当て」の2種類が表示される。今回は「作成と割り当て」を選ぶと良い。

      2017年4月18日火曜日

      UE4プログラミング学習Battery Collector編(その1)

      #第1~10回

      • 新規プロジェクトを作る際に、BPとC++を間違えると後で地獄を見る
        • Comntentの中にThirdPersonCPPがあるか確認
        • C++クラス内にBatteryCollectorCharactoerがあるか確認
          • プロジェクト作成直後は表示されないこともある。エディターを再起動すると直るので、表示されてなければ手間でも再起動して確認した方が良い
      • 途中で素材を取ってくるために使うサンプルは、ランチャーのラーニングにある「機能別サンプル(Contents Example)」というもの
      • BlueprintPureは2度呼ばれる、BlueprintCallableは1度だけ(...と言っているような)。その他の違いは公式などを参照。(参考
        • BlueprintPureは実行ピンを持たない。
      • Pickup_BPをダブルクリックで設定を開ける。
      • Battery_BPを作る際に、コンパイルしていなかったらしく意図しない挙動のBPが出来てしまいハマった
        • このBPを削除しようとした所、他から参照されているから強制削除するかどうか聞かれた。UE4にはリファレンスビューワーという物があり、これで確認できる(参考)。使ってみた所、バッテリーのmeshのことのようだった。これをクリアし、リファレンスビューワーにも表示されなくなったが、それでも参照されていると出た。UE4を再起動した所、解決した。
      • SpawnActorがunityで言う、Instantiateに近い感じ
      • チュートリアルのWEBからソースをDLできるが、ASpawnVolume::BeginPlay()の内容が第8回の内容と異なる
        • 第8回のようにスポーンさせたい場合は、動画の通りBeginPlayに2行書き足す必要がある
      • GetWorldTimerManager().SetTimerは、初級のチュートリアルでやった定期的に呼び出されるイベント(参考)。最後の引数をfalseにするとループしなくなる。
      • 今までUPROPERTYで指定していたCategoryは下図のように使われる
      • サイズを引き伸ばしたりは下図のトグルを使う

      • BatteryCollectorCharacter.hとcppがプロジェクト開始時に用意されているが、何かの拍子に消えてしまうようで、その修正を行う9回目で詰む。新規プロジェクト作成の際に、C++ではなくBPの3rdParsonを選んだものと思われる
        • 結局作り直した
      • 超重要!】AttachTo関数は現在非推奨であり、AttachToComponentを使うように警告が出る(コンパイルエラーになる)。引数はとりあえず次のようにしておけばいい。
         CollectionSphere->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform);
      

      2017年4月14日金曜日

      UE4プログラミング学習編(その4)

      ■UMG を使ったユーザー インターフェース

      • UMGはUnreal Motion Graphicsの略らしい
      • ~.Build.cs書き換え後のソースが提示されているが、現在の内容と若干違う模様。この先も度々違いが見られた。言語を英語にしても内容の古いまま。
        • ひとまず完成後のソースに合わせた
        • 最後までやってみたが画面にUIは表示されなかった(原因不明)。この章はやらなくていいかもしれない。夏季講義DAY2では作成したGameModeをブループリントエディタで開き、BeginPlayでAddViewportすることで表示していた(講義動画の45分あたり)。
          • コンパイルしたり、色々試しているうちに何故か表示されるようになった
      • Ueser Widgetを作成しろとあるが、これが何か不明
        • Widget ブループリントのことかと思ったが、どうやら違う模様。合っていた。次のステップで解説されるので今は気にしなくて大丈夫(参考)。
      • 同様に~GameMode.hも見当たらない
        • ~GameModeBase.hならあるので、該当内容を追記
      
      // Fill out your copyright notice in the Description page of Project Settings.
      #pragma once
      
      #include "Blueprint/UserWidget.h"
      #include "GameFramework/GameModeBase.h"
      #include "QuickStartGameModeBase.generated.h"
      /**
       * 
       */
      UCLASS()
      class QUICKSTART_API AQuickStartGameModeBase : public AGameModeBase
      {
       GENERATED_BODY()
       
      public:
       /** ゲーム開始時に呼び出されます */
       virtual void BeginPlay() override;
      
       /** 現在のメニューウィジェットを取り除き、指定されたクラスがあればそこから新しいものを作成します */
       UFUNCTION(BlueprintCallable, Category = "UMG Game")
        void ChangeMenuWidget(TSubclassOf NewWidgetClass);
      
      protected:
       /** ゲーム開始時にメニューとして使用するウィジェット クラスです */
       UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UMG Game")
        TSubclassOf StartingWidgetClass;
      
       /** メニューとして使用するウィジェット インスタンスです */
       UPROPERTY()
        UUserWidget* CurrentWidget;
      };
      

      • ~GameModeBase.cppも同様
        • プロジェクト名を独自のものにした場合は、丸写しの際にクラス名に注意

      #Menu Widget ブループリントの作成

      • グラフにbuttonとtextを追加しろとあるが、textは使わない。代わりにbuttonを2つ作る。
      • ブループリントデザイナ画面右上の「デザイナー>グラフ」ボタンで、ボタンを配置する画面とイベントの内容を編集する画面を切り替えられる
      • チュートリアルの解説はかなり端折られてるので、説明画像を参考にイベントを作る
      • GameModeは現在GameModeBaseになっていることに注意

      #ゲームモードの設定

      • 最初は何故か下図のようにキャンセルしか表示されなかったが、キーボードの上下でメニュー内を移動したところ「選択」が表示された

      #セカンド メニューを構築する

      • NewTextEntryだけ右クリックから検索で配置
        • GetとSetがあるのでGetを使う
      • 説明文を読めば察しはつくが、丸い点だけノードはToString

      • 新規ウィジェットをNoneにするとメニュー全体を非アクティブにできる(このときの表示がselect class(クラスを選択))

      Bloggerにhighlight.jsを導入

      参考元はこちら。Blogger側に変更があって少し戸惑った。
      • cdnというのは、クラウド版のライブラリ提供サービスらしい。cdnjsはそのjavascript版。プラグインをDLしなくてもタグを書くだけでいいらしい。
      • 2017年4月現在、Bloggerに「テンプレート」の項目は無い。「テーマ」のHTMLの編集からheadに書き足せる。


      2017年4月13日木曜日

      UE4プログラミング学習編(その3)

      ■プレイヤー制御のカメラ(参考

      • EAutoReceiveInputでは最大8人までのプレーヤーの入力を検出できる模様
      • 「プロジェクト設定」で入力の名称をチュートリアルと違うものにしつつも、スクリプト側の入力名称を変えていなかったため動作せず無駄に嵌った
      • FVector2DクラスにはIsZeroという関数がある
      • 移動はSetActorLocationにFVectorを渡す形で行われている。この関数はActorで定義されている。

      ①MyPawnの場合
      
      if (!CurrentVelocity.IsZero())
        {
         FVector NewLocation = GetActorLocation() + (CurrentVelocity * DeltaTime);
         SetActorLocation(NewLocation);
        }
       
      
      →現在座標にそのままベクトルを足しているので、ワールド空間での移動となる

      ②PawnWithCameraの場合
      
      if (!MovementInput.IsZero())
        {
         //Scale our movement input axis values by 100 units per second (移動入力軸の値を 1 秒あたり 100 単位でスケーリング)
         MovementInput = MovementInput.SafeNormal() * 100.0f;
         FVector NewLocation = GetActorLocation();
         NewLocation += GetActorForwardVector() * MovementInput.X * DeltaTime;
         NewLocation += GetActorRightVector() * MovementInput.Y * DeltaTime;
         SetActorLocation(NewLocation);
        }
       
      
      →現在座標に現在向いている向きに掛け算したベクトルを足しているので、ローカル空間での移動となる

      • 「CollidingPawnMovementComponent.h」ファイルのクラス定義で TickComponent をオーバーライドする(CollidingPawn.hと間違えて色々嵌った)
      • 重要】リストの最後の #include は、generated.hにしないとコンパイルエラーとなる。詳細不明
      • 重要】クラス名の付け間違いを発端にコンパイルエラー地獄となった
        • UE4エディター上ではC++ファイルの削除やリネームが容易でない
        • ファイル名とクラス名を修正して何とか解決した
        • 尚、クラス名を付け間違えたのは日本語チュートリアルには「CollidingPawnMovementコンポーネント」と記載されており、無意識のうちに英字部分だけコピペしていたため
      • 今回のスクリプトで作られた親子関係は次のようになった

        • CreateDefaultSubobjectで型と名前を決め、SetupAttachmentで親子関係を作る
        • 「RootComponent」と名付けたUSphereComponentがUnityでいうShpereColliderに当たる模様(参考1参考2
        • 「VisualRepresentation」はUStaticMeshComponentで、外観担当。指定パス先のメッシュをセットしている。半径50で生成されるらしく、親の半径に合わせるためにスケールと中心点を調整している。
        • 「MovementParticles」はUParticleSystemComponentで、炎のパーティクルアセットをセットしている
          • このON/OFFについては後述
        • 「CameraAttachmentArm」はUE4で度々出てくるUSpringArmComponent。
        • 「ActualCamera」は普通のカメラ。これまで同様にCameraAttachmentArmにアタッチするが、第二引数が何なのか不明。チュートリアル曰く「Spring Arm には、ベース以外に親子付けが出来る特別な内蔵ソケットがあります」とのこと(参考)。

        パーティクルシステムのON/OFF

        //入力イベントの登録
        void ACollidingPawn::SetupPlayerInputComponent(class UInputComponent* InputComponent)
        {
         Super::SetupPlayerInputComponent(InputComponent);
        
         InputComponent->BindAction("ParticleToggle", IE_Pressed, this, &ACollidingPawn::ParticleToggle);
        
         ...
        }
        
        //実行部
        void ACollidingPawn::ParticleToggle()
        {
         if (OurParticleSystem && OurParticleSystem->Template)
         {
          OurParticleSystem->ToggleActive();
         }
        } 
        
        • 条件分は調査中
        • ToggleActiveはアクティブの切り替え(参考

        UE4プログラミング学習編(その2)

        ■プレイヤー入力と Pawn クラス(参考

        • Pawn(ポーン)はプレイヤーもしくはAIによって制御されるアクターのこと
        • 「クイックスタート」ではAddComponentでConeを選択したが、今回はOurVisibleComponent (Inherited)からStatic MeshからShape_Cylinderを指定した

        ■ゲーム制御のカメラ(参考

        • プレースメントブラウザのModesタブとは、基本レイアウトでの左上のエリアのこと(参考

        ■途中で気になったこと

        • カメラを配置した際、「LIGHTING NEED TO REBUILD」と出た。この場合は、ビルドのボタンを押してビルドしなおせば良いとのこと。(参考
        • Unityで言うシーンが「レベル」と呼ばれるものに当たる模様。使い方はレベルデザイナーのチュートリアルが良さそうだった(参考)。
          • 最初のテーブルなどが予め配置されたレベルはどこにも保存されていないらしく、新しいレベル作成後に戻ってくることができなかった。→プロジェクトを再度開いたら最初のレベルに戻ってきた。

        UE4プログラミング学習編(その1)

        ■変数、タイマー、イベント(参考

        • 初期化時のPrimaryActorTick.bCanEverTickは、UnityでいうUpdateを行うか否かを決めている。不要であれば適宜falseにすることでパフォーマンスを改善できる。
        • RootComponentはUnityでいうtransform(参考
        • GetWorldTimerManager()は、ゲームプレイタイマーにアクセスするためのもの
          • ハンドルはtimerのシャットダウン時に必要

        • FMath::Maxはおそらく指定要素の中で一番大きな値を返す関数
        • UPROPARTYでコメントをeditor上に表示することもできるが、日本語は文字化けする(参考
        • 生成したBlueprintはコンテンツ直下にある
        • 重要】UFUNCTIONタグにBlueprintNativeEventを指定した場合、対象関数の末尾に_Implementationを付けた関数が親関数として呼ばれる(参考1参考2

        UE4の学習の道程(みちのり)

        1. 必要スペック(参考
        2. 基本操作
          1. ビューポートの制御
          2. 再生とシミュレーション
          3. プロジェクトの共有(参考1
          4. C++ vs BP(参考
          5. 日本語入力だとエディタがだんだん重くなる(参考
        3. 夏季特別基礎講義(DAY1, DAY2
        4. ラーニング(公式学び部屋
          1. ドキュメント
            1. C++プログラミングのチュートリアル
              1. 学習編1
              2. 学習編2
              3. 学習編3
              4. 学習編4
              5. FPS(参考
            2. ブループリントにおけるキャラクター移動の設定方法
            3. Aim Offset を作成する
            4. VideoTutorials
              1. C++ Battry Collector
                1. その1
                2. その2
              2. Blueprint 3rd Person Game(学び部屋のは'14版。現行の'15版には日本語字幕がある)
                1. モンタージュ関連
                  1. 16 - Intro to Animation Montage
                  2. 17 - Skeleton Retargeting & Montage Setup
                  3. 18 - Animation BP Punching Setup
                  4. 19 - Playing Our Animation Montage
                  5. 20 - Using Slot Nodes & Branch Points
              3. Blueprint Twin Stick Shooter
            5. LiveTutorials
          2. キャラクターの外観やアニメーション
            1. キャラクターの差し替え1
            2. 異なるスケルトンのリターゲット
              1. 公式の関連マニュアル(参考
                1. リターゲットされたアニメーションを使用する
                2. 異なるスケルトンのリターゲット
                3. 同じスケルトンのリターゲット
            3. ブレンドスペース(参考1参考2参考3
            4. アニメーションBP
              1. BlueprintのRotatorノードまとめ
            5. 物理で揺れ物
              1. ニコニ立体さんの髪の毛を動かす
          3. UMG
            1. UMGアニメーション(参考
            2. テキストの縁取り(参考
            3. マテリアルによるカウンタ(参考1参考2黒抜きtexcood
          4. ポーズ機能の追加(参考1参考2
            1. ポーズ中のSoundの再生(参考1参考2
          5. サンプルゲーム(ランチャーのラーニングにある)
            1. Shooter Game
              1. 公式
              2. 遊び方(参考1参考2
              3. 海外wiki
            1. マーケットプイレイス
              1. EpicGames
            2. 学習予定
              1. エンドレスランナー(参考
              2. ジャパニメーションキャラクターのシェーダー(参考
              3. UE4のテンプレートに自分で作ったキャラを入れて動かしたい(参考
              4. ZBとBlenderでUE4用のキャラを作る(参考:モデルは完成した状態からスタート)
              5. UGMデザイナーのクイックスタート(参考
              6. 有志によるAnimationTutorial(参考
              7. ゲームエンジンの作り方が書かれた本の紹介(参考
              8. https://www.youtube.com/watch?v=CgPlBjFeu4Y
              9. https://youtu.be/4jZT9ibp_ko
              10. エピック公認学習コース(参考

              2017年4月11日火曜日

              Meshの変形(その2)

              前回

              多角形を表示するのに少し嵌ってしまった。trianglesで指定する各三角形の頂点はverticlesのインデックスで良さそう。ただし、この各三角形の頂点は時計回りである必要がある模様。

              試しにtrianglesの3つめの三角形の頂点を時計回りにしたものと、反時計回りにしたもので比較してみた結果は下記のとおり。

              ■時計回り




              ■反時計回り



              反時計回りの場合は、法線が裏返っているということなのだと思う。

              2017年4月10日月曜日

              Meshの変形

              下記を参考に、変形できるMeshについて試してみた
              • Unityで動的にメッシュを生成するだいたい最小のコード(サイト
              • 2Dメッシュでレーダーチャートを作図する (サイト

              ■ソース


              Unityにてjsonでセーブ&ロードしてみる(Json Utillity)

              下記2サイトを参考にサンプルを作ってみた。
              • JsonUtilityを使ったデータ保存(サイト
              • JsonUtility をつかって Unity で JSON を取り扱う方法(サイト

              ソース


              実行結果

              尚、unityのエディタ上にファイルが表示されるのには少し時間がかかった。

              2017年3月28日火曜日

              Unityのパフォーマンス改善


              2016.12のUnity道場で色々話があった模様(参考
              • 階層の深いヒエラルキーを動かすと負荷が高くなる。5.4安定板と5.6β版で改善

              2017年3月15日水曜日

              SVN Tips


              • 途中の階層から共有フォルダを作った場合
                • Repository-Browserで閲覧可能
              • タグを切る
                • 一時提出など、特定のリヴィジョンに戻れるようにしたいときに使う
                • 右クリックをしてSVNのコマンド内にあるBranch/Tagから可能
                • 途中の階層から共有フォルダを作った場合、アクセスできない箇所からのタグを作ることは不可能。上の階層からCheck-outする必要あり。

              2017年3月4日土曜日

              blender勉強会(スカルプト編)

              主催者資料はこちら

              • なぜかShift+中央クリックなどが機能しなくなった
                • 選択が悪かったらしい

              • スカルプトのブラシには強さ(Shift + F)の他に半径(F)というものがある。半径を大きくすれば広く引っ張り出したりできる。

              • ブラシの効果で頂点数を変えたい場合は、Dyntopoを有効にする。このときディテールの細かさは、モデルが画面を占める比率に比例する。これを固定値にしたい場合は、「固定細部サイズ」を選して「細部のサイズ」を調整する。スポイトアイコンを使うと、その箇所の頂点密度が指定される。さらに「細部の塗りつぶし」ボタンを押すと、「細部のサイズ」がモデル全体に反映される。

              • 「スキン」を使って概ねの形を先に作ると良い。このとき頂点が密集している箇所はメッシュがおかしくなる。このような頂点を選択して「ルーズとしてマーク」を押すと、これが解消される。形状を作る前にやっておくこと。

              • ブラシは複製してカスタマイズ可能。Scrape/Peaksをカスタマイズして平面を作るブラシ(平面を作るブラシ)ことが可能とのこと。Save Startup Fileで設定を保存すれば、次回以降も使用可能(なお、ブラシ名の横のFが有効になっていないと消えるとのこと)。

              2017年2月25日土曜日

              Mac & iPhoneのTips


              • ストレージを確保したい

                • iPhotoが1.7GB使っているが、これは写真に統合された模様。削除して大丈夫そう。

              • ストレージがおかしい時の対処法

              • iCloudと同期しなくなった

              Photoshop CC UI講習会 忘備録


              *ショートカットキーはwindowsならctrl、macならcommandのことを指すとする
              • イメージ→カンバスサイズで解像度を確認できる
                • 最初、3000pxにしたつもりが3000mmになっていて原因が分からず
              • レイヤーやその効果の削除や複製は、レイヤーウィンドウのレイヤーを摘んで、ウィンドウ下のアイコンにドラッグする(基本的には右クリックより、こっちの方が使いやすくできている印象)
                • スマートオブジェクトにすると、それを配置したり変更を共有できる(Untiyのプレハブのようなもの)
                  • レイヤー右クリックで「スマートオブジェクトに変更」を選ぶ。レイヤーのアイコンの右下にそれっぽいマークが表示される。
                  • 開くときはレイヤーのアイコンをダブルクリック。共通の変更はこちらで行う。変更は保存しないと反映されない。
                • 変形は変形させたいレイヤーを選んでから、ショートカットキー + T。これにより範囲選択された状態になるので、ショートカットキーを押しながら4隅の黒点をクリックすると摘める。Enterキーで確定。
                • カスタムシェイプツールには色々なマークが用意されている。ただし初めからフルセット表示されているわけではないので、
                • ファイル>生成>画像アセットにチェックを入れると、レイヤーの画像が自動でファイルとして出力されるようになる。出力されるのはレイヤー名に拡張子のあるもののみ。カンマで複数出力することもできる。jpgは末尾に圧縮率を1~10まで指定できる。なお、画像をまだ保存していない場合はデスクトップに保存される。
                 → 
                • 星型の図形を描きたい場合は多角形ツールを選んだのち、設定アイコンの星型にチェックを入れる。

                • ベベルとエンボスを使うことで立体感を出すことができる。
                  • 効果は境界線の効果にも乗る。影響を与えたくない場合は、境界線の効果はその上のレイヤーとして切り離しておく。
                  • 効果が弱いと思った時には陰影の不透明度や角度を変える。
                • 図形の色を変えたい場合は、レイヤーサムネをタブルクリックしてカラーピッカーで変更する。

                • カラーピッカーはベタ塗りをしたい時であり、グラデーションをつけたい場合はグラデーションオーバーレイのグラデーションで着色作業をする。(カラーピッカーのベタ塗りに効果をかける使い方はしない模様)

                • 窪んだような模様の描きかた(シェイプツールでの例)
                  1. 対象を複製し、ショートカットキー + T で縮小する
                1. 複製元の効果を破棄する。破棄の仕方は効果を摘んでゴミ箱にD&D。
                2. シェイプツールを選んでから、塗りをなし&線を太くする
                 
                1. 線だけにしたレイヤーをモールドを描きたい画像の上に置く
                2. 線だけのレイヤーの塗りを0%にする
                1. ベベルとエンボスにて、ベベルを内側にかける

                2017年1月19日木曜日

                Time.fixedDeltaTimeとTime.deltaTimeについて

                FixedUpdate内で以下を呼んだ場合

                • Time.deltaTime→適切な値(Time.fixedDeltaTime)を返す
                • Time.fixedDeltaTime→固定フレーム秒を返す

                Update内で以下を呼んだ場合

                • Time.deltaTime→適切な値(可変フレーム秒)を返す
                • Time.fixedDeltaTime→固定フレーム秒を返す(Updateが呼ばれるまでにかかった時間とは無関係)

                NavMeshAgentを使っているときのジャンプ

                コンポーネントをオフにする(参考)。
                あまりにも記事が無いので、ジャンプが必要となるゲームには使わないのが暗黙のルールなのかも。

                2017年1月18日水曜日

                Unityでの接地判定

                足元にコライダーを置こうかと思ったが、今は形状付きのRaycastを飛ばすほうが主流のよう。(参考:記事の最後にテラシュールさんのわかりやすい記事も紹介している)

                SVNのアイコンが表示されなくなる問題

                Windows上で表示できるアイコンが11種類に制限されているため。

                表示するアイコンの整理方法(参考
                レジストリエディタの開き方(参考