ã¯ããã«
ç§äºã§æç¸®ã§ãããå æ¥ãã³ããç¦ã§ 2 å¹´åã»ã©å»¶æãã¦ããçµå©å¼ããã¾ãããããã§ã®ãããã£ã¼ã«ã ã¼ãã¼å¶ä½ã Unity ã§ãã£ã¦ã¿ã¾ããã®ã§ãæ¬è¨äºã§ã¯ãã®ã話ããããã¨æãã¾ãã
éå»ã«å人ã®çµå©å¼ã®ã ã¼ãã¼å¶ä½ãä»»ãããæã¯ After Effects ã Premiere ã§ä½ã£ã¦ããã®ã§ãããããããæ¬ 1 åèªãã ç¨åº¦ãªã®ã§ãèªåã®è½åçã«ã¯ã¹ã©ã¤ãã·ã§ã¼çã«ç»åãæåãé ç½®ããç¨åº¦ãéçã§ãããèªåãã¡ã®ãã®ã¯ã¹ãã©ãã¥ã¼ã³é¢¨ã®ã ã¼ãã¼ã«ããããªãã¨æããããå°ãè²ã ããããã & åå¼·ã«ããªãããã¨æã£ã¦ Unity ã§ãã£ã¦ã¿ããã¨ã«ããæ¬¡ç¬¬ã§ãããã©ã¤ãã·ã¼ã®é¢ä¿ã§ã ã¼ãã¼ã®å ±æã¯ã§ããªãã®ã§ãã...ãé¨åé¨åãç°¡åã«ãç´¹ä»ãããã¨æãã¾ãã
æ¦è¦
åºæ¬æ¹éã¯æ¬¡ã®ãããªæãã§ãã
- å ¨ä½ã¯ Timeline ã使ã£ã¦ä½æ
- åºå㯠Unity Recorder ã使ã£ã¦ mp4 å
- å表示ãªãã¸ã§ã¯ãã®è¡¨ç¾ã¯ã·ã§ã¼ãã°ã©ãã使ã£ã¦ä½æï¼URPï¼
- åçå ¥ãæ¿ãã»ã³ã¡ã³ãå ¥ãæ¿ãã¯ç´åã¾ã§åºæ¥ãããã«ã¨ãã£ã¿æ¡å¼µããèªåçæ
ãªã¼ããã³ã°é¨å
ãããªæãã®ã¹ãã©ãã¥ã¼ã³ 2 風ã®ãªã¼ããã³ã°ãä½ã£ã¦ã¿ã¾ããã
ããããã«ã¯ã«ã¯ã¨èªåãã®åçãåãã¦æ¨æ¶ããã·ã¼ã³ãå ¥ãã®ã§ãããããã¯å²æãã¾ããã·ãã·ã模æ§ã¯ãã¯ã¹ãã£ãªãã§ã·ã§ã¼ãã°ã©ãã§ä½ã£ã¦ã¿ã¾ãããé»ãç¸ã ã¯ã¯ã¼ã«ã座æ¨ç³»ã§ XY ãåºæºã«ãã¦ä½ã£ã¦ãã¾ããã¯ã¼ã«ã座æ¨ç³»ã«ãã¦ããã¨ãããé©ç¨ãããªãã¸ã§ã¯ãã¯ä¸ä½åããã¿ãããªæãã«ãªãã®ã§ããã¹ã¯ã£ã½ãä½¿ãæ¹ãã§ãã¾ãï¼æ»´ãã®ãªãã¸ã§ã¯ãé¨åã«ãé©ç¨ãã¦ã¾ãï¼ã
UV ã® X * Y ããã¦æãã®ã°ã©ãã¼ã·ã§ã³ãä½ããMultiply ãã¦æ°å¤ã大ããããã㨠Fraction ãã¦ãããã¨ç¸ã ã«ãªãã¾ããMultiply ãã大ãããå¶å¾¡ãããã¨ã§ç¸ã ã®éãã³ã³ããã¼ã«ã§ããAdd ããå¤ãè¶³ãã¦ãããã¨ã¹ã¯ãã¼ã«ãã¾ãã
ãããã¨ãããããã« Step ãããã¨ãç½é»é¨åããããã«è²ãä»ããã°å¥½ããªè²ã®ç¸ã ãåºæ¥ãæãã§ããã¯ã¼ã«ã座æ¨ã§ã¯ãªããã¼ã«ã«åº§æ¨ã UV 座æ¨ã使ã£ã¦ãããã°å転ãããããç¸ã ãä½ããã®ã§ãä¸è¨ GIF ã®ã¨ããã§ã¯ãããããçµã¿åããã¦ããæãã§ãã
ååç´¹ä»é¨å
ãããªæãã®ã«ãã¦ã¿ã¾ããï¼å®éã¯ã¤ã³ã¯ãããã£ãã¨ããããã¸ã¯ãã¨åºãããã«èª¿æ´ãã¾ããããããã°ç¨ã«æåã HECOMI ã«å¤ããé¢ä¿ã§å ´æãåããªããªã£ã¦ã¾ãâ¦ï¼
èæ¯è¡¨ç¾
èæ¯ã®ç¸ã ã¯ä½¿ãã¾ããã§ãããã®åé¢ã«ã¸ã¯ã¼ãã¨åãã¦ããèæ¯ãããã¾ãã
ããã¯å ¨ç¶ã·ã§ã¼ãã°ã©ãã§ããå¿ è¦ã¯ãªãã®ã§ãããé ã®ä½æã®ããã«ãã¯ã¹ãã£ãªãã§ã·ã§ã¼ãã ãã§å½¢ãä½ã£ã¦ã¿ã¾ããã縦æ¹åã«é·ãã®éãç¸ã ã使ãã¦ã端ã£ãé¨å㯠Rounded Rectangle ãã¼ãã§ä¸¸ãã«ã¼ãé¨åãä½ããè¶³ãåããããã¨ã«ãã£ã¦æ»´ããããªå½¢ç¶ãä½ã£ã¦ãã¾ããéä¸ã§è²ã ãã©ã¡ã¿ã§å¶å¾¡ããããã«ãã¦ãããããã¿ã¤ã ã©ã¤ã³ã§ãã¼ãã¬ã¼ã ãæã£ã¦å©ç¨ãã¦ãã¾ãã
ã¢ã¤ã¢ã¤ãã¦ããã¨ãã㯠Voronoi ãå å·¥ãããã®ãäºãéãã«ã¹ã¯ãã¼ã«ãã¦è¶³ãåãããããã Step ãããã¨ã§ã¡ã¿ãã¼ã«ã¿ããã«ã¢ãã§ã¢ãã§ããä½ããã§ãã¾ãã
åå
ååã¯ã¤ã³ã¯ã«åããã¦ã¸ã¯ãã¨åºã¦ããããã«ãã¦ã¾ããããã«ã¯æ¬¡ã®ãããªãã¯ã¹ãã£ãä½ã£ã¦ãã¾ãã
RGB ãã£ãã«ã«ããããã
- G: æåå ¨ä½
- B: æåãããã£ã¨åºã¦ããé çªã表ããã¹ã¯ï¼éãå¼·ãã¨ãããã G ãè¦ããããã«ãªãï¼
- R: ã¤ã³ã¯ã®åã表ç¾ãG ã«è¶³ãåãããï¼èµ¤ãå¼·ãã¨ããããè¦ããããã«ãªãï¼
ã¨ãã£ãå 容ãå ¥ãã¦ãããæ¬¡ã®ãããªã·ã§ã¼ãã°ã©ããä½ã£ã¦ããããåç §ãã¦ã³ã³ããã¼ã«ãã¾ãã
B 㨠R ã«ä¸ããã¹ã¬ãã·ã§ã«ããã©ã¡ã¿ã使ããããããã¼ãã£ã¯ã«ã¨ãã§ã¯ããå¼¾ã¨çµã¿åãã㦠Timeline ä¸ã§ãã¼ãã¬ã¼ã ã¢ãã¡ã¼ã·ã§ã³ãã¦ãã¾ãã
å¼¾
é£ãã§ããå¼¾ã¯åºæ¬çã«ã¯4åå²ã®ã¿ã¤ã«ãã¯ã¹ãã£ãã¢ãã¡ã¼ã·ã§ã³ããã¦ããæãã§ãããã¡ãã£ã¨æ å ±éãå¢ããããã«ãã®ä¸ã§ UV ã«ãã¤ãºãããã¦ã¢ãã§ã¢ãã§ããã¦ã¿ã¾ããã
ãã®ä»
ã·ã§ã¼ãã°ã©ãã§ã®ã¢ã¦ãã©ã¤ã³è¡¨ç¾ã¯ãã¡ãã®è¨äºã«ã¾ã¨ãã¦ãã¾ãã
ããã«å ãã¦ã¢ã¦ãã©ã¤ã³è²ãå«ãå ¨ä½ã®è²ãã³ã³ããã¼ã«ã§ããããã«ãã¦ãå±ãã åçã®ã¨ãã«è²ãã¸ã¯ãã¨å¤ãã¦ã¤ã«ã¨ã¹ã¯ãããã¦ã¾ããã¤ã«ã¯ã¢ãã«ä½ã£ã¦æ®éã«ã¢ãã¡ã¼ã·ã§ã³ã§åããã¦ã¾ãã
ã¹ã©ã¤ãã·ã§ã¼é¨å
ä½ã£ã表ç¾
ã¤ã³ã¯è¡¨ç¾
ã¾ãã¤ã³ã¯ãããã£ããã£ã¨ä»ã表ç¾ããã§ããã¤ã³ã¯ç´ æã¯ã·ã«ã¨ãããã¶ã¤ã³ããã®ãã®ããåããã¾ããã
ãããã¿ã¤ã«ãã¯ã¹ãã£ã¨ãã¦èªã¿è¾¼ããããã«ãã¦ããããªæãã®ã¸ã¯ã¸ã¯ãã¨åºãã表ç¾ãã·ã§ã¼ãã¼ã°ã©ãã§ä½ã£ã¦ã¿ã¾ããã
å®è£ ã¨ãã¦ã¯ãåç¶ã«ã°ã©ãã¼ã·ã§ã³ããã£ããã¤ãºã multiply ã㦠smoothstep ãããã¦ããã ãã§ãããã¤ã³ã¯ãã¿ã¼ã³ãã¨ã«ä¸å¿ä½ç½®ãéãã®ã§ãåç¶ã®ã°ã©ãã¼ã·ã§ã³ä¸å¿ãããããããã«ãã¦ããã¾ããã
ãªããæåãåãããã«ãã¤ãºãã¯ã¹ãã£ã§ã¸ã¯ãã¨åºãããã«ãã¦ããã¾ãï¼ç»åè¦ã¥ããã¦ãã¿ã¾ããï¼ããã£ã¦ãããã¨ã¯åãã§ããã¤ãºã multiply ã㦠smoothstep ãã¦ããã ãã§ãã
ããããã¿ã¤ã ã©ã¤ã³ä¸ã§çµã¿ç«ã¦ã¦ããã¾ããé£ãã§ããã¤ã³ã¯ã¯åç´ãªã¿ã¤ã«ãã¯ã¹ãã£ã®ã¢ãã¡ã¼ã·ã§ã³ã§è¡¨ç¾ãï¼ãããé£çª index ã§æä½ããããããã«ã·ã§ã¼ãã°ã©ãã§é©å½ãªã·ã§ã¼ããä½ã£ã¦ããã¾ãï¼ãé£ãã§ããæãã®è»è·¡ããã¼ãã¬ã¼ã ã¢ãã¡ã¼ã·ã§ã³ã§ä½æãçå¼¾æã®ãã¼ãã£ã¯ã«ã¨ãã§ã¯ãã追å ãããããã°ããã£ããã£æãåºã¾ããã
ã¹ãã©ãã·ã¥ãã ãã¢ãã«ã使ãã¦ãã¡ãã¯æ®éã«ççºã¢ãã¡ã¼ã·ã§ã³ãä½ã£ã¦ãããã¿ã¤ã ã©ã¤ã³ä¸ã§æµãççºããç¬éã«ã¤ã³ã¯ã¨å·®ãæ¿ããã°ããã£ã½ãè¦ãã¾ããã
åçã®å ¥ãæ¿ã
ä¸è¨ã®ããã«ããã¤ãã®ãã¿ã¼ã³ã Timeline ãå å«ãã Prefab ã¨ãã¦ä½æãã¦ãããããã親å´ã® Timeline ä¸ã«ä¸¦ã¹ãã¨ãããèªååãã¦ã¿ã¾ãããã¨ã¯ãã£ã¦ãããã¿ã³ãæ¼ã㨠0 ããçæããã¨ãããããªãã®ã§ã¯ãªããå°ãææããã¦ãäºåã«ã»ããã¢ããããã Timeline ã«ä¸¦ã¹ãããã¢ã¤ãã ãã»ããã¢ãããã¿ã³ãæ¼ããã¨ãã«ã¨ãã£ã¿ä¸ã§ç»é²ãããæ å ±ããã¨ã« GameObject ã®å·®ãæ¿ãï¼å·¦å³ã©ã¡ãæ¹åã«å¼¾ãæã¤ã®ããã ãççºãããã®ãã®æ¼åºãªã©ï¼ãåçã»ã³ã¡ã³ãã»ã¤ã³ã¯ã®è²ã®å¤æ´ãè¡ãå½¢ã«ãã¦ãã¾ãã
Preafab ã¯ãããªæãã§ Timeline ãå«ãã§ãã¾ãã
ããã¦ã¹ã©ã¤ãã·ã§ã¼ã® Timeline ã¯ãããªæãã§ä¸¦ã¹ã¦ããã¾ãã
Prefab ã®ã«ã¼ãè¦ç´ 㯠Timeline ãæã£ã¦ãã¾ããããControl Track ã«é ç½®ãã Control Playable Asset ã® Control Children ããã§ãã¯ãã¦ããã¨ãåè¦ç´ ã«é ç½®ãã Timeline ãå¶å¾¡ãã¦ãããããã«ãªãã¾ããããã«ç½®ã GameObject ãã¨ãã£ã¿æ¡å¼µã®ãã¿ã³ããããã¨æ¼ãããç½®ãæãããããªä»çµã¿ãä½ãã¾ãã
ã¾ãã¯ãããªæãã§ã©ã®ãããªã¹ã©ã¤ãã·ã§ã¼ã®ãã¿ã¼ã³ãæããã® Prefab ãç»é²ã...
ã©ã®ãã¿ã¼ã³ã® Prefab ã使ã£ã¦ãã©ã®ãã¯ã¹ãã£ã»ã©ããªã³ã¡ã³ããè¼ãããããå ¥åãã¦ããã¾ãã
æå¾ã« Rebuild Timeline ãæ¼ãã¨ã次ã®ãããªå¦çãèµ°ãã¾ãã
- ã¾ã㯠Timeline ã«é ç½®ãããã¯ãªãããåéãã¦ãªã¹ãã使
- ãªã¹ãã®ä¸èº«ãæç³»åã«ä¸¦ã³æ¿ã
- 次ã«å ¥åããããã¼ã¿ãè¦ã¦ãã£ã¦é¸æãã Prefab ã® GameObject ãçæ
- çæãããªãã¸ã§ã¯ãã®ãã¯ã¹ãã£ã¨ã³ã¡ã³ããæ¸ãæã
- 対å¿ããã¯ãªããã® Source Game Object ãããã¨å·®ãæ¿ãã¦ãã
void SetupTimeline() { ... // playableAsset.outputs ãè¦ã¦ã¯ãªãããåéãã¦ãã var director = gameObject.GetComponent<PlayableDirector>(); var asset = director.playableAsset; var clips = new List<TimelineClip>(); foreach (var output in asset.outputs) { // Picture ã¨ååã®ã¤ããã¯ãªããã ãè¦ã if (!output.streamName.Contains("Picture")) continue; var track = output.sourceObject as ControlTrack; foreach (var clip in track.GetClips()) { clips.Add(clip); } } // æç³»åã«ä¸¦ã³æ¿ã clips = clips.OrderBy(x => x.start).ToList(); // å ¥åãããæ å ±ãåå¾ var generator = target as PicturesGenerator; var pictures = generator.pictures; // ã¯ãªããã®æ å ±ãç½®ãæãã¦ãã int nc = clips.Count; int np = pictures.Count; for (int i = 0; i < nc; ++i) { // ControlPlayableAsset ãåå¾ var clip = clips[i]; var playableAsset = clip.asset as ControlPlayableAsset; if (playableAsset == null) continue; ... // æå®ããã Prefab ã鏿 var prefab = generator.prefabs.FirstOrDefault( x => x.type == data.type).prefab; ... // GameObject ãçæ var go = Instantiate(prefab, transform); go.SetActive(false); // å ¥åãããæ å ±ããã¨ã«ãã¯ã¹ãã£ãã³ã¡ã³ããæ¸ãæã var setup = go.GetComponent<PictureTimelineSetup>(); if (setup) { setup.Setup(data); } // ControlPlayableAsset ã® GameObject ãå ¥ãæ¿ã director.SetReferenceValue( playableAsset.sourceGameObject.exposedName, go); } }
ãã®ãããã®ã³ã¼ãå ¨æã¯ã¤ã«ã«ãªãã¾ãã
- ã³ã¼ã: PicturesGenerator Example · GitHub
ãããã£ãã¿ã¤ã ã©ã¤ã³è¦ç´ ã®æ¸ãæãã«ã¤ãã¦ã¯ãã©ã·ã¥ã¼ã«ããã°ããã«è©³ããæ¸ããã¦ãã¾ãã
æ ååºå
å ¬å¼ã® Unity Recorder ã使ãã¨ç°¡åã« mp4 ãçæã§ãã¾ãã
Timeline 飿ºãç¨æããã¦ãã¦ãRecorder ãã©ã㯠㨠Recorder ã¯ãªããã使ã£ã¦æå®ããåºéãé²ç»ã»é²é³ãããã¨ãåºæ¥ã¾ãããç§ã¯é常ã®ã²ã¼ã ç»é¢ãã£ããã£ã§è¡ãã¾ããã
ãããã«
åºæ¬çã«ã¯ãªãã¸ã§ã¯ããããã¦ãã¼ãã¬ã¼ã ã¢ãã¡ã¼ã·ã§ã³ããã¦...ã® Timeline ã®æä½ã¯ä»ã®æ åç·¨éã½ããã¨å¤ãããªãã®ã§ãæå¤ã¨ãããªãåãã®é¨åã¯ä½ããæ°ããã¾ããPrefab 㯠Nested Prefab ãåºæ¥ã¦ããç°¡åã«ç·¨éãåºæ¥ãããã«ãªãã¾ããããTimeline ã¯ãã¹ããã¦ãç°¡åã«ç·¨éã§ããã®ãè¯ãã§ãããã¾ããè²ã ãã ããããã¨ãã㯠Unity ã®ç¥èãæ´»ç¨ãã¦ã¢ã¬ã³ã¬åºæ¥ãã®ã§ãæ åå¶ä½å°éã§ã¯ãªã Unity 使ãã®äººã¯ããªã«ãã ã¼ãã¼ä½ææ©ä¼ããã£ãã¨ãã®ï¼ã¤ã®é¸æè¢ã¨ãã¦çµæ§è¯ãã®ã§ã¯ãªããã¨æãã¾ããããã¡ãªããã¨ãã¦ã¯ã¡ãã£ã¨ããããªã»ããã®ã¨ãã§ã¯ãï¼ä¾ãã°ç»åéã®ãã©ã³ã¸ã·ã§ã³ãè¯ãæãã®å¹æãªã©ï¼ã¯å½ããåã§ããå ¨ç¶ãªãã®ã§ãå ¨é¨èªåã§ä½ãå¿ è¦ããããç°¡åãªã¹ã©ã¤ãã·ã§ã¼ã§ãã£ããå§åçã«åç»ç·¨éã½ããã®ã»ããæ¥½ããªã¨æãã¾ãããã ãéãããã¹ã±ã¸ã¥ã¼ã«ã®ä¸ã§å羽詰ã¾ã£ã¦ãããã¨ã§ãå¼·å¶çã«ã·ã§ã¼ãã°ã©ãã Timeline å¨ãã®ãã¦ãã¦ãæºã¾ãã®ã§å¿ã«ä½è£ããã£ãããªã¹ã¹ã¡ã§ãã



















